//起始任务
void TaskStart(void * pdata)
{
pdata = pdata;
// OS_ENTER_CRITICAL();//这个函数注销程序也能运行,奇怪的是这函数居然不知道在哪里定义的!
//创建任务1
OSTaskCreate(TaskLed0, (void *)0, (OS_STK *)&TASK_LED0_STK[LED0_STK_SIZE-1], LED0_TASK_Prio);
//创建任务2
OSTaskCreate(TaskLed1, (void *)0, (OS_STK *)&TASK_LED1_STK[LED1_STK_SIZE-1], LED1_TASK_Prio);
OSTaskSuspend(START_TASK_Prio); //挂起但未删除
OS_EXIT_CRITICAL();
}
///////////////////////////////////////////////////////////////////////////////////////
//注:若将此函数里的OS_ENTER_CRITICAL()被注销掉则程序不能正常运行!
//系统时钟中断服务函数
void SysTick_Handler(void)
{
OS_ENTER_CRITICAL(); /* Tell uC/OS-II that we are starting an ISR */
OSIntNesting++;
OS_EXIT_CRITICAL();
OSTimeTick(); /* Call uC/OS-II's OSTimeTick() */
OSIntExit(); /* Tell uC/OS-II that we are leaving the ISR */
}
|