在线时间3 小时
UID63734
ST金币0
蝴蝶豆0
注册时间2008-8-4
初级会员
- 最后登录
- 2020-8-11
|
a0a.1 0b0c
我有一个疑问,在启动代码中,复位中断向量地址处用的是DCD Reset_Handler,并不是跳转指令 b Reset_Handler或LDR PC,=Reset_Handler。那么启动时是怎么会跳转执行Reset_Handler子程序的呢?
请各位大虾帮忙解惑!
其它中断也是同样的,都是在向量表中放的DCD XXXX_Handler ,不知道是怎样跳转到中断入口函数的。
ARM9的启动代码就不是这样的,在中断向量处直接用的跳转指令诸如“LDR PC,=Reset_Handler”之类。
是否CM3与ARM7/9的异常处理机制不同呢?
我暂时是这样理解的:
中断向量地址处用DCD伪指令来存放ISR的入口地址,在发生异常时CM3自动跳转到相应的中断向量地址处存放的ISR入口地址,执行相应的ISR。不需要用跳转指令--不知道这样理解对不对???
请各位大虾不吝指教!!! |
|