uCOS-III中的OS_CRITICAL_ENTER()和OS_CRITICAL_EXIT()使用

uCOS-III是uCOS-II的升级版本,虽然针对于后者有各种优化,但是有一点不是特别好,就是有些宏定义名称会做一些修改,这种修改可能更合理,但是可能会引起一些不必要的“误会 ”,例如在uCOS-II中临界区的使用函数名字为:


#include "os_cpu.h"  //包含该头文件
 
xxxx()
{
         OS_CPU_SR cpu_sr=0;  //必须要定义一个局部变量才能不报错
	
	OS_ENTER_CRITICAL();
	
        xxxxxxxxx
 
	OS_EXIT_CRITICAL();

}

而在uCOS-III中名字由OS_ENTER_CRITICAL();改成了OS_CRITICAL_ENTER();,包含的头文件以及定义的局部变量也改了,使用方式如下:


#include "os.h"   //包含的头文件变化了
void xxx(xxx)
{
 
  CPU_SR_ALLOC();  //这条必须有,其展开内容同ucos-ii中
	
  OS_CRITICAL_ENTER();
	xxxxxx
  OS_CRITICAL_EXIT();
}

你可能感兴趣的:(UCOS,临界区,UCOS,嵌入式)