打印
[应用相关]

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

[复制链接]
1151|17
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
androidbus|  楼主 | 2021-7-1 20:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
no_init unsigned char a;
这样定义对不对,后面不加@指定地址有没有问题。

使用特权

评论回复
沙发
litengg| | 2021-7-1 20:46 | 只看该作者
用no_init与__no_init有没有区别。

使用特权

评论回复
板凳
qiangweii| | 2021-7-1 20:54 | 只看该作者
反正在IAR下编译好象都能编译通过。

使用特权

评论回复
地板
shashaa| | 2021-7-1 20:56 | 只看该作者
用no_init主要是为了防止看门狗导致系统复位后数据重初始化。

使用特权

评论回复
5
xia00| | 2021-7-1 21:00 | 只看该作者
if((Flag1 != 0x5A) && (Flag2 != 0x5A))
{
     // 在此进行几个no_init变量初始化
     Flag1 = 0x5A;
     Flag2 = 0x5A;
}
这样防止看门狗复位时几个变量重新初始化。

使用特权

评论回复
6
hfdy01| | 2021-7-1 21:05 | 只看该作者
我采用这种方式处理时,有时候在系统掉电重新上电后发现某个no_int 定义数据会出现一个非正常值。

使用特权

评论回复
7
CallReceiver| | 2021-7-1 21:06 | 只看该作者
如本来我应该初始化为0,但上电后发现这个值不为0,有没有可能这个变量根本就没有初始化,显示还是一个随机值呢。

使用特权

评论回复
8
boy1990| | 2021-7-1 21:11 | 只看该作者
一般是一些特殊数据!这些数据在系统复位(如看门狗复位或其他原因造成的复位)时的数值是不能改变的!

使用特权

评论回复
9
sourceInsight| | 2021-7-1 21:13 | 只看该作者
定义这些变量时要修改*.XCL 文件!

使用特权

评论回复
10
bbapple| | 2021-7-1 21:17 | 只看该作者
请问你知道具体怎样修改xcl文件吗?

使用特权

评论回复
11
handleMessage| | 2021-7-1 21:18 | 只看该作者
找到和你芯片型号相应的*.xcl文件。

使用特权

评论回复
12
zhouhuanの| | 2021-7-1 21:22 | 只看该作者
最好复制一份,考到你程序的文件夹中,然后把这个文件配置到你的项目中。

使用特权

评论回复
13
wanglaojii| | 2021-7-1 21:24 | 只看该作者
会不会存在跟RAM内定义的其它变量地址重复的情况。

使用特权

评论回复
14
laozhongyi| | 2021-7-1 21:28 | 只看该作者
_no_init 是一个SEGMENT,是给LINKER用的,定义到不初始化的块中去,编译器只给你分配空间,不给你初始化。

使用特权

评论回复
15
Edisons| | 2021-7-1 21:30 | 只看该作者
也就是说_no_ini不能初始化了。。

使用特权

评论回复
16
_gege| | 2021-7-1 21:34 | 只看该作者
RAM内定义的其它变量地址重复?

使用特权

评论回复
17
Mozarts| | 2021-7-1 21:35 | 只看该作者
@是一种语法。那么它的作用很明显就是将变量放置到对应的地址中。

使用特权

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

使用特权

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

本版积分规则

181

主题

1597

帖子

3

粉丝