【求助】uboot start.s 开始几行的疑问

suncs2001 2018-04-18 02:11:09
.globl _start
_start: b reset
ldr pc, _undefined_instruction
ldr pc, _software_interrupt
ldr pc, _prefetch_abort
ldr pc, _data_abort
ldr pc, _not_used
ldr pc, _irq
ldr pc, _fiq
。。。。。。


这个是uboot入口的汇编代码,既然在开始就b reset了,那就直接跳转到reset执行了,而且因为是b 指令,不会返回。我看了下reset代码,最终跳到start_armboot了。

我的疑问是,
ldr pc, _undefined_instruction
ldr pc, _software_interrupt
.......
这几行会执行吗,什么时候执行的?
...全文
1231 点赞 收藏 4
写回复
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
suncs2001 2018-06-22
原来这个就是中断向量表,我一直以为是启动的入口汇编代码,如果是中断向量表我就明白了,问这个问题的初衷也是不知道中断向量表在哪里,在找的过程中产生的疑问。
回复
花开花落_fzu 2018-05-30
_start: b reset ldr pc, _undefined_instruction ldr pc, _software_interrupt ldr pc, _prefetch_abort ldr pc, _data_abort ldr pc, _not_used ldr pc, _irq ldr pc, _fiq 这个中断向量中,第一个是复位,第二个是未定义的指令,第三个是软中断。正常是不会执行到这两个中断向量里的。但是如果你比如说除以0,这样就会触发未定义的中断,跳转到ldr pc, _undefined_instruction这里执行;如果你触发了软中断,那么就会跳转到ldr pc, _software_interrupt这里执行。 中断向量表里面的中断向量,正常情况下我们的代码是不会主动走进这些分支的,必须要有对应的触发条件
回复
bigPillow 2018-05-07
可能之前有設置過了吧。
回复
suncs2001 2018-04-19
自己顶下,求大神
回复
发动态
发帖子
Linux_Kernel
创建于2007-08-27

4000

社区成员

Linux/Unix社区 内核源代码研究区
申请成为版主
社区公告
暂无公告