本帖最后由 ysxiao 于 2009-9-17 09:09 编辑
我用的ADS+HJTAG编译调试
开始的时候,程序能够正常的运行,然后让它自己一直在那跑,什么操作都没对它做,
过了一段时间后(时间长度不一定)程序就死了,最终停下来的地方是
B swivec ; 0x08 Software Interrupt
就从这个地方我根本就不知道问题出在哪里,而且在整个程序里好像也没有什么地方开过软件中断。只有两个串口0和串口1分别作为RS232和RS485通信用的中断。
另外,还有一个问题,由于我将cstartup_sam7.c中禁止看门狗的语句屏蔽后,芯片上电后看门狗还是被禁止的,也找不到其他有什么地方将狗关闭了,反正是始终无法开狗,于是我就利用PIT定时,如果延时超过10s后就软件复位:
AT91C_BASE_RSTC->RSTC_RCR = ((unsigned int) 0xA5 << 24) | AT91C_SYSC_PROCRST;
但是程序停下来以后也始终没有执行到这一句。
请各位分析下我应该上哪里找问题去?有什么方法可以看到程序是从什么地方跳到上面那句汇编程序那的吗?谢了! |