系统任务:空闲任务与统计任务
1、空闲任务OSTaskIdle()是每个应用程序必须使用的,如果用户认为有必要,那么也可在空闲任务中编写一些做用户工作的代码。
系统代码:
void 0STaskIdle(void *pdata)
{
#if OS_CRITICAL_METHOD == 3
0S_CPU_SR cpu_sr;
#endif
pdata = pdata; //避免定义了又未使用导致编译错误或警告
for(;;)
{
OS_ENTER_CRITICAL(); //关中断
OSdleCtr++; //空闲任务运行计数器
0S_EXIT_CRITICAL(); //开放中断
}
}
2、统计任务OSTaskStat()每秒计算一次CPU在单位时间内被使用的时间,计算结果以百分比的形式存放在变量0SCPUsage中。可以根据应用程序实际情况来选择是否使用统计任务。
如果使用统计任务:
①在系统头文件OS_CFG.H中的系统配置常数OS_TASK_STAT_EN :
#define OS_TASK_STAT_EN 1
②在程序中调用函数OSStatInit()对统计任务进行初始化
任务的优先权及优先级别
UC/OS-II按优先级抢占式规则,每个任务分配一个唯一的优先级别,优先级别高的任务先运行,优先级别低的任务后运行。优先级别最多64级,用整数数字表示,即0、1、2、3、4。。。数字越小,优先级别越高。
①在系统配置文件OS_CFG.H中定义了最低优先级别常数OS_LOWEST_PRIO:
#define OS_LOWEST_PRIO 14
那么系统中可供使用的级别为0、1、2、3、4……OS_LOWEST_PRIO,任务总数不能超过(OS_LOWEST_PRIO + 1)个(15个)。
②系统自动的将最低优先级别OS_LOWEST_PRIO赋给空闲任务,如果统计任务启