【ARM裸板】未定义指令异常分析及示例

本文深入探讨了ARM处理器在遇到未定义指令异常时的处理流程,包括异常示例、汇编指令使用、设置异常栈、保存和恢复现场、异常处理逻辑以及验证方法。通过实例解析,帮助理解ARM处理器对未定义指令的响应机制。
摘要由CSDN通过智能技术生成

1.未定义指令异常示例

  • 根据5.1可知,执行异常处理函数之前,硬件会处理的事情:
  • 1.lr_und保存有被中断模式中的下一条即将执行的指令的地址
  • 2.SPSR_und保存被中断模式CPSR
  • 3.CPSR的[M4:M0]=[11011],进入到und模式
  • 4.跳到0x04的模式执行程序,即跳到b do_und这一指令
/*====================================异常向量表===========================================*/
_start:
	b reset   //vector 0: reset(0地址对应reset)
 	ldr pc, =und_addr //绝对跳转,跳转至sdram中,vector 4: und  (发生未定义指令异常,则进入“处理未定义异常函数”)

und_addr:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值