刚学嵌入式,想问问什么是中断,中断的概念是什么

一个简单的生活场景:孩子在卧室睡觉,妈妈在客厅看书,那么,妈妈如何知道孩子醒了?

刚学嵌入式,想问问什么是中断,中断的概念是什么_第1张图片

· 时时进房间查看:查询方式

· 进房间陪小孩一起睡觉,小孩醒了会吵醒她:休眠-唤醒

· 妈妈要干很多活,但可以定个闹钟陪小孩睡一会:poll方式

· 妈妈在房间干活,小孩自己醒了,走出房间告诉妈妈:异步通知

后面3中方式都需要小孩中断妈妈:中断她的睡眠、她的工作。

刚学嵌入式,想问问什么是中断,中断的概念是什么_第2张图片刚学嵌入式,想问问什么是中断,中断的概念是什么_第3张图片

事实上能“中断”妈妈的事儿多着呢

· 远处猫叫:忽略

· 门铃,小孩哭声:对应不同处理

· 身体不舒服:赶紧休息

· 有蜘蛛掉下来:赶紧跑

妈妈正在看书。被中断后的流程:

· 正在看书

· 发生各种声音:中断源

o 远处猫叫

o 小孩哭声

o 门铃 ...

怎么处理

· 先在书中放上书签,合上书:保存现场

· 去处理:中断服务程序

· 回来继续看书:返回处理

嵌入式系统中的中断

刚学嵌入式,想问问什么是中断,中断的概念是什么_第4张图片刚学嵌入式,想问问什么是中断,中断的概念是什么_第5张图片

CPU 在运行过程中会被各种“异常”打断:

· 未定义

· 指令、数据有问题

· SWI:软中断

· 快中断

· 中断

中断也是一种异常。导致中断的情况有很多:

· 按键

· 定时器

· ADC转换完成

· UART发送完数据、收到数据

· 等等

这些中断源,汇集到中断控制器,由中断控制器选择最高的中断并通知CPU

中断处理流程

· 初始化:

o 设置中断源:何种中断

o 设置中断控制器(屏蔽某个中断,中断优先级)

o 设置CPU总开关:使能中断

· 执行正常程序:

· 产生中断:比如按下按键 -> 中断控制器 -> CPU

· CPU 没执行一条命令都会检查有无中断/异常的产生

· CPU发现有中断/异常,开始处理:

o 对于不同的的异常,跳转到不同的地址执行程序

o 这个地址上,只是一条跳转指令,跳去执行某个函数,这个就是异常向量。

后3步都是硬件做的。软件做的:

· 保存现场(各种寄存器)

· 处理异常和中断

· 恢复现场


你可能感兴趣的:(硬件工程师,自动化,智能,嵌入式硬件,嵌入式实时数据库,安全)