Posted on 2007-09-22 10:36
宋鹏 阅读(2077)
评论(1) 编辑 收藏 引用 所属分类:
BSP & Platform Builder
我们长看到BSP包中有这样的表达
1、
#define rRTCCON (*(volatile unsigned char *)0x57000043) //RTC control
这有点类似absacc.h中XBYTE的定义
2、
#define XBYTE ((unsigned char volatile xdata *) 0)
其中volatile英文愿意为易变的,此处为易变量,是可能指由外部因素改变的变量,如外部设备的寄存器
(volatile unsigned char *)0x57000043这个表达式是强制转换0x57000043为易变的无符号指针类型,将其作为地址来使用。
相当于
volatile unsigned char *p;
p = 0x57000043;
然后对p进行引用
*(volatile unsigned char *)0x57000043
也就是指向了寄存器绝对地址为0x57000043,然后按照定义宏的习惯,将之用括号小心的包起来。
然后就可以对寄存器进行读写啦。