微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > 嵌入式系统设计讨论 > 嵌入式开发面试题3道

嵌入式开发面试题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的运行。


谢谢分享                        

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top