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