1.临界区
临界区是指必须以互斥的方式执行的代码段,也就是说临界区范围内只能由一个活动的线程。例如:修改共享变量的过程中其他的执行线程可能会访问共享变量,那么修改共享变量的代码就被看成是临界区的一部分。临界区问题指用安全、公平和对称的方式来执行临界区代码的问题
2.管理临界区的三种方法
第一种方法
#if OS_CRITICAL_METHOD == 1
#define OS_ENTER_CRITICAL() __asm__("cli")
#define OS_EXIT_CRITICAL() __asm__("sti")
#endif
第二种方法
#if OS_CRITICAL_METHOD == 2
#define OS_ENTER_CRITICAL() __asm__(

本文介绍了临界区的概念,即需要互斥执行的代码段,并探讨了管理临界区的三种方法:包括不推荐的简单开关中断、支持中断嵌套的OS_ENTER_CRITICAL方式以及M3处理器的CPSID指令实现。详细阐述了M3的第三种临界管理方式,包括函数包装、OS_CPU_SR_Save和OS_CPU_SR_Restore的使用。
最低0.47元/天 解锁文章
818

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



