1. 程式人生 > >003_時間片輪轉排程及中斷函式

003_時間片輪轉排程及中斷函式

(一)使用時間片輪轉排程功能條件

(二)在os_cfg.h標頭檔案中將OS_CFG_SCHED_ROUND_ROBIN_EN置一

#define OS_CFG_SCHED_ROUND_ROBIN_EN     1u  

(三)呼叫OSSchedRoundRobinCfg函式,在start中呼叫這個函式

#if    OS_CFG_SCHED_ROUND_ROBIN_EN  //當使用時間片輪轉的時候
     //使能時間片輪轉排程功能,時間片長度為1個系統時鐘節拍,既1*5=5ms
                  /*使能  時間片長度  錯誤返回碼*/
    OSSchedRoundRobinCfg(DEF_ENABLED,
1,&err); #endif

(四)在建立任務時候確定使用多少個任務時間片

(五)注意時間片呼叫時間

 

(六)中斷函式在使用

void XXX_Handler(void)  (1)
{ 
OSIntEnter(); //進入中斷  (2)
使用者自行編寫的中斷服務程式;  //這部分就是我們的中斷服務程式  (3)
OSIntExit(); //觸發任務切換軟中斷 (4)
}