中断处理流程深度剖析

1、中断概念

cpu在工作的过程中,进程需要与外设进行交互,交互的方式包括“轮询方式”,“中断方式”。

a、轮询方式:cpu不断地查询设备的状态。cpu利用率很低,不适合多任务的系统。

b、中断方式:cpu在告知硬件开始一项工作后,就去做别的事去了,当硬件完成了该项工作后,向cpu发送一个信号,告知CPU它已经完成了这项工作。

2、中断生命周期

 中断信号产生(中断源)--->中断信号过滤(中断控制器)--->中断信号处理(CPU)

3、中断源

在中断的生命周期中,中断源的作用是负责产生中断信号。

a、s3c2440支持60个中断源。

,还包括一些子中断源等等

b、s3c6410

支持64个中断源

等等

4、中断过滤

2440的过滤图

这里选择串口0的子中断发送tx0为例:当tx0发送数据后,会产生中断到SUBSRCPND,该SUBSRCPND寄存器的每一位对应一个子中断,对应中断产生,相应位置一。通过SUBMASK来进行过滤,它也是每一位对应一个子中断,当对应位置一,则屏蔽掉该位的中断;如果没有屏蔽,则它会把SRCPND对应的为置一,还要通过MASK寄存器进行过滤,它的每一位对应一个中断源(而非子中断源);该寄存器对应位为一则屏蔽掉。如果没有屏蔽,则可以交给处理器来处理了,但是什么时候交,还有一个优先级的判断;因为在同一时刻可能产生多个中断,各个中断的优先级不一样;选择最优的中断交给处理器处理。mode用来设置到底是快速中断还是普通中断;

当信号交给cpu后,由cpu来处理了,cpu进行中断处理有两种方式:非向量方式(2440)、向量方式(6410/210)。

对于2440的非向量方式

中断程序总入口(唯一的入口)-->保存环境-->判断中断源-->调用对应中断源的中断处理程序-->恢复环境。

对于6410/210的中断处理

当中断产生时CPU直接跳转到用户设置好的中断处理程序处-->保存环境-->设备的中断处理-->恢复环境。

 

posted on   gary_123  阅读(3091)  评论(0编辑  收藏  举报

编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示