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();
}