目录
频道首页
浅谈中断与单片机中断处理的过程
收藏
0
EndlessCodeEndlessBug 最近修改于 2023-03-28 11:25:48

浅谈中断与单片机中断处理的过程

中断是个很重要的一个概念,在计算机组成原理中曾经讲过这一概念,对于嵌入式方向来说,也是一个非常重要的一个知识点,经常出现在笔试中。

中断\ 所谓中断就是:CPU在正常执行程序的过程中,由于内部/外部事件的触发或程序的预先安排引起CPU暂时中断当前正在运行的程序,而转去执行中断服务子程序,待中断服务子程序执行完毕后,CPU继续执行原来的程序,这一过程称为中断;

中断处理过程

第一步:保护现场,将当前位置的PC地址压栈;\ 第二步:跳转到中断服务程序,执行中断服务程序;\ 第三步:恢复现场,将栈顶的值回送给PC;\ 第四步:跳转到被中断的位置开始执行下一个指令

中断服务函数\ 相对于正常子函数,中断服务函数有以下需要注意的地方:

1.中断服务函数不能传入参数;\ 2.中断服务函数不能有返回值;\ 3.中断服务函数应该做到短小精悍;\ 4.不要在中断函数中使用printf函数,会带来重入和性能问题。

中断并不是程序一开始就判断好在那里发生,或者会在什么时候发生。中断发生完全时随机的,中断源连接到硬件,由硬件来产生触发中断,而总所周知,函数、函数内变量等大部分是存储在堆栈区,但是中断是随机产生的,且由硬件告知,那么去哪分配存储位置,自然一二是无法满足的。\ ————————————————

中断是个很重要的一个概念,在计算机组成原理中曾经讲过这一概念,对于嵌入式方向来说,也是一个非常重要的一个知识点,经常出现在笔试中。

中断\ 所谓中断就是:CPU在正常执行程序的过程中,由于内部/外部事件的触发或程序的预先安排引起CPU暂时中断当前正在运行的程序,而转去执行中断服务子程序,待中断服务子程序执行完毕后,CPU继续执行原来的程序,这一过程称为中断;

中断处理过程

第一步:保护现场,将当前位置的PC地址压栈;\ 第二步:跳转到中断服务程序,执行中断服务程序;\ 第三步:恢复现场,将栈顶的值回送给PC;\ 第四步:跳转到被中断的位置开始执行下一个指令

中断服务函数\ 相对于正常子函数,中断服务函数有以下需要注意的地方:

1.中断服务函数不能传入参数;\ 2.中断服务函数不能有返回值;\ 3.中断服务函数应该做到短小精悍;\ 4.不要在中断函数中使用printf函数,会带来重入和性能问题。

中断并不是程序一开始就判断好在那里发生,或者会在什么时候发生。中断发生完全时随机的,中断源连接到硬件,由硬件来产生触发中断,而总所周知,函数、函数内变量等大部分是存储在堆栈区,但是中断是随机产生的,且由硬件告知,那么去哪分配存储位置,自然一二是无法满足的。\ ————————————————

内容大纲
批注笔记
浅谈中断与单片机中断处理的过程
ArticleBot
z
z
z
z
主页
会议室
Git管理
文章
云文档
看板