求助:430单片机的热复位

eyeshot   2010-1-29 19:21 楼主
用的MSP430149单片机,想区分冷复位(上电复位)和热复位(不断电复位),以使程序执行不同的功能。冷复位是上电复位,RAM的内容应该是随机的。热复位比如程序跑飞了通过看门狗复位,因为没有断电,所以RAM的内容是不会丢失的,其值为复位前的值,假如我在主程序中赋予某一RAM单元的内容为0x55AA,那么复位时判断该单元的值如果为0X55AA则属于热复位,否则为冷复位。可是用C编写程序,定义的全局变量在初始化时IAR自动给变量赋0了,有什么办法可以不自动给变量赋0么,或者采用在C中嵌入汇编的方法?用汇编所定义的变量在复位时是不会被自动赋0的吧?我不会430的汇编语言,请问如何用汇编定义一个变量放在指定的RAM单元,该变量会不会与用C定义的变量产生地址冲突?如果在C中嵌入一小段汇编用什么格式?最好有个例子参考下,不甚感激!

回复评论 (10)

没那么麻烦,你说那么多其实就要求一个:要求不要初始化RAM。

__no_init unsigned int Data;
就OK了 。
点赞  2010-1-29 21:23
哇哦,高人,学习了。我还不知道有这样的用法
点赞  2010-1-30 08:11

LZ问题问的好。
二楼回答的好。
学习了。
点赞  2010-1-30 09:34
真的感谢两位高人!试了一下方法真不错!
点赞  2010-1-30 09:42
高人!
谢谢!
点赞  2010-1-30 09:51
学习
点赞  2010-2-3 21:14
把它写入FLASH,再读出来不行吗?
点赞  2010-2-4 09:25
不能把,看门狗复位,RAM应该是为0的
点赞  2010-2-5 08:26

学习了

学习了
点赞  2010-2-5 08:30
mark一下
点赞  2012-8-9 16:37
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复