no_init unsigned char a;
这样定义对不对,后面不加@指定地址有没有问题。另外用no_init与__no_init有没有区别,反正在IAR下编译好象都能编译通过。
用no_init主要是为了防止看门狗导致系统复位后数据重初始化。
目前我在系统中用no_init定义了两个标志位Flag1,Flag2以及其它几个no_init变量,初始化过程我作以下处理。
if((Flag1 != 0x5A) && (Flag2 != 0x5A))
{
// 在此进行几个no_init变量初始化
Flag1 = 0x5A;
Flag2 = 0x5A;
}
这样防止看门狗复位时几个变量重新初始化。 |