5.1 UCOSiii启动与初始化
使用UCOSiii时初始化步骤打开UCOSiii
1.先调用OSInit();
2.创建任务:在main.c中创建start_task();其余任务在start_task();中创建,
在调用OS_TaskCreat();创建任务前,需先调用OS_CRITICAL_ENTER();进入临界区
创建任务完成后OS_CRITICAL_EXIT();推出临界区
调用OSstart();开启UCOSiii
主函数:
int main(void)
{
delay_init(); //延时函数初始化
uart_init(9600);
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);// 中断优先级分组
LED_Init(); //
LCD_Init(); //
KEY_Init(); //
//uart_init(9600);//
tp_dev.init(); //触摸屏初始化
ucos_load_main_ui(); //加载主界面
OSInit(); //初始化UCOSII
OSTaskCreate(start_task,(void *)0,(OS_STK *)&START_TASK_STK[START_STK_SIZE-
1],START_TASK_PRIO );//创建任务函数
OSStart(); //开始多任务
}
5.2 任务状态
UCOSIII 支持的是单核 CPU,不支持多核 CPU,某一时刻只有一个任务会获得 CPU 使用权进入运行态,其他的任务就会进入其他状态。休眠态、就绪态、运行态、等待态、中断服务态