用LPC2131自己做的板子,以前能正常运行. 使用工程模板建立的UC0SII for lpc21xx工程,在选择DebugInFLASH时,能正常下载,但运行到目标板初始化时就会发生取数据中止. void TargetResetInit(void) { //会在这个地方发生取数据中止 #ifdef __DEBUG_RAM MEMMAP = 0x2; #endif ....... }
如果建立的工程是ARM Executable Image for lpc21xx,在选择DebugInRAM时,也能正常下载,但也会发生与上面一样的情况.但是好像不是取数据中止,而是在汇编中看到的从0x00000000地址开始都是"[0xffffffff] dci 0xffffffff; ? undefined",这是不是说没有写进去? 在选择DebugInFLASH时就不会出现这种情况,会一直执行到 B __main, 但从__main到main之间会出现错误.每次执行到地址0x00000394上"stmfd r13!,{r0,r1,r4,r14}"就会发生取数据中止.但如果不使用__main,而是直接跳转到main,则不会出错.
这会是什么原因呢?是我原来写进去的的程序对Flash加密了吗?但我用H-Flasher擦除过了(没有用ISP,是不是一定要用ISP?)还是我的硬件有问题?但我原来下载程序到Flash里面,调试时和脱机时都能正常运行.会不会是我的开发环境不对?但我给LPC2210的开发板写程序却都正常(那个是用的Easy-JTAG).实在想不明白,请各位高手指点:)万分感谢:) |