一.USCOS认识:
多任务:就是在某一个工作空闲的时候去执行另一个工作,充分利用时间
单核:意味着同一时间只有一个程序使用CPU
uc/os-ii:一个嵌入式多任务实时操作系统。
uc/oc-II中的任务:在设计复杂任务的时候通常会吧大任务分解成多个小任务,UC/OC-II中的任务就对应这个小任务,
ucos就是对这些小任务进行管理和调度的任务操作系统。
ucos的任务组成:任务程序代码(函数)、任务堆栈和任务控制块。当中任务控制块就是关联了任务代码的程序控制块,记录了任务的各个属性;任务堆栈则用来保护工作环境,代码就是执行部分。
感觉任务控制块就是指向需要运行小任务的开始地址(相当与指针,PC的值),堆栈就是联系他们的。具有私有控件的任务叫做进程,没有私有私有的任务叫做线程。UCOS所有任务都是线程。系统就是通过控制块来找到相关代码信息
ucos任务包括用户和系统任务。应用程序设计者编写的任务叫用户任务,由系统提供的任务叫系统任务。UCOS中最多能有64个。
二.UCOS中的任务
任务状态:
1.睡眠状态:代码留在RON/RAM还没交给系统,就是没有被配备任务控制块。
2.就绪状态:为任务配备任务控制块,且在任务就绪表中进行登记。
3.运行状态:就绪状态的任务获得了CPU控制权,任何时刻只有一个任务处于运行状态。
3.等待状态:正在运行的任务需要等待一段时间再运行(delay)把CPU控制权交给其他任务。
4.中断服务状态:响应了中断而去执行中断的任务。
用户:
用户任务就是C函数,但并不是由main调用而是跟main处于平等地位,它们何时被运行以及终止都由系统调度。(跟其他多线程差不多)。
系统:
ucos预定义了两个系统任务:空闲:每个应用程序必须使用,统计:则是应用程序根据实际需要来选择使用。
空闲任务:
为了使系统在某个时间内有事可做而定义的OSTaskIdle();只是对系统定义的这个空闲任务运行次数计数器加一操作,而pdata = pdata ;是为了防止编译器报错
统计任务:
该任务每秒计算一次CPU在单位时间内被使用的时间,并以百分比形式存在变量OSCPUsage中,以便其他程序了解CPU利用率。是否使用统计任务用户可以根据应用程序的实际需求来选择,决定要使用,则需要设置相关配置,os_cfg.h中OS_TASH_STAT_EN设置为1并在程序中调用OSStatlInit对统计任务进行初始化。