异常与中断

异常比中断的优先级高,中断可以屏蔽,但异常是一定要去处理的。
在这里插入图片描述
1.undefined_instruction
CPU遇到了不认识的指令,则会进入未定义指令异常处理函数,因为CPU不认识该指令,所以通常CPU遇到非法指令,则无法继续执行,会使内核崩溃panic。但在崩溃前会操作系统会打印一些debug信息,供工程师分析。
undefined instruction
2.software_interrupt
软中断,一般用在系统调用,用用户模式进入保护模式,或者是超级用户模式。
3.prefetch_abort
预取值终止,比如cpu内存只有512k,而有指令让程序跳转到1G的地方运行,就会出错。
4.data_abort
告诉cpu到一个不存在的地方去取数据,cpu取不到数据,不得不停下来处理异常。
ARM Linux异常处理之data abort(一)
DataAbort简单分析
5.irq
就是一般意义上的中断,定时器中断,外部触发中断等
6.fiq
快中断

ldr pc, _undefined_instruction

把undefined_instruction标号处的内容,放入pc指针。
例如:
在这里插入图片描述
把abc标号处的内容放入pc指针中去,即跳转到0x1000去运行。
在这里插入图片描述
加入abc标号处不是放了一个立即数,而是途中的xyz,那么意思就是跳转到0x200去运行。

对_undefined_instruction这异常来说,发生异常时,如果是当前在spl中,则调到1处,否则调到2处
在这里插入图片描述
spl是第二段程序加载器,这部分代码比较小,只用来配置一些简单的功能,然后引导后一级loader加载,发生异常时,就跳转到自身,做死循环。
2处的就是uboot的主体部分,异常时就跳转到如下部分。在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

<( ̄︶ ̄)Okay.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值