单片机/MCU论坛
直播中

jf_25090866

1年用户 6经验值
私信 关注
[资料]

中断流程分析与示例学习笔记


中断基本概念:
CPU在处理某一事件A时,另一事件B发出请求(中断请求);CPU暂时中断当前的工作,转去
处理实践B(中断响应和中断服务);待CPU将事件B处理完毕后,再回到原来事件A被中断的
地方继续处理事件A(中断返回),这一过程称为中断.

执行过程:
1、中断源产生中断信号:当一个中断事件发生时,比如外部设备请求处理、定时器溢出
等,中断源会产生中断信号。
2、中断向量检测:当中断信号产生后,CPU会检测中断向量。中断向量是一个特定的地
址,用于存储中断服务程序的入口地址。
3、保存现场:在进入中断服务程序之前,CPU会自动将当前的程序计数器(PC)和标志寄存
器等关键寄存器的值保存到栈中,以便在中断处理完成后能够正确恢复。
4、跳转到中断服务程序:CPU会根据中断向量找到中断服务程序的入口地址,并跳转到该
地址开始执行中断服务程序。
5、中断服务程序执行:中断服务程序是一段特定的代码,专门用来处理中断事件。它会根
据具体的中断类型执行相应的操作,比如读取外部设备数据、清除中断标志、更新相关寄
存器等。6、恢复现场:在中断服务程序执行完毕后,CPU会从栈中恢复之前保存的现场信息,包括
程序计数器和标志寄存器等。
7、返回主程序:恢复现场后,CPU会继续执行被中断打断的主程序,从中断发生的地方继
续执行下去。需要注意的是,中断服务程序的编写需要考虑时间限制和资源占用等因素,以确保中断处
理的效率和系统的稳定性。同时,在中断处理期间,可以通过设置中断屏蔽位来禁止其他
中断的发生,以避免中断嵌套引起的问题。

中断嵌套的基本概念:
如果多个中断源同时提出了中断请求,先响应高优先级中断源,后响应低优先级中断源.

执行过程:
如果一个中断源提出了中断请求,已经转去执行其中断服务程序了,期间又有一个中断源
提出了中断请求,CPU的处理原则是,如果新的中断优先级与当前正在处理的中断是同级
的,则不予响应,待当前中断服务程序执行完毕后,再响应;如果新的中断优先级比当前
正在处理的中断高,则会发生中断嵌套.

中断的优势:
1、提高CPU效率
2、解决速度矛盾
3、实现并行工作
4、应付突发事件

中断服务函数和普通函数的异同:
1、相同点是,函数的形式非常类似,中断响应过程和普通函数调用过程也非常相似.
2、不同点有如下几方面.
a.中断服务函数不需要声明,普通函数一般需要声明.
b.普通函数的执行是可预测的;中断服务函数的执行是不可预测的.c.普通函数的跳转是软件(函数调用语句)完成的;中断服务的跳转(中断响应)是由硬件完成
的,只要发生了中断事件,并且中断被允许,硬件自动完成中断服务的跳转(中断响应).
d.普通函数通过函数名找到被调用函数;中断服务函数通过中断号找到中断服务函数.由此可知,中断服务函数中的函数名其实并没有什么用.

中断函数的编码注意事项:
1、interrupt必须加,表示定义成中断服务函数.
2、后面n是中断号,中断号是编译器识别不同中断的唯一编号.

中断使用的注意事项:
1、中断服务函数不能进行参数转递.
2、在任何情况下,都不能直接调用中断服务函数.
中断流程分析与示例学习笔记.pdf (345.53 KB)
(下载次数: 13, 2023-12-4 21:23 上传)



回帖(1)

他在笑

2023-12-5 13:55:52
谢谢分享
举报

更多回帖

发帖
×
20
完善资料,
赚取积分