我的板子是自己做的,用keil+u-link2调试程序走到0x1c地址就在执行就飞了,下面是程序跑飞的代码位置:
程序复位:
246: Vectors LDR PC, Reset_Addr
0x00000000 E59F4034 LDR R4,[PC,#0x0034]
247: LDR PC, Undef_Addr
0x00000004 E3A05002 MOV R5,#0x00000002
248: LDR PC, SWI_Addr
0x00000008 E5845000 STR R5,[R4]
249: LDR PC, PAbt_Addr
0x0000000C E3A05003 MOV R5,#0x00000003
250: LDR PC, DAbt_Addr
0x00000010 E5845004 STR R5,[R4,#0x0004]
251: NOP ; Reserved Vector
0x00000014 E59F201C LDR R2,[PC,#0x001C]
252: LDR PC, IRQ_Addr
0x00000018 E3A03000 MOV R3,#0x00000000
253: LDR PC, [PC, #-0x0FF0] ; Vector from VicVectAddr
0x0000001C E1020093 SWP R0,R3,[R2]
254: LDR PC, FIQ_Addr
255:
256: Reset_Addr DCD Reset_Handler
257: Undef_Addr DCD Undef_Handler
258: SWI_Addr DCD SWI_Handler
259: PAbt_Addr DCD PAbt_Handler
260: DAbt_Addr DCD DAbt_Handler
261: DCD 0 ; Reserved Address
262: IRQ_Addr DCD IRQ_Handler
263: FIQ_Addr DCD FIQ_Handler
程序就在上面的0x0000001c之后跑飞,跳到一个0x7ffffe2d8的位置,希望大家帮我解决一下这个问题,谢谢各位了!!!! |
程序跑飞问题已经解决了:我的lpc2129的p0.14接了个三极管9014的第一引脚(c极),9014的发射极接地。这样的结果就是,jtag可以正常发现和下载程序,但是程序一运行就默认进如isp模式,jtag无法跟踪,所以调试的结果就是到0x1c位置跑飞。
我的更改方法:将p0.14引脚接10k电阻上拉到3.3v,断开与9014的连接。这样程序就可以正常运行了。
|