ucos学习笔记1

本文详细介绍了嵌入式实时操作系统UCOS,特别是其任务管理机制,包括任务状态、任务类型、任务控制块、任务切换、堆栈管理和调度原理。重点讨论了任务的创建、挂起与恢复,以及任务优先级和任务控制块链表的使用。

一.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对统计任务进行初始化。

任务优先权和优先级:</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值