os_exit_critical
所属模块:内核机制 | 类型:临界区控制函数
函数简介
os_exit_critical 用于退出临界区,并恢复进入临界区前的中断状态。
该函数与 os_enter_critical 配合使用,用于实现可嵌套的临界区保护机制。
函数原型
void os_exit_critical(void);
源码实现
#include"hrtos_internal.h"
void os_exit_critical()
{
if(os_critical_nesting > 0)
{
os_critical_nesting--;
if(os_critical_nesting == 0)
{
EA = os_int_status;
}
}
}
使用示例
void task()
{
os_enter_critical();
// 修改共享资源
shared_data--;
os_exit_critical();
}
注意事项
必须与 os_enter_critical 成对使用,否则可能导致中断状态异常恢复或系统死锁。