#define TYPE_R (0x30000008)
Type = *(UCHAR *)(TYPE_R)
这个是访问EPLD的读操作,EPLD的数据port宽度定义为了8bit。
我不太明白的是*(UCHAR *)(TYPE_R)的语法代表什么意思,难道不是把地址0x30000008强制转换为只有低8bit有效,然后读出这个8bit地址的值吗?
Type = *(UCHAR *)(TYPE_R);
(UCHAR *)(TYPE_R).把0x30000008转制转换为(UCHAR *),一个无符号字符型的指针常量
然后再把它进行指针运算,取到对象的值,然后赋给Type
(UCHAR *)(TYPE_R).把0x30000008转制转换为(UCHAR *),一个无符号字符型的指针常量
~~~~~~~~~~~~~~~~~~~~~~~~~~
是不是转换成了0x08了呀?