发新帖我要提问
12
返回列表

这样定义对不对

[复制链接]
楼主: jiaxw
手机看帖
扫描二维码
随时随地手机跟帖
sanfuzi| | 2018-5-3 22:00 | 显示全部楼层
@就是指定地址,这个应该没什么好说的了,大部分编译器都这么用。

使用特权

评论回复
gygp| | 2018-5-3 22:00 | 显示全部楼层
在宏定义里面都有一个关键字__no_init

使用特权

评论回复
chenci2013| | 2018-5-3 22:00 | 显示全部楼层
__no_init是IAR扩展语法里面的一个扩展关键字

使用特权

评论回复
biechedan| | 2018-5-3 22:01 | 显示全部楼层
@是一种语法。那么它的作用很明显就是将变量放置到对应的地址中。

使用特权

评论回复
wangdezhi| | 2018-5-3 22:01 | 显示全部楼层
@是指定地址

使用特权

评论回复
isseed| | 2018-5-3 22:02 | 显示全部楼层
后面不加@指定地址没有问题。

使用特权

评论回复
xietingfeng| | 2018-5-3 22:03 | 显示全部楼层
__no_init 不初始化

使用特权

评论回复
suzhanhua| | 2018-5-3 22:03 | 显示全部楼层
__no_init 是两个宏,这个是编译器定的

使用特权

评论回复
mituzu| | 2018-5-3 22:03 | 显示全部楼层
no_init用于变量声明。 以 MSP430系列单片机为例, 在默认情况下, MSP430的 C 语言 编译器将变量存放在主 RAM 中, 并在启动时对其进行初始化。

使用特权

评论回复
updownq| | 2018-5-3 22:04 | 显示全部楼层
定义到不初始化的块中去。

使用特权

评论回复
wangdezhi| | 2018-5-3 22:04 | 显示全部楼层
定义全局变量的时候比如int char;  即使你没有赋值给他,编译器还是会给他一个初始化值0

使用特权

评论回复
biechedan| | 2018-5-3 22:04 | 显示全部楼层
使用@,一个变量可以明确的制定一个存储地址。

使用特权

评论回复
chenci2013| | 2018-5-3 22:04 | 显示全部楼层
用是声明一个non-volatile类型的内存地址(Support non-valotile memory)。

使用特权

评论回复
gygp| | 2018-5-3 22:04 | 显示全部楼层
查看了《MSP430 IAR C/EC++ Compiler Reference Guide》内的IAR Language Extension Overview

使用特权

评论回复
sanfuzi| | 2018-5-3 22:04 | 显示全部楼层
define DEFC(name, address) __no_init volatile unsigned char name @ address;
#define DEFC(name, address) sfrb name = address;
这两种定义是等价的

使用特权

评论回复
suzhanhua| | 2018-5-3 22:04 | 显示全部楼层
具体什么意思我不大清楚。

使用特权

评论回复
xietingfeng| | 2018-5-3 22:04 | 显示全部楼层
@ address  指定具体存储位置,volatile 非易失性的。

使用特权

评论回复
isseed| | 2018-5-3 22:04 | 显示全部楼层
用no_init主要是为了防止看门狗导致系统复位后数据重初始化。

使用特权

评论回复
mituzu| | 2018-5-3 22:04 | 显示全部楼层
在 no_init变量的声明中,不能含有初始化。

使用特权

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

本版积分规则