Posted on 2007-09-22 10:36
宋鵬 閱讀(2084)
評論(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,然后按照定義宏的習慣,將之用括號小心的包起來。
然后就可以對寄存器進行讀寫啦。