OS_InitTaskIdle 函数

//创建空闲任务(无条件) static void OS_InitTaskIdle (void) { #if OS_TASK_CREATE_EXT_EN > 0 //允许生成OSTaskCreateExt()函数 #if OS_STK_GROWTH == 1 //堆栈生长方向向下 (void)OSTaskCreateExt(OS_TaskIdle, //空闲任务 (void *)0, //没有(传递参数指针) &OSTaskIdleStk[OS_TASK_IDLE_STK_SIZE - 1], //分配任务堆栈栈顶指针 OS_IDLE_PRIO, //分配任务优先级 OS_TASK_IDLE_ID, //(未来的)优先级标识(与优先级相同) &OSTaskIdleStk[0], //分配任务堆堆栈底指针 OS_TASK_IDLE_STK_SIZE, //指定堆栈的容量(检验用) (void *)0, //没有(指向用户附加的数据域的指针) OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR);/* Enable stack checking + clear stack */ #else //建立扩展任务;堆栈生长方向向上 (void)OSTaskCreateExt(OS_TaskIdle, //空闲任务 (void *)0, //没有(传递参数指针) &OSTaskIdleStk[0], //分配任务堆栈栈底指针 OS_IDLE_PRIO, //分配任务优先级 OS_TASK_IDLE_ID, //(未来的)优先级标识(与优先级相同) &OSTaskIdleStk[OS_TASK_IDLE_STK_SIZE - 1], //分配任务堆堆栈顶指针 OS_TASK_IDLE_STK_SIZE, //指定堆栈的容量(检验用) (void *)0, //没有(指向用户附加的数据域的指针) */ OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR);/* Enable stack checking + clear stack */ #endif #else //否则只能生成OSTaskCreate()函数 #if OS_STK_GROWTH == 1 //堆栈生长方向向下 (void)OSTaskCreate(OS_TaskIdle, //建立任务(空闲任务) (void *)0, //没有(传递参数指针) &OSTaskIdleStk[OS_TASK_IDLE_STK_SIZE - 1], //分配任务堆栈栈顶指针 OS_IDLE_PRIO); //分配任务优先级 #else (void)OSTaskCreate(OS_TaskIdle, //建立任务(空闲任务) (void *)0, //没有(传递参数指针) &OSTaskIdleStk[0], //分配任务堆栈栈底指针 OS_IDLE_PRIO); //分配任务优先级 #endif #endif }

你可能感兴趣的:(OS,ext,扩展,任务)