arm独有问题

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

相关推荐

点赞 评论 收藏
分享
04-21 16:27
已编辑
蚌埠坦克学院 C++
提问环节: 1、说一下C++的三大特性2、C++多态3、讲一下虚函数指针和虚函数表、虚函数表在虚拟内存的哪个区4、说一下用到的C++11/14/17的新特性5、多线程同步的方式6、用过哪些锁?7、讲一下RAII8、智能指针有哪些?有什么特点?9、写一个简单的shared_ptr10、shared_ptr的底层,在内存中是怎么布局的?11、说一下shared_ptr的循环引用?怎么解决?weak_ptr如何创建和使用?12、指向内存的shared_ptr都释放了,但还有一个weak_ptr指向这块内存,这块内存会释放吗?13、weak_ptr也有计数吗?说一下14、讲一下常见的几种设计模式和实现方法15、单例模式的实现,以及单例模式的优缺点16、设计模式的六大原则17、聊一下pImpl?18、ffmpeg和gstreamer框架的对比和优缺点19、说一下音视频同步的原则和做法20、OpenGL渲染帧率如何确定?21、如果显示器帧率是60帧,视频是150帧,应该怎么渲染22、介绍一下你的码率控制模块的设计框架?码率控制模式如何选型?(cbr/abr/vbr)23、介绍一下你是如何处理弱网卡顿的(时域svc + 记忆化滑动窗口预测)24、如果网络持续恶化,你会立刻降码率吗?25、介绍一下你的多路解码模块设计?内存池大概是怎么实现的?(多级分辨率链表 + LRU)26、讲一下AI工具,如何使用和发布skills和mcp server27、平时用AI开发多吗?都是怎么用AI的?28、Qt主窗口用的QWidget还是QMainWindow?为什么?29、 对多进程和多线程的理解,顺便提到macOS偏好多进程开发的原因30、为什么基类析构函数一般做成虚函数,构造函数能不能做成虚函数,为什么?31、共享屏幕看一下项目代码,看看你的代码习惯反问环节:Q1:您组里做什么业务呢?A1:音视频SDK开发,涉及linux和windows端,这块跟你经历接近;除此之外还要在移动端APP做拼接、特效等功能,不过这些你过来后也可以学。Q2:您是如何解决soc芯片编码能力不足,但需要给多路APP用户推流的问题?如果复用某几路流,码控不能兼容用户体验,您是如何思考的?A2:我们业务是手机和相机局域网通信的,并且只推一路流(笑),不过你提的这个问题确实不好解决。Q3:请您给一些关于我学习和成长的建议?A3:了解基础技术的前提下,多学习和使用AI吧,AI更新太快,程序员都要被自己开发的AI干掉了(笑)
点赞 评论 收藏
分享
评论
3
5
分享

创作者周榜

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