打印
[MCU]

后面不加@指定地址有没有问题

[复制链接]
楼主: jiaxw
手机看帖
扫描二维码
随时随地手机跟帖
21
llia| | 2020-6-21 18:15 | 只看该作者 回帖奖励 |倒序浏览
@就是指定地址,这个应该没什么好说的了,大部分编译器都这么用。

使用特权

评论回复
22
gongche| | 2020-6-21 18:21 | 只看该作者
在宏定义里面都有一个关键字__no_init

使用特权

评论回复
23
wenfen| | 2020-6-21 18:24 | 只看该作者
__no_init是IAR扩展语法里面的一个扩展关键字

使用特权

评论回复
24
llljh| | 2020-6-21 18:27 | 只看该作者
@是一种语法。那么它的作用很明显就是将变量放置到对应的地址中。

使用特权

评论回复
25
pengf| | 2020-6-21 18:30 | 只看该作者
@是指定地址

使用特权

评论回复
26
liuzaiy| | 2020-6-21 18:36 | 只看该作者
后面不加@指定地址没有问题。

使用特权

评论回复
27
chenjunt| | 2020-6-21 18:40 | 只看该作者
__no_init 不初始化

使用特权

评论回复
28
xxmmi| | 2020-6-21 18:44 | 只看该作者
__no_init 是两个宏,这个是编译器定的

使用特权

评论回复
29
lium| | 2020-6-21 18:47 | 只看该作者
no_init用于变量声明。 以 MSP430系列单片机为例, 在默认情况下, MSP430的 C 语言 编译器将变量存放在主 RAM 中, 并在启动时对其进行初始化。

使用特权

评论回复
30
langgq| | 2020-6-21 18:50 | 只看该作者
定义到不初始化的块中去。

使用特权

评论回复
31
huanghuac| | 2020-6-21 18:57 | 只看该作者
定义全局变量的时候比如int char;  即使你没有赋值给他,编译器还是会给他一个初始化值0

使用特权

评论回复
32
tian111| | 2020-6-21 19:01 | 只看该作者
使用@,一个变量可以明确的制定一个存储地址。

使用特权

评论回复
33
llljh| | 2020-6-21 19:05 | 只看该作者
用是声明一个non-volatile类型的内存地址(Support non-valotile memory)。

使用特权

评论回复
34
renyaq| | 2020-6-21 19:09 | 只看该作者
查看了《MSP430 IAR C/EC++ Compiler Reference Guide》内的IAR Language Extension Overview

使用特权

评论回复
35
llljh| | 2020-6-21 19:16 | 只看该作者
define DEFC(name, address) __no_init volatile unsigned char name @ address;
#define DEFC(name, address) sfrb name = address;
这两种定义是等价的

使用特权

评论回复
36
xxrs| | 2020-6-21 19:20 | 只看该作者

具体什么意思我不大清楚。

使用特权

评论回复
37
morrisk| | 2020-6-21 19:23 | 只看该作者
@ address  指定具体存储位置,volatile 非易失性的。

使用特权

评论回复
38
guoyt| | 2020-6-21 19:33 | 只看该作者
用no_init主要是为了防止看门狗导致系统复位后数据重初始化。

使用特权

评论回复
39
zhuww| | 2020-6-21 19:36 | 只看该作者
在 no_init变量的声明中,不能含有初始化。

使用特权

评论回复
40
jiaxw|  楼主 | 2020-6-21 19:40 | 只看该作者

好的,我明天去单位试一下,多谢各位大侠了哈        

使用特权

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

本版积分规则