【秋招】嵌入式面试八股文 - ARM 中断/异常/内核

本文为 第二章 ARM 部分,具体整篇目录可以看前言!

【秋招】嵌入式面试八股文分享

第一部分(纯八股)

1 ARM中断与异常

1.1 异常和中断

(1)中断和异常的相同点:

  • 最后都是由CPU发送给内核,由内核去处理。
  • 处理程序的流程设计上是相似的。

(2)中断和异常的区别:

  • 产生源不相同,异常是由CPU产生的,而中断是由硬件设备产生的。
  • 中断是异步的,这意味着中断可能随时到来:而异常是CPU产生的,所以,它是时钟同步的。
  • 当处理中断时,处于中断上下文中:处理异常时,处于进程上下文中。

在处理器执行到因编译 错误而导致的错误指令时,或者在执行期间出现特殊错误,必须靠内核处理的时候,处理器就会产生一个异常。

1.2 中断和DMA的区别

  • DMA:是一种无须CPU的参与,就可以让外设与系统内存之间进行双向数据传输的硬件机制,使用 DMA可以使系统CPU从实际的I/O数据传输过程中摆脱出来,从而大大提高系统的吞吐率。
  • 中断:是指CPU在执行程序的过程中,出现了某些突发事件时,CPU必须暂停执行当前的程序,转去处理突发事件,处理完毕后CPU又返回源程序被中断的位置并继续执行。
  • 所以中断和DMA的区别就是:DMA不需CPU参与,而中断是需要CPU参与的

1.3 中断响应执行流程

  • 中断的响应流程:cpu接受中断->保存中断上下文跳转到中断处理历程->执行中断上半部->执行中断下半部->恢复中断上下文。

1.4 中断和轮询哪个效率高?怎样决定是采用中断方式还是采用轮询方式去实现驱动?

  • 中断是CPU处于被动状态下来接受设备的信号,而轮询是CPU主动去查询该设备是否有请求。
  • 凡事都是两面性,所以,看效率不能简单的说那个效率高。如果是请求设备是一个频繁请求cpu的设备,或者有大量数据请求的网络设备,那么轮询的效率是比中断高。如果是一般设备,并且该设备请求 cpu的频率比较低,则用中断效率要高一些。主要是看请求频率。

1.5 当一个异常出现以后,ARM微处理器会执行哪几步操作?

  • 将下一条指令的地址存入相应连接寄存器LR,以便程序在处理异常返回时能从正确的位置重新开始执行。若异常是从ARM状态进入,则LR寄存器中保存的是下一条指令的地址(当前PC+4或PC+ 8,与异常的类型有关);若异常是从Thumb状态进入,则在LR寄存器中保存当前PC的偏移量,这样,异常处理程序就不需要确定异常是从何种状态进入的。例如:在软件中断异常SWI,指令 MOV PC,R14_svc总是返回到下一条指令,不管SWI是在ARM状态执行,还是在Thumb状态执行。
  • 将CPSR复制到相应的SPSR中。
  • 根据异常类型,强制设置CPSR的运行模式位。
  • 强制PC从相关的异常向量地址取下一条指令执行,从而跳转到相应的异常处理程序处

注意:

  • CPSR: 程序状态寄存器(当前程序状态寄存器),在任何处理器模式下被访问

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

双非本,211硕。本硕均为机械工程,自学嵌入式,在校招过程中拿到小米、格力、美的、比亚迪、海信、海康、大华、江波龙等offer。八股文本质是需要大家理解,因此里面的内容一定要详细、深刻!这个专栏是我个人的学习笔记总结,是对很多面试问题进行的知识点分析,专栏保证高质量,让大家可以高效率理解与吸收里面的知识点!掌握这里面的知识,面试绝对无障碍!

全部评论
需要改进的地方欢迎大家提意见
点赞 回复 分享
发布于 05-07 18:54 山东
😋😋😋
点赞 回复 分享
发布于 04-28 22:36 山东

相关推荐

求面试求offer啊啊啊啊:1600一个月?
点赞 评论 收藏
分享
牛客965593684号:假的,字节hr都是不会找你内推的,直接就是同学我们约个面试?他们有权限直接捞你的。
点赞 评论 收藏
分享
评论
1
11
分享

创作者周榜

更多
牛客网
牛客企业服务