posts - 54, comments - 32, trackbacks - 0, articles - 0
我们长看到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,然后按照定义宏的习惯,将之用括号小心的包起来。

然后就可以对寄存器进行读写啦。

Feedback

# re: Wince中寄存器的访问1-Wince驱动基础  回复  更多评论   

2007-09-23 12:38 by aGAric
恩。应该是在ARM上一般用法,即用一个内存地址映射一个寄存器或者端口。

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理