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

嵌入式开发面试题3题道,思考一下,你会几个

时间:10-02 整理:3721RD 点击:

嵌入式开发面试题3题道,思考一下,你会几个

1.      ARM异常有哪些分类?

2.      ARM异常会发生哪些硬件操作?

3.      请简述中断和异常的差别?


1.      ARM异常有哪些分类?
        1.复位异常2.数据访问中止异常3.快速中断请求异常4.一般中断异常5.预取指令异常6.软件中断异常7.未定义异常
2.      ARM异常会发生哪些硬件操作?
异常和中断
1>.ARM 处理器复位后,处理器硬件将进行如下操作: (1) 强制进入管理模式; (2) 强制进入到 ARM 状态; (3) 跳转到绝对地址 PC=0x00000000,
出执行; (4) 禁止 IRQ 中断和 FIQ 中断。 复位后 CPSR 中最后 4 位状态为 0011,并且进入管理模式,执行操作系统程序, 一般用做对系统的初始化,
然后切换到用户模式,开始执行正常的用户程序,切 换到用户模式可以使用如下程序: MRS R0,CPSR ;读程序状态寄存器 BIC R0,R0,#03 ;把末两位清零 MSR CPSR_c ,R0 ;
把修改后的值加载给状态寄存器,切换结束 ADD R1,R2,R3 ;用户程序
2>.未定义异常 . ARM 处理器中有很多没有定义的代码,因为 ARM 使用 32 位代码,包含 2 的 31 次幂种。所以 ARM 指令集不能用尽所有的代码。 ARM 的未定义异常有
两种情况: (1) 遇到一条无法执行的指令,此指令没有定义; (2) 执行一条协处理器的操作指令,在正常情况下,协处理器应该应答,但是 没有,可能是因为干扰等
原因。 当 发 生 此 异 常 时 , 处 理 器 硬 件 响 应 中 断 ,但是一般情况下是不希望产生异常的,如果是由于干扰引起的异常,那么在 异常中断处理中有一段专门的
程序,让程序返回再重新执行该条指令,以判 断异常是否是由干扰引起。 当然也要注意哪种单片机应该使用哪种合适的指令集版本,因为还是约 有差异的,否则某些编译通
过的指令也不能执行。
3>. 软件中断异常 软件中断异常是由指令 SWI 引起的, 程序执行这一条指令后, 进入异常中断。 处理器响应中断,硬件执行步骤如下:软件中断处理程序完成后,使用下列
返回指令返回到原中断处: MOVS PC , R14 软件中断异常把程序导入管理模式,而子程序调用属于用户模式。
4>. 预取指中断异常 。预取指中断异常和未定义指令异常都是由于不正常的指令国产引起,但是也 有区别: (1) 未定义指令异常是内部异常中断,而他是外部信号引起的异
常中断; (2) 他并没有成功地取得一条指令。 他中断返回时,应该执行指令:SUBS PC , R14 , #4
5.数据中止异常 . 。 。
6>.中断请求(IRQ)异常 . 在 ARM 处理器中,有一个输入逻辑 nIRQ 称为中断请求信号,这个输入信号是由 ARM 处理器外围控制模块(片内)控制,当有满足中断条件的事件发生 时, 外围控制模块向 ARM 处理器发错 IRQ 信号, ARM 处理器进入异常, 使 IRQ 中断是常用的中断,就像 51 系列单片机中定时器中断、串口中断、外部中断等。 中 断 可 以 通 过 CPSR[7] 来 屏 蔽 。 IRQ
完成中断处理后, 程序应该执行下列指令返回到原中断处: SUBSPC , R14 , #4
7>. 快速中断(FIQ)请求异常 在 ARM 处理器中,有一个输入逻辑 nFIQ 称为中断请求信号,这个输入信 号是由 ARM 处理器外围控制模块(片内)控制,当有满足中断条件的事件发生 时, 外围控制模块向 ARM 处理器发错 FIQ 信号, ARM 处理器进入异常。 使 FIQ 中断可以通过 CPSR[6]来屏蔽。
注意:进入异常会引起处理器模式转换。
       
3.      请简述中断和异常的差别?
中断是CPU暂停当前工作,有计划地去处理其他的事情。具有可预知性。
异常是CPU遇到到了无法响应的工作,非正常状态。多不可预知。

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

网站地图

Top