开启看门狗复位,看门狗复位后执行startup.a51,清零idata数据(IDATALEN EQU 80H);又C51的堆栈是向FF生长的;
为了保护4字节数据,定义
INT8U *bStartDelay;
INT8U *bRstDelay;
bStartDelay = 0xfe;
bRstDelay = 0xfc;
但是运行结果表明bStartDelay[0],bStartDelay [1],bRstDelay[0],bRstDelay[1]被改写,改成
INT8U bStartDelay[2];
INT8U bRstDelay[2];
由编译器自行分配空间就无问题。
不知原因何在?不会有堆栈溢出的问题,data才占用37.1。 |