一、中断管理
1.延迟中断处理
(1)采用二值信号量同步
二值信号量可以在某个特殊的中断发生时,让任务解除阻塞,相当于让任务与中断同步。这样就可以让中断事件处理量大的工作在同步任务中完成,中断服务例程(ISR) 中只是快速处理少部份工作。如此,中断处理可以说是被”推迟(deferred)”到一个”处理 (handler)”任务。
如果某个中断处理要求特别紧急,其延迟处理任务的优先级可以设为最高,以保证延迟处理任务随时都抢占系统中的其它任务。这样,延迟处理任务就成为其对应的ISR退出后第一个执行的任务,在时间上紧接着ISR执行,相当于所有的处理都在ISR中完成一样。
vSemaphoreCreateBinary() API 函数

本文详细阐述了FreeRTOS中中断管理,包括延迟中断处理、二值信号量同步、使用xSemaphoreCreateBinary、xSemaphoreTake和xSemaphoreGiveFromISR进行任务协调,以及在中断服务例程中利用队列进行事件和数据通信的方法。
最低0.47元/天 解锁文章
1345

被折叠的 条评论
为什么被折叠?



