#define XREG(addr) ((unsigned char volatile __xdata *) 0 )[addr]
((unsigned char volatile __xdata *) 0 )
这里等效成一个char数组的首地址,也是一个指针,指向flah的0地址。
volatile是表示该变量会被非编译器控制设备改变,比如外设,IO,中断等等,这样每次使用该变量的值时,都会读取一次,而不会使用前一次保存在内存中的值。
((unsigned char volatile __xdata *) 0 )[addr]这个就好理解了,addr是数组下标,相当于从地址0开始的addr个char。
XREG(addr)就是对从0开始的第addr个数(char)进行读写操作。0就是以0基址,addr是偏移量
本文详细解析了XREG宏定义的工作原理,解释了如何通过此宏实现对特定地址的闪存区域进行读写操作。同时介绍了volatile关键字的作用,即确保每次访问变量时都直接从指定的内存位置读取最新值。
1230

被折叠的 条评论
为什么被折叠?



