当前位置:资讯 > 嵌入式系统 > 正文

μC/OS-ll中任务调度算法的改进

发布时间:2007-02-17           

kCreate和OSNTaskDel。0SNTaskCreate用于创建分时任务www.cechina.cn,该函数在分时区间自动分配优先级,代替用户申请栈空间,并在初始化栈内容时压人OSNTaskDel地址。在用户任务退出后CONTROL ENGINEERING China版权所有,就会自动调用()SNTaskDel控制工程网版权所有,以释放栈空间,并调用()STaskDel。如此更符合用户在Windows等系统的情况www.cechina.cn,任务结束后只是简单返回,减小了错误出现的机会。改进后的OSNTaskCreate伪码如下:


  INT8U()SNTaskCreate(任务地址pThead,参数pDatawww.cechina.cn,栈大小dwStackSize){在分时区间分配优先级;

if(区间已满)

设置错误码并退出;

if(dwStackSize为零)

dwStackSize为缺省大小;

分配栈空间并记人TCB;

初始化栈空间()SNewTaskStklnit();

调用0S_TCBInit初始化TCB;

if(成功)

  调度0S_Sched();

设置错误码并退出;

}


     优先级和栈空间分配算法较简单,这里不再详述。新的OSNewTaskSt

klnit初始化栈空间函数在x86平台上修改前后形成的栈内容如图4所示。

点击看原图

点击看原图


  结  语

     本文对μC/0S—II的调度算法作了改进,划分了实时任务、分时任务和后台任务;并对任务的用户接口进行了改善,使之更加方便易用。以上方法已成功应用在好易通系列电子产品的开发中,对μC/OS—II在嵌入式产品应用和推广中具有广泛意义。

 


 






标签:μC/OS-ll,任务调度算法,实时,系统,优先级,
版权声明:版权归中国控制工程网所有,转载请注明出处!