一、资源管理
(1)基本临界区
基本临界区是指宏taskENTER_CRITICAL()与taskEXIT_CRITICAL()之间的代码区间
#define taskENTER_CRITICAL() portENTER_CRITICAL()
#define taskEXIT_CRITICAL() portEXIT_CRITICAL()
临界区是提供互斥功能的一种非常原始的实现方法。临界区的工作仅仅是简单地把中断全部关掉,或是关掉优先级在configMAX_SYSCAL_INTERRUPT_PRIORITY及以下的中断——依赖于具体使用的 FreeRTOS 移植。
0:任务切换时关闭所有中断 1:任务切换时关闭中断优先级为1、2、3的中断 2:任务切换时关闭中断优先级为2、3的中断 3:任务切换时关闭中断优先级为3的中断
#define configMAX_SYSCALL_INTERRUPT_PRIORITY 0
临界区嵌套是安全的,因为内核有维护一个嵌套深度计数。临界区只会在嵌套深度为0时才会真正退出——即在为每个之前调用的taskENTER_CRITICAL()都配套调用了taskEXIT_CRITICAL()之后。

&spm=1001.2101.3001.5002&articleId=137909921&d=1&t=3&u=f2226c9fd30e4e59b63bf219bae51f3b)
3137

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



