arm独有问题

#面试官问过你最刁钻的问题是什么?#哈哈,说到心里一凉的面试题,我可太有共鸣了。除了经典的“优先级反转”,另一个让我记忆犹新的刁钻问题是:
“ARM的FIQ(快速中断)为什么能‘快’?除了优先级更高,它的硬件设计到底为你节省了哪些关键操作时间?在Cortex-A系列中,FIQ处理函数可以直接使用R8-R12寄存器,这避免了什么开销?如果你要为一个超高频、要求极致实时性的传感器设计驱动,你会如何利用FIQ而不是标准的IRQ?”​
这个问题一下就戳破了仅仅知道“FIQ比IRQ快”的表面认知。它逼着你深入到ARM内核的微架构层面:FIQ有自己独有的R8-R12寄存器,这意味着进入FIQ处理程序时,编译器可能不需要手动保存和恢复这些寄存器,直接使用就能保证上下文不受破坏,这节省了宝贵的压栈、出栈时间 。同时,FIQ的向量位于异常向量表的最高地址0x1C,其后可以直接紧挨着放置服务代码,省去了一次跳转操作​ 。面试官追问的应用场景,更是考验如何将理论特性转化为实际的性能优势。
全部评论
学到了,你这面的哪家的?
点赞 回复 分享
发布于 2025-12-31 20:38 陕西

相关推荐

脑袋锈住了:你这算啥,哥们中科院中强所硕士,本科211,叫我去干分拣,时薪20
点赞 评论 收藏
分享
📍面试公司:卓yu🕐面试时间:12.26💻面试岗位:嵌入式软件实习生❓面试问题:一、基础编程概念1. 指针变量是什么?指针变量和变量有什么区别?2. 指针变量的大小是多少?指针变量做++操作会移动多少?3. 如果函数返回一个局部变量的地址,会出现什么情况?4. 如何将程序跳转到一个指定的地址?会用汇编写吗?二、硬件通信协议串口(UART)1. 串口的数据帧格式是怎样的?有校验位吗?如果连续传输字节流,该如何传输?怎么保证数据的正确性?2. 你使用串口传输数据时,代码是怎么写的?如果数据包中某一位出现错误,该怎么办?如何检测这个错误?SPI1. SPI支持多从机吗?主机是如何和从机通信的?2. 使用SPI传递大量数据时,有考虑使用DMA吗?3. 如果使用DMA优化SPI传输过程,会怎么做?4. 考虑过循环双缓冲模式吗?双缓冲是怎么工作的?FIFO在这里怎么使用?怎么读、处理数据,是否使用中断?用的是半传输中断还是其他中断?I2C(IIC)1. 说说IIC:仲裁是什么?怎么实现的?起始信号是什么?2. 在项目中使用过IIC吗?出现过什么错误?是怎么解决的?ADC与数据序1. 为什么选择使用AD作为ADC芯片?如何使用AD读取数据?2. AD芯片读取的是大端序还是小端序?STM32是大端序还是小端序?该如何处理?传感器(MPU6050)1. 如何使用MPU6050读取数据的?怎么移植官方提供的库或者例程?三、系统内核与底层机制1. 了解FreeRTOS的哪些特性?2. PendSV的优先级是?上下文切换过程是怎么样的?保存和恢复了哪些内容?3. 使用DMA优化传输的具体实现思路?四、项目实操与问题解决1. 在项目中遇到的最大的困难或者问题是什么?如何解决的?有没有思考过问题产生的原因?🙌面试感想:项目可能比较简单,所以问的比较多,已oc
查看19道真题和解析
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务