空闲任务和统计任务
1.空闲任务
乳腺切除术
e. coli
系统初始是在函数OSInit (void)中进⾏建⽴空闲函数OS_InitTaskIdle(); 函数内部创建了空闲任务,并将空闲任务的优先级设置为最低:句柄
#define OS_TASK_IDLE_PRIO (OS_LOWEST_PRIO)
这样在没有任务就绪的时候,会执⾏空闲函数,空闲任务OS_TaskIdle (void *p_arg)的内容很简单,只是在⾥⾯做简单的变量加⼀OSIdleCtr++;该变量记录了空闲任务调⽤的次数,同时该变量的增加快慢也体现了cpu的使⽤率,函数内部最后有⼀个空闲任务的回调函数,可以让⽤户⾃添加代码。
这⾥有⼀个需要思考的地⽅,⼀般创建的任务都会有任务调度的函数,⽐如延时中,空闲任务⾥⾯并没有调⽤可以引起函数调度的函数,为什么在空闲任务的死循环⾥⾯可以跳出去执⾏其他任务呢?通过对系统的源码的分析可知,其实所有任务的调度是通过系统时钟Tick中进⾏的,在Tick函数OSTickHandler (void)⾥调⽤OSTimeTick()⽤来就检查任务是否已经延时到时,到时间则进⾏将任务就绪,最后调⽤OSIntExit()退出中断,这个函数⽤来通知系统你现在已经完成了中断服务函数,在该函数中进⾏OSIntN
esting–,系统会在重新调⽤⼀个准备就绪的最⾼优先级的任务,当没有中断嵌套的时候进⾏系统任务调度,所以任务调度根据Tick时间在时刻进⾏检查,有任务时间到就绪的时候就进⾏调度。最后,函数OSIntEnter() and OSIntExit()要成对使⽤!
公称抗拉强度1.统计任务
三次函数
统计任务是通过宏OS_TASK_STAT_EN开启的,设置为1的话,统计任务就会被建⽴,yjp