Posted on 2007-09-22 10:36
宋鵬 閱讀(2089)
評(píng)論(1) 編輯 收藏 引用 所屬分類:
BSP & Platform Builder
我們長看到BSP包中有這樣的表達(dá)
1、
#define rRTCCON (*(volatile unsigned char *)0x57000043) //RTC control
這有點(diǎn)類似absacc.h中XBYTE的定義
2、
#define XBYTE ((unsigned char volatile xdata *) 0)
其中volatile英文愿意為易變的,此處為易變量,是可能指由外部因素改變的變量,如外部設(shè)備的寄存器
(volatile unsigned char *)0x57000043這個(gè)表達(dá)式是強(qiáng)制轉(zhuǎn)換0x57000043為易變的無符號(hào)指針類型,將其作為地址來使用。
相當(dāng)于
volatile unsigned char *p;
p = 0x57000043;
然后對(duì)p進(jìn)行引用
*(volatile unsigned char *)0x57000043
也就是指向了寄存器絕對(duì)地址為0x57000043,然后按照定義宏的習(xí)慣,將之用括號(hào)小心的包起來。
然后就可以對(duì)寄存器進(jìn)行讀寫啦。