考一考!嵌入式开发面试题3道

2020年04月28日 14:10    发布者:嵌入式人生17
考一考!嵌入式开发面试题3道IMG_256 题一: 中断与异常有何区别? 思考过后,再到下方寻找答案 题二:当一个异常出现以后,ARM微处理器会执行哪几步操作? 思考过后,再到下方寻找答案 题三:ARM协处理器指令包括哪3类,请描述它们的功能。 思考过后,再到下方寻找答案
题一答案: 异常在处理的时候必须考虑与处理器的时钟同步,实际上异常也称为同步中断,在处理器执行到因编译错误而导致的错误指令时,或者在执行期间出现特殊错误,必须靠内核处理的时候,处理器就会产生一个异常;所谓中断是指外部硬件产生的一个电信号从CPU的中断引脚进入,打断CPU的运行。所谓异常是指软件运行过程中发生了一些必须作出处理的事件,CPU自动产生一个陷入来打断CPU的运行。 题二答案: 当一个异常出现以后,ARM微处理器会执行以下几步操作。A、将下一条指令的地址存入相应连接寄存器LR,以便程序在处理异常返回时能从正确的位置重新开始执行。若异常是从ARM状态进入,则LR寄存器中保存 的是下一条指令的地址(当前PC+4或PC+8,与异常的类型有关);若异常是从Thumb状态进入,则在LR寄存器中保存当前PC的偏移量,这样,异常 处理程序就不需要确定异常是从何种状态进入的。例如:在软件中断异常SWI,指令 MOV PC,R14_svc总是返回到下一条指令,不管SWI是在ARM状态执行,还是在Thumb状态执行。B、将CPSR复制到相应的SPSR中。C、根据异常类型,强制设置CPSR的运行模式位。D、强制PC从相关的异常向量地址取下一条指令执行,从而跳转到相应的异常处理程序处。 题三答案: ARM协处理器指令包括以下3类:用于ARM处理器初始化ARM协处理器的数据处理操作。用于ARM处理器的寄存器和ARM协处理器的寄存器间的数据传送操作。用于在ARM协处理器的寄存器和内存单元之间传送数据。