003_时间片轮转调度及中断函数

时间:2022-07-20 19:49:14

(一)使用时间片轮转调度功能条件

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        

(四)在创建任务时候确定使用多少个任务时间片

003_时间片轮转调度及中断函数

(五)注意时间片调用时间

 

(六)中断函数在使用

void XXX_Handler(void)  (1)
{ 
OSIntEnter(); //进入中断  (2)
用户自行编写的中断服务程序;  //这部分就是我们的中断服务程序  (3)
OSIntExit(); //触发任务切换软中断 (4)
}

 003_时间片轮转调度及中断函数