【STM32】临界区进入退出宏 OS_ENTER_CRITICAL() 和 OS_EXIT_CRITICAL()

本文介绍了STM32中用于临界区管理的宏OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL(),这两个宏分别用于进入和退出临界区。在OS_CPU_A.asm文件中,它们通过OS_CPU_SR_Save()和OS_CPU_SR_Restore()实现,涉及到的关键是PRIMASK寄存器,该寄存器设置为1时会关闭所有可屏蔽中断。在进入临界区前,中断状态被保存,退出时则恢复之前的状态,确保了中断的正确处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

宏函数展开为:

1 #define  OS_CRITICAL_METHOD   3
2 
3 #if OS_CRITICAL_METHOD == 3
4 #define  OS_ENTER_CRITICAL()  {cpu_sr = OS_CPU_SR_Save();}
5 #define  OS_EXIT_CRITICAL()   {OS_CPU_SR_Restore(cpu_sr);}
6 #endif

OS_CPU_SR_Save() 和 OS_CPU_SR_Restore(cpu_sr) 在os_cpu_a.asm 中,为移植函数:

 1 OS_CPU_SR_Save                 //PRIMASK缺省值0 中断屏蔽寄存器  =1 关闭所有可屏蔽异常 只剩
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值