上一文链接:FreeRTOS笔记(十)队列和通信
任务切换中也提到过中断,比如SysTick
中断、SVC
中断和PendSV
中断,他们都是多任务并发进行的必要中断,可以认为属于内部中断,在任务和内核之间进行的,而FreeRTOS实时操作系统需要响应外界各种事件,比如按键按下、数据源有数据到达等等,这部分属于外部中断,FreeRTOS对外部中断的处理都使用延迟中断机制
01 - 延迟中断机制
先回顾一般外部中断的执行流程,首先系统配置好中断源、中断触发方式、中断服务函数、中断屏蔽位等内容后,中断就开始工作了,当中断源满足中断触发条件(事件到达),CPU就会停下当前的工作,并保存当前工作状态,然后跳转到中断服务函数ISR
,执行完毕后再恢复工作的状态,继续当前工作

一般而言,事件到达后的处理在中断服务函数ISR
中进行,但是有个弊端,如果待处理事件的工作量很大,那么