打印

只有经验丰富的工程师才知道答案的问题

[复制链接]
2990|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
pp12061206|  楼主 | 2009-6-30 10:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
inter_zhou| | 2009-6-30 11:45 | 只看该作者

华而不实

使用特权

评论回复
板凳
huangqi412| | 2009-6-30 11:45 | 只看该作者

把个普通 单元定义成个类似不初始化的特殊积存器

使用特权

评论回复
地板
flead| | 2009-6-30 13:08 | 只看该作者

是C语言的东西,

#define DEFW(name, address) __no_init volatile unsigned short name @ address; 

1:这是带参数的宏定义,name,address,是参数。(和函数的参数类似)。
2:__no_init 没有具体见过,有可能是C编译器自带的宏,也有可能是讲某个C编译器自带的宏重新命名过的。

使用特权

评论回复
5
yilusuiyuan| | 2012-10-7 22:07 | 只看该作者
这个东西到底什么意思哟?

使用特权

评论回复
6
xjtu悬崖路| | 2012-10-7 22:25 | 只看该作者
1.__no_init指示linker将此变量放到不初始化的块中去
2.volatile指示此变量可能在其他地方被改变
3.@地址,将变量强制定义到地址
4.整句宏定义一个address地址处的不需初始化的unsiged short寄存器变量.

使用特权

评论回复
7
znmcu| | 2012-10-8 10:18 | 只看该作者
__no_init 是IAR编译器的一个关键字,用于定义某块内存不进行初始化
volatile防止编译器优化,保证你访问的确实是物理地址上的数据
@内存绝对地址定位

此宏用于 在 address地址上定义一个 名为name的变量,并不经初始化。

使用特权

评论回复
8
ayb_ice| | 2012-10-8 10:29 | 只看该作者
这是SFR的定义

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

27

帖子

1

粉丝