主要是针对未定的指令给出一个常用的操作内容
异常处理通用处理流程,进入以后设置堆栈存储区域,然后将当前寄存器当中的数据保存起来。进行特定异常内容的信息处理,在异常处理结束以后恢复现场。
/* 未定义指令 */
.word 0xdeadc0de
@ 这个指令发现产生以后没有办法继续后面的执行了,这个后期需要查看一下具体是什么原因
ldr r1, =0xFFFFFFFF
ldr r0, [r1] @ 读取非法地址数据产生 data abort,C语言中野指针很容易出现这个错误,
@ 预取指令在进行代码读取,代码所在位置访问错误,会导致这种错误
待补充
本文探讨了异常处理的一般流程,包括在异常发生时保存现场,处理特定异常,如未定义指令(0xdeadc0de),这可能导致数据访问错误或代码读取异常。例如,尝试读取非法地址可能触发Data Abort,而预取指令错误可能源于代码位置的访问问题。博客深入分析了这些异常的原因,并指出野指针可能导致类似问题。在异常处理结束后,系统需恢复现场以确保正常运行。
&spm=1001.2101.3001.5002&articleId=125830702&d=1&t=3&u=cf9de8df0b0d44618ba19206362bf31c)
1342

被折叠的 条评论
为什么被折叠?



