|
这两天闲着就学了下uCOS,移植好了准备学开始创建任务。
有些例程里创建任务时会设置临界区:
void startTask(void *p_arg)
{
OS_CPU_SR cpu_sr=0;
p_arg = p_arg;
OS_ENTER_CRITICAL();
OSTaskCreate(led0Task, (void*)0, (OS_STK*)&LED0_TASK_STK[LED0_STK_SIZE - 1], LED0_TASK_PRIO);
OSTaskCreate(led1Task, (void*)0, (OS_STK*)&LED1_TASK_STK[LED1_STK_SIZE - 1], LED1_TASK_PRIO);
OSTaskSuspend(START_TASK_PRIO);
OS_EXIT_CRITICAL();
}
---------------------
作者:远去的栀子花
来源:CSDN
OS_ENTER_CRITICAL();、OS_EXIT_CRITICAL();这两个该什么时候使用?例子里创建新任务加上临界区有什么好处?
|
|