嵌入式开发面试题3道
时间:10-02
整理:3721RD
点击:
题一:
ARM异常有哪些分类?
思考过后,再到下方寻找答案
题二:
ARM异常会发生哪些硬件操作?
思考过后,再到下方寻找答案
题三:
请简述中断与异常的区别。
思考过后,再到下方寻找答案
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
题一答案:
异常就是正常的用户程序被暂时中止,处理器就进入异常模式。
ARM CPU的异常分为:复位异常、中断异常(IRQ,FIR)、预取指令中止异常、未定义指令异常、软件中断指令异常、数据中止访问异常。
题二答案:
在异常发生后,ARM内核会自动做以下工作:
保存执行状态:将CPSR复制到发生的异常模式下SPSR中。
模式切换:将CPSR模式位强制设置为与异常类型相对应的值,同时处理器进入到ARM执行模式,禁止所IRQ中断,当进入FIQ快速中断模式时禁止FIQ中断。
保存返回地址:将下一条指令的地址(被打断程序)保存在LR(异常模式下LR_excep)中。
跳入异常向量表:强制设置PC的值为相应异常向量地址,跳转到异常处理程序中。
题三答案:
异常在处理的时候必须考虑与处理器的时钟同步,实际上异常也称为同步中断,在处理器执行到因编译错误而导致的错误指令时,或者在执行期间出现特殊错误,必须靠内核处理的时候,处理器就会产生一个异常;所谓中断是指外部硬件产生的一个电信号从CPU的中断引脚进入,打断CPU的运行。所谓异常是指软件运行过程中发生了一些必须作出处理的事件,CPU自动产生一个陷入来打断CPU的运行。
谢谢分享