下面是程序
;启动代码入口
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
这程序是例程,是不是设置有问题啊?请高手帮忙
这个通常是你的访问的地址不对引起的。
比如起始地址,等。有中断产生的,那么涉及MMU的。
估计你的和MMU关系较大。
"LDR PC, DataAbortAddr ;程序单步到这条指令就不走了?????? "
这是取数据/指令异常。原因一般就是goooglman所说的“这个通常是你的访问的地址不对引起的”。
你可能需要从这条指令之前的寄存器读取中找原因。
楼主应该在LDR PC, ResetAddr之后执行的流程那找原因。
你在 那里调试? 如果是在 sdram 中运行的话,之前,需要初始化。
都不好意思告诉大家,Hjtag软件里没设置成自动下载,真丢人。不过听你们说地址的问题,我还不太懂,估计以后自己写源代码会遇到这类问题,谢谢大家了。
引用: 引用 6 楼 vince_pan 的回复:
都不好意思告诉大家,Hjtag软件里没设置成自动下载,真丢人。不过听你们说地址的问题,我还不太懂,估计以后自己写源代码会遇到这类问题,谢谢大家了。
有时候会由于操作不当引起,不要着急。大家都做过这种事情的,嘿嘿。