KEIL 中变量初始化问题

[复制链接]
4902|5
 楼主| zyboy 发表于 2009-1-21 10:34 | 显示全部楼层 |阅读模式
在KEIL定义全局变量,如果未赋予初始值,它的值是多少?是零,还是随机的值,如果要求一个变量在掉电后变为零,而复位的时候保证当前的值,软件能做到吗?如果做?谢谢
hab2000 发表于 2009-1-21 10:39 | 显示全部楼层

修改一下启动函数就可以!

以前论坛里很多高人贴过。
 楼主| zyboy 发表于 2009-1-21 10:48 | 显示全部楼层

能不能说具体点?

  我试过好像未初始化,变量可能会是随机的,可如果初始化,复位后,就会是初始化的值,无法保留原来的值,是不是KEIL那个地方可以让未设置的值默认为零?谢谢
computer00 发表于 2009-1-21 11:48 | 显示全部楼层

这样搞:先把启动代码中的初始化去掉

然后检查复位标志(例如有些芯片有提供复位源标志,或者像hotpower那样搞些什么0x55AA之类的,或者PSW里面的F0/F1),
当发现是上电时,就自己手动初始化全局变量为0,如果是热复位,那当然是不初始化了。
hotpower 发表于 2009-1-21 21:02 | 显示全部楼层

0x55AA方法可适应任何MCU/ARM/DSP

airwill 发表于 2009-1-22 20:35 | 显示全部楼层

仔细看一下 startup

各个ram 空间都是可以设置的, 包括要不要, 要多少
您需要登录后才可以回帖 登录 | 注册

本版积分规则

101

主题

356

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部