ARM未定义指令异常 预取异常 数据错误异常 - ARM内核(三)

本文探讨了异常处理的一般流程,包括在异常发生时保存现场,处理特定异常,如未定义指令(0xdeadc0de),这可能导致数据访问错误或代码读取异常。例如,尝试读取非法地址可能触发Data Abort,而预取指令错误可能源于代码位置的访问问题。博客深入分析了这些异常的原因,并指出野指针可能导致类似问题。在异常处理结束后,系统需恢复现场以确保正常运行。

主要是针对未定的指令给出一个常用的操作内容

异常处理通用处理流程,进入以后设置堆栈存储区域,然后将当前寄存器当中的数据保存起来。进行特定异常内容的信息处理,在异常处理结束以后恢复现场。

/* 未定义指令 */
.word 0xdeadc0de  

@ 这个指令发现产生以后没有办法继续后面的执行了,这个后期需要查看一下具体是什么原因
ldr r1, =0xFFFFFFFF
ldr r0, [r1]	@ 读取非法地址数据产生 data abort,C语言中野指针很容易出现这个错误,

@ 预取指令在进行代码读取,代码所在位置访问错误,会导致这种错误
待补充

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值