这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 求教:ads调试为什么不能跳入main中??

共4条 1/1 1 跳转至

求教:ads调试为什么不能跳入main中??

菜鸟
2007-04-21 05:26:34     打赏

我是个新手,在用ads单步调试s3c44b0x时,程序总是在 ldr sp,=SVCStack处陷入死循环,不能正确地跳入main函数中。我用的是jtag简易调试方式,程序是开发板自带的标准程序。不知哪位大虾遇到过这种情况,望告知??程序经常死在

000001ac [0xe59f0040] ldr r0,0x000001f4 ; = #0x0c000114
000001b0 [0xe5900000] ldr r0,[r0,#0]
000001b4 [0xe58d0004] str r0,[r13,#4]
000001b8 [0xe8bd8001] ldmfd r13!,{r0,pc}
000001bc [0xe24dd004] sub r13,r13,#4
000001c0 [0xe92d0001] stmfd r13!,{r0}
或形如

0c514724 [0xe24ee004] dcd 0xe24ee004 ..N.
0c514728 [0xe92d400f] dcd 0xe92d400f .@-.
0c51472c [0xe14f0000] dcd 0xe14f0000 ..O.
0c514730 [0xe92d0001] dcd 0xe92d0001 ..-.
的地方,脑袋都大了!




关键词: 求教     调试     为什么     不能     跳入    

菜鸟
2007-04-22 03:18:00     打赏
2楼

怎么没有人回复阿?难道没有人遇到这种情况么?


菜鸟
2007-04-22 05:35:00     打赏
3楼

谢谢楼上的。出问题的文件就是程序最开始的那段汇编程序,就是初始化cpu、初始化ram、分配堆栈等的那段汇编代码,还没有进入main函数。我是单步执行程序

InitStacks
;Don't use DRAM,such as stmfd,ldmfd...... d
;SVCstack is initialized before 
;Under toolkit ver 2.50, 'msr cpsr,r1' can be used instead of 'msr cpsr_cxsf,r1'

mrs r0,cpsr
bic r0,r0,#MODEMASK
orr r1,r0,#UNDEFMODE|NOINT
msr cpsr_cxsf,r1 ;UndefMode I t
ldr sp,=UndefStack

orr r1,r0,#ABORTMODE|NOINT
msr cpsr_cxsf,r1 ;AbortMode
ldr sp,=AbortStack

orr r1,r0,#IRQMODE|NOINT
msr cpsr_cxsf,r1 ;IRQMode D 
ldr sp,=IRQStack

orr r1,r0,#FIQMODE|NOINT
msr cpsr_cxsf,r1 ;FIQMode ? @
ldr sp,=FIQStack

bic r0,r0,#MODEMASK|NOINT
orr r1,r0,#SVCMODE
msr cpsr_cxsf,r1 ;SVCMode  2
ldr sp,=SVCStack

;USER mode is not initialized.
mov pc,lr ;The LR register may be not valid for the mode changes.

单步执行上面的语句都没有问题,一到上面红色标记的语句时,就单步实效,不能顺利执行下面的语句。程序就进入了死循环。晕死了!

还有,这有没有可能跟我用的调试工具是简易jtag调试方式有关????我没有仿真器


菜鸟
2007-04-26 03:12:00     打赏
4楼
楼上的,这些情况我都试过,可问题依旧!晕!

共4条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]