AXD在单步调试时进不了main函数

zhangwh82   2009-10-8 20:39 楼主
下面是程序
;启动代码入口
   
    CODE32

    AREA    vectors,CODE,READONLY
    ENTRY

;interrupt vectors
;中断向量表
Reset
        LDR     PC, ResetAddr
        LDR     PC, UndefinedAddr
        LDR     PC, SWI_Addr
        LDR     PC, PrefetchAddr
        LDR     PC, DataAbortAddr             ;程序单步到这条指令就不走了??????
        DCD     0xb9206e50
        LDR     PC, [PC, #-0x120]
        LDR     PC, FIQ_Addr

ResetAddr           DCD     ResetInit
UndefinedAddr       DCD     Undefined
SWI_Addr            DCD     SoftwareInterrupt
PrefetchAddr        DCD     PrefetchAbort

这程序是例程,是不是设置有问题啊?请高手帮忙

回复评论 (7)

这个通常是你的访问的地址不对引起的。
比如起始地址,等。有中断产生的,那么涉及MMU的。


估计你的和MMU关系较大。
点赞  2009-10-8 23:48
"LDR    PC, DataAbortAddr            ;程序单步到这条指令就不走了?????? "
这是取数据/指令异常。原因一般就是goooglman所说的“这个通常是你的访问的地址不对引起的”。
你可能需要从这条指令之前的寄存器读取中找原因。
点赞  2009-10-9 09:06
楼主应该在LDR    PC, ResetAddr之后执行的流程那找原因。
点赞  2009-10-9 09:58
你在 那里调试?  如果是在 sdram 中运行的话,之前,需要初始化。
点赞  2009-10-10 10:06
引用: 引用 1 楼 gooogleman 的回复:
这个通常是你的访问的地址不对引起的。
比如起始地址,等。有中断产生的,那么涉及MMU的。


估计你的和MMU关系较大。


UP
点赞  2009-10-11 11:21
都不好意思告诉大家,Hjtag软件里没设置成自动下载,真丢人。不过听你们说地址的问题,我还不太懂,估计以后自己写源代码会遇到这类问题,谢谢大家了。
点赞  2009-10-11 22:16
引用: 引用 6 楼 vince_pan 的回复:
都不好意思告诉大家,Hjtag软件里没设置成自动下载,真丢人。不过听你们说地址的问题,我还不太懂,估计以后自己写源代码会遇到这类问题,谢谢大家了。

有时候会由于操作不当引起,不要着急。大家都做过这种事情的,嘿嘿。
点赞  2009-10-13 07:05
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复