常见面试题——中断是如何产生的

"中断是硬件或软件向CPU发出的一个异步事件请求,让CPU暂停当前任务去处理更紧急的事件,处理完后再恢复原任务。"

分步详解(加分项)

  • 中断源请求:外设(如定时器、UART、GPIO)或软件触发中断信号,发送给中断控制器(如NVIC)。

  • 中断控制器仲裁:NVIC检查该中断是否被使能、优先级是否足够高、是否有更高优先级中断正在处理。若通过,则向CPU核心发送中断请求。

  • CPU硬件自动响应:CPU在当前指令执行完毕后,识别中断信号,自动完成:

    • 压栈保存现场(PC、LR、PSR等寄存器);(寄存器上下文保存)

    • 根据中断号从中断向量表取出ISR入口地址;(栈指针地址切换)

    • 跳转执行ISR。

  • 执行ISR:程序员编写的C函数,做必要处理(清标志、读数据、设置标志等),要求短小快速。

  • 中断返回 :ISR执行 BX LR 或等效指令,CPU硬件出栈恢复现场,继续执行原任务。

相关推荐
草履虫君4 小时前
VMware 虚拟机网络性能优化指南:从 11 秒到 4 秒的完整调优实践
服务器·网络·经验分享·性能优化
05候补工程师4 小时前
【ROS 2 具身智能】Gazebo 仿真避坑指南:从“幽灵机器人”到传感器数据流打通
人工智能·经验分享·笔记·ubuntu·机器人
其实秋天的枫7 小时前
2026年初中英语大纲词汇表1600词
经验分享·pdf
许长安9 小时前
protobuf 使用详解
c++·经验分享·笔记·中间件
村头的猫10 小时前
JWT 令牌的工作原理,结构和签名验证
前端·数据库·经验分享·微服务
童园管理札记1 天前
【续】数字时代:学前教育的新改革
经验分享·深度学习·职场和发展·微信公众平台
aseity1 天前
跨平台项目中QString 与 非Qt 跨平台动态库在字符集上的一个实用的互操作约定.
c++·经验分享
童园管理札记1 天前
数字时代:学前教育的新改革
经验分享·职场和发展·学习方法·微信公众平台
IT摆渡者1 天前
linux 系统安全检查
运维·网络·经验分享·笔记
明天再做行么1 天前
高考物理资源合集
经验分享