|
发表于 2008-1-10 17:01:10
|
显示全部楼层
void main(void)
{
#if (OS_TASK_NAME_SIZE > 14) && (OS_TASK_STAT_EN > 0)
INT8U err;
#endif
OSTaskStkSize = OS_TASK_IDLE_STK_SIZE;
OSTaskStkSizeHard = OS_TASK_IDLE_STK_SIZE_HARD;
OSInit();
//调整空闲任务堆栈尺寸
OSTCBPrioTbl[OS_IDLE_PRIO]->OSTCBStkSize = OSTaskStkSize - OSTaskStkSizeHard;
OSTCBPrioTbl[OS_IDLE_PRIO]->OSTCBStkBottom = &OSTaskIdleStk[OS_TASK_IDLE_STK_SIZE_HARD];
//调整统计任务堆栈尺寸
#if OS_TASK_STAT_EN > 0
OSTCBPrioTbl[OS_STAT_PRIO]->OSTCBStkSize = OSTaskStkSize - OSTaskStkSizeHard;
OSTCBPrioTbl[OS_STAT_PRIO]->OSTCBStkBottom = &OSTaskStatStk[OS_TASK_STAT_STK_SIZE_HARD];
#endif
//设置空闲任务名称
#if OS_TASK_NAME_SIZE > 14
OSTaskNameSet(OS_IDLE_PRIO, "uC/OS-II Idle", &err);
#endif
//设置统计任务名称
#if (OS_TASK_NAME_SIZE > 14) && (OS_TASK_STAT_EN > 0)
OSTaskNameSet(OS_STAT_PRIO, "uC/OS-II Stat", &err);
#endif
//用任务建立任务
OSTaskStkSize = OS_TASK_START_STK_SIZE;
OSTaskStkSizeHard = OS_TASK_START_STK_SIZE_HARD;
OSTaskCreateExt(OSTaskStart, //void (*task)(void *pd) 任务首地址
(void *)0, //void *pdata 数据指针
&OSTaskStartStk[OS_TASK_START_STK_SIZE - 1], //OS_STK *ptos 指向任务堆栈栈顶的指针
OS_TASK_START_PRIO, //INT8U prio 任务优先级
OS_TASK_START_ID, //INT16U id 任务的ID号
&OSTaskStartStk[OS_TASK_START_STK_SIZE_HARD], //OS_STK *pbos 指向任务堆栈栈底的指针
OS_TASK_START_STK_SIZE - OS_TASK_START_STK_SIZE_HARD, //INT32U stk_size 堆栈容量
(void *)0, //void *pnext 数据指针
OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR); //INT16U opt 设定OSTaskCreateExt的选项
OSTaskNameSet(OS_TASK_START_PRIO, "Task-Start", &err);
OSStart();
} |
|