返回该小组首页 回复主题
yuexianhanshu

yuexianhanshu

小组等级:     E币:514  (E币换礼)

#1楼主:请教一个宏定义的意思

文章发表于:2008-07-04 09:37

在一个51中有这样一个关于地址的宏定义:

#define XREG  (addr)   ((unsigned char volatile __xdata  *) 0 )   [addr]

 

请问这个宏定义什么意思?

上面的 0 是什么意思呢?什么样的语法呀?

是cc2430里面的51

yuexianhanshu

   小组等级:    E币:514  (E币换礼)

#2

文章发表于:2008-07-04 09:40

知道这个宏定义的意思是要把一串十几字节的数据放进固定位置的闪存,使掉电以后数据不丢失.希望通过程序直接能对这串数据进行读写,而不是通过烧程序的方式进行读写.

yuexianhanshu

   小组等级:    E币:514  (E币换礼)

#3

文章发表于:2008-07-07 08:46

怎么没有一个人知道啊!

yuexianhanshu

   小组等级:    E币:514  (E币换礼)

#4

文章发表于:2008-07-07 10:14

呵呵,问题解决了!

#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是偏移量

craftor

   小组等级:    E币:1049  (E币换礼)

#5

文章发表于:2008-07-11 21:07

自己把问题解决了不更好嘛!呵呵

总共 , 当前 /

快速回复主题--如果想加入编辑器功能,建议使用 [高级回复]

您目前还不是小组成员,请先加入

回复贴子区

用户名:    您没有注册?

密码:    忘记了密码?

内容:

浏览该小组的用户还看过...

设计资源与分销