UCOSⅢ简介

2023-05-16

UCOSⅢ简介

  • 简述
  • 一、裸机系统与多任务系统
  • 二、UCOSⅢ的重要特性
  • 三、UCOSⅢ的组成

简述

UCOSⅢ(UCOS的第三代内核)是一个可裁剪、可固化、可剥夺的多任务系统,具有高度可移植性,没有任务数目的限制,特别适合微处理器和控制器,是和很多商业操作系统性能相当的实时操作系统(RTOS)。
随着产品要实现的功能越来越多,单纯的裸机系统以及不能完美的解决问题(响应速度、程序架构条理性等等),反而会使编程变得更加复杂,所以使用一个高效的系统是必然的。
除了UCOSⅢ,FreeRTOS操作系统也得到广泛的应用,因为其是开源免费的,非常适合用来做产品。不过,UCOSⅢ是商业化最成功、安全验证最多、资料最多的RTOS,所以学习首选UCOSⅢ。

一、裸机系统与多任务系统

先简要了解区分下裸机系统与多任务系统。

系统特点
轮询系统(裸机)先初始化好相关的硬件,然后让主程序在一个死循环里面不断循环,顺序地做各种事情。
前后台系统(裸机)前后台系统是在轮询系统地基础上加入了中断。外部事件地响应在中断里面完成,事件的处理还是回到轮询系统中完成,中断在这里称为前台,main函数里面的无限循环称为后台。
多任务系统(UCOS等)相比前后台系统,多任务系统的事件响应也是在中断中完成的,但是事件的处理是在任务中完成的。在多任务系统中,任务跟中断一样,也具有优先级,优先级高的任务会被优先执行。当一个紧急的事件在中断被标记之后,如果事件对应的任务的优先级足够高,就会立马得到响应。相比前后台系统,多任务系统的实时性又被提高了。

二、UCOSⅢ的重要特性

先简单阅读下,之后在UCOS后面的学习中再深化熟悉。

可剥夺多任务管理:总是执行当前就绪的最高优先级任务。
同优先级任务的时间片轮转调度:这个是UCOSⅢ和UCOSⅡ一个比较大的区别,UCOSⅢ允许一个任务优先级被多个任务使用,当这个任务级处于最高就绪态的时候,UCOSⅢ就会轮流调度处于这个优先级的所有任务,让每个任务运行一段由用户指定的时间长度,叫做时间片。
极短的关中断时间:UCOSⅢ可以采用锁定内核调度的方式而不是关中断的方式来保护临界代码,这样就可以将关中断的时间降到最低,使得UCOSⅢ能够非常快速的响应中断请求。
任务数目不受限制:UCOSⅢ本身是没有任务数目限制的,但是从实际应用角度考虑,任务数目会受到cpu所使用的存储空间的限制,包括代码空间和数据空间。
优先级数量不受限制:UCOSⅢ支持无限多的任务优先级。
内核对象数目不受限制:UCOSⅢ允许定义任意数目的内核对象。内核对象指任务、信号量、互斥信号量、事件标志组、消息队列、定时器和存储块等。
软件定时器:用户可以任意定义“单次”和“周期”型定时器,定时器是一个递减计数器,递减到零就会执行预先定义好的操作。每个定时器都可以指定所需操作,周期型定时器在递减到零时会执行指定操作,并自动重置计数器值。
同时等待多个内核对象:UCOSⅢ允许一个任务同时等待多个事件,也就是说,一个任务能够挂起在多个信号量或者消息队列上,当其中任何一个对待的事件发生时,等待任务就会被唤醒。
直接向任务发送信号:UCOSⅢ允许中断或任务直接给另一个任务发送信号,避免创建和使用诸如信号量和事件标志等内核对象作为向其他任务发送信号的中介,该特性有效的提高了系统性能。
直接向任务发送消息:UCOSⅢ允许中断或者任务直接给另一个任务发送消息,避免创建和使用消息队列作为中介。
任务寄存器:每个任务都可以设定若干个“任务寄存器”,任务寄存器和CPU硬件寄存器时不同的,主要用来保存各个任务的错误信息,ID识别信息,中断关闭时间的测量结果等。
任务级时钟节拍处理:UCOSⅢ的时钟节拍是通过一个专门任务完成的,定时中断仅触发该任务。将延迟处理和超时判断放在任务级代码完成,能极大的减少中断延迟时间。
防止死锁:所有UCOSⅢ的“等待”功能都提供了超时检测机制,有效的避免了死锁。
时间戳:UCOSⅢ需要一个16位或者32位的自由运行计数器(时基计数器)来实现时间测量,在系统运行时,可以通过读取该计数器来测量某一个事件的时间信息。例如,当ISR给任务发送消息时,会自动读取该计数器的数值并附在消息中,当任务读取消息时,可得到该消息携带的时标,这样,再通过读取当前的时标,并计算两个时标的差值,就可以确定传递这条消息所花费的确切时间。
UCOS两个版本的特性列表
在这里插入图片描述

三、UCOSⅢ的组成

UCOSⅢ的组成可以大致分成核心、任务处理、时间处理、任务同步与通信、CPU的移植等5个部分。
1)核心部分(OSCore.c)
是操作系统的处理核心,包括操作系统初始化、操作系统运行、中断进出的前导、时钟节拍、任务调度、事件处理等多部分。能维持系统基本工作的部分都再这里。
2)任务处理部分(OSTask.c)
任务处理部分中的内容都是与任务的操作密切相关的。包括任务的建立、删除、挂起、恢复等等。因为UCOSⅢ是以任务为基本单位调度的,所以这部分内容也相当重要。
3)时钟部分(OSTime.c)
UCOSⅢ中最小时钟单位是timetick(时钟节拍)。任务延时等操作是在这里完成的。
4)任务同步和通信部分
为事件处理部分,包括信号量、邮箱、邮箱队列、事件标志等部分;主要用于任务间的相互联系和对临界资源的访问。
5)与CPU的接口部分
是指UCOSⅢ针对所使用的CPU的移植部分。由于UCOSⅢ是一个通用性的操作系统,所以对于关键问题上的实现,还是需要根据CPU具体内容和要求作相应的移植。这部分由于牵涉到SP等系统指针,所以通常用汇编语言编写。主要包括中断级任务切换底层实现、任务级任务切换的底层实现、时钟节拍的产生和处理、中断的相关处理部分等内容。
本文参考:正点原子、野火、百度百科

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

UCOSⅢ简介 的相关文章

  • 我发现ucos里面也是任务,任务控制块,消息队列,信号量,事件 。这些概念感觉和freertos一模一样啊

    我发现ucos里面也是任务 xff0c 任务控制块 xff0c 消息队列 xff0c 信号量 xff0c 事件 这些概念感觉和freertos一模一样啊 xff0c 感觉大家就是抄来抄去 xff1f 应该这些操作系统原理都差不多 xff0c
  • ucos-ii 的任务调度原理和实现

    ucosii 任务调度和原理 1 ucos ii 任务创建与任务调度 1 1 任务的创建 当你调用 OSTaskCreate 进行任务的创建的时候 xff0c 会初始化任务的堆栈 保存cpu的寄存器 创建任务的控制块 xff08 OS TC
  • UCOS-III

    一 UCOSIII 简介 UCOSIII 是一个可裁剪 可固化 可剥夺 的多任务系统 xff0c 没有任务数目的限制 xff0c 是 UCOS 的第三代内核 xff0c UCOSIII 有以下几个重要的特性 xff1a 可剥夺多任务管理 x
  • UCOSⅢ简介

    UCOS 简介 简述一 裸机系统与多任务系统二 UCOS 的重要特性三 UCOS 的组成 简述 UCOS xff08 UCOS的第三代内核 xff09 是一个可裁剪 可固化 可剥夺的多任务系统 xff0c 具有高度可移植性 xff0c 没有
  • uCOS上下文切换,PendSV中断函数

    摘自 xff1a http www stmcu org module forum thread 384142 1 1 html 介绍一 xff1a 移植详解1和2中主要讲了移植需要用到的基础知识 xff0c 本文则对具体的移植过程进行介绍
  • 白话----之UCOS 信号量和邮箱

    总体理解 xff1a 两个任务需要共同访问一个共同的资源 xff0c 来切换或跳到不同的动作执行 这就产生信号量 两个任务 需要根据不同的按键选择 xff0c 来执行不同的动作 xff0c 产生邮箱 信号量和邮箱 我通过一个例子来学习的 希
  • 推荐ucos-II 3本参考书 经典

    在这里给大家推荐三本学习ucos的必看书籍 1 xff08 比较难买 xff09 嵌入式实时操作系统uc os II教程 西安电子科技大学出版 这本书对UCOS的源代码分析的非常清楚 比作者原著 在某种程度上要好 xff0c 这本书对关键的
  • uCOS-II任务间通信之信号量 [转载]

    uCOS II任务间通信之信号量 信号量是什么 xff1f 信号量有什么用 xff1f 信号量是可以用来表示一个或多个事件的发生 xff0c 还可以用来对共享资源的访问 uCOS II提供了5个对信号量进行操作的函数 如下所示 xff1a
  • STM32之RTOS:uCOS和FreeRTOS

    RTOS全称是 Real Time Operating System xff0c 中文就是实时操作系统 RTOS是指一类系统 xff0c 如 uC OS xff0c FreeRTOS xff0c RTX xff0c RT Thread 等
  • uCOS任务信号量相关函数代码理解

    强调任务信号量思想 xff1a 任务信号量只是一个标志 xff0c 获取成功就是指把信号量计数值减1 xff1b 释放就是指把信号量计数值加1 xff08 溢出则计数值不变 xff09 获取信号量需要判断信号量是否可用 xff08 大于0
  • 操作系统学习笔记1--ucos

    实时操作系统 xff08 Real Time Operating System xff0c 简称RTOS xff09 一般裸机为前后台系统模式 xff0c while 1 大循环为后台 xff0c 中断为前台 RTOS操作系统比前后台系统实
  • Huawei LiteOS与freeRTOS、Ucos主流嵌入式操作内核的区别

    LiteOS与freeRTOS Ucos主流嵌入式操作内核的区别 云社区 华为云
  • ucos iii 任务栈使用率统计方法

    第一步 使能任务统计功能 修改文件 os cfg h中的 OS CFG STAT TASK STK CHK EN宏 span class token comment TASK MANAGEMENT span span class token
  • UCOS学习(三)——任务管理基础

    大家好哇 xff01 我是小光 xff0c 嵌入式爱好者 xff0c 一个想要成为系统架构师的大二学生 最近开始学习UCOS操作系统 xff0c 后面会更新一些关于UCOS学习笔记 今天学习了任务管理基础知识 感谢你的阅读 xff0c 不对
  • UCOS学习(七)——信号量详解

    信号量 信号量简介信号量保护共享资源举个栗子 xff1a 如果不使用信号量信号量解决公共资源问题创建信号量 xff1a 信号量实现任务同步总结 信号量简介 信号量像是一种上锁机制 xff0c 代码必须获得对应的钥匙才能继续执行 xff0c
  • 【STM32】入门(十一):初识uCOS-III

    STM32 STM32单片机总目录 1 轮询 中断 多任务对比 2 什么是任务 如果您学过linux xff0c 那么任务可以理解为线程 在代码中的体现就是线程函数 xff0c 一个函数中有个无限循环函数 xff0c 并且永不返回 例如 x
  • ucos源码分析(一)

    时间 2018 01 27 本人目前是大三学生 电子信息工程专业 xff0c 在大学前俩年的时间 xff0c 一直在使用和学习单片机 xff0c 不过也仅仅是从 xff15 xff11 到 xff13 xff12 xff0c 马上要面临就业
  • UCOS2的文件目录

    想着闲着也是闲着 把之前学习ucos2源码的笔记整理一下 复盘一次 总结内容将其写为博客作为学习的输出 一 为什么要学RTOS或者IOTOS 我在大一时 开始进入实验室接触单片机 摸爬滚打的参加了几次比赛 也因此入了嵌入式的坑 大三时开始思
  • ucos-ii嵌入式操作系统任务调度(一)----任务调度的过程及实现原理

    先给自己打个广告 本人的微信公众号正式上线了 搜索 张笑生的地盘 主要关注嵌入式软件开发 股票基金定投 足球等等 希望大家多多关注 有问题可以直接留言给我 一定尽心尽力回答大家的问题 二维码如下 一 概念 在单片机裸机程序中 我们以函数为最
  • Micriμm μC/OS-III RTOS 中的分配和释放

    我们使用 Micrium 的 C OS III RTOS 和 Renesas 的 RX62N 我们构建了一个必须动态分配和释放数据的系统 我们发现了功能malloc and free 与 RTOS 配合得不好 然而 RTOS 为此提供了一个

随机推荐

  • Linux上屏幕录制录像软件大比较

    作为一个linux中度爱好者 xff0c 我们来比较一下linux平台上有哪些录屏软件 xff0c 以及他们的特点 xff0c 优缺点 本次选取了以下屏幕录制软件 xff1a SimpleScreenRecorder xff1a 这是一款易
  • tensorflow利用inception_v3训练自己的模型并识别

    利用Google已经训练好的inception v3模型 xff0c 修改最后一层 xff0c 训练我们自己的模型 在学习inception v3的过程中找了很多资料 xff0c 我把这些资料有用的地方进行了总结 1 训练 lt 下载ret
  • ROS系列(二):ROS快速体验,以HelloWorld程序为例

    我们以实现HelloWorld程序为例 xff0c 简单介绍ROS的使用方法 xff0c 大致流程如下 xff1a 创建工作空间并初始化 xff1b 创建功能包 xff1b 编辑源文件 xff1b 编辑配置文件 xff1b 编译并执行 1
  • Gazebo下借助ORB_SLAM2进行自定义相机参数的双目视觉仿真

    首先 xff0c 在Gazebo下建立自定义的相机模型 xff0c 这里借助了ORB SLAM2开源项目完成 一开始听说该项目原生支持双目视觉 xff08 Stereo Camera xff09 xff0c 这里看了许多BLOG和文档参考
  • .pkl文件打开函数

    pkl文件打开函数 def load pickle pickle file try with open pickle file 39 rb 39 as f pickle data 61 pickle load f except Unicod
  • FreeRTOS任务创建过程详解(全网最细)

    一 任务创建函数分析 FreeRTOS的任务创建由函数xTaskCreate 完成 函数源码如下 xff1a BaseType t span class token function xTaskCreate span span class
  • vncserver 开机自启动,免敲v…

    需求是我要用Windows下的VNC Viewer连接到Linux Server 我在Linux下面输入 vncserver 设置好密码 xff0c 好现在我就可以在Windows下面使用VNC连接到Linux桌面了 xff0c 这个时候如
  • FreeRTOS消息队列详解第一讲(全网最全)——消息队列概述

    一 队列简介 队列是为了任务与任务 任务与中断之间的通信而准备的 xff0c 可以在任务与任务 任务与中断之间传递消息 xff0c 队列中可以存储有限的 大小固定的数据项目 任务与任务 任务与中断之间要交流的数据保存在队列中 xff0c 叫
  • FreeRTOS消息队列详解第三讲(全网最全)——队列发送消息

    一 队列发送消息函数简介 创建好队列以后就可以向队列发送消息了 xff0c FreeRTOS提供了8个向队列发送消息的API函数 如下表所示 xff1a 1 函数xQueueSend xQueueSendToBack 和xQueueSend
  • FreeRTOS信号量详解第二讲(全网最全)——二值信号量

    一 二值信号量简介 二值信号量通常用于互斥访问或同步 xff0c 二值信号量和互斥信号量非常类似 xff0c 但是还是有一些细微的差别 xff0c 互斥信号量拥有优先级继承机制 xff0c 二值信号量没有优先级继承 因此二值信号另更适合用于
  • FreeRTOS——优先级翻转

    一 优先级翻转 在使用二值信号量的时候会遇到很常见的一个问题 优先级翻转 xff0c 优先级翻转在可剥夺内核中是非常常见的 xff0c 在实时系统中不允许出现这种现象 xff0c 这样会破坏任务的预期顺序 xff0c 可能会导致严重的后果
  • FreeRTOS信号量详解第四讲(全网最全)——互斥信号量

    一 互斥信号量简介 互斥信号量其实就是一个拥有优先级继承的二值信号量 xff0c 在同步的应用中 xff08 任务与任务或中断与任务之间的同步 xff09 二值信号量最适合 互斥信号量适合用于那些需要互斥访问的应用中 在互斥访问中互斥信号量
  • Altium designer AD原理图导入word文档、pdf,生成矢量图的方法;

    文章目录 参数选择 schematic 取消GDI 43 渲染文本 43 gt 减少渲染然后在复制到VISIO里面 xff0c 取消组合 gt 变成矢量图将矢量图粘贴在word 中或者再生成pdf 就不会糊了 参数选择 schematic
  • ROS2的基础概念

    前言 记录ROS2学习的各项核心概念 xff0c 便于后续复习 一 工作空间workshop 1 什么是工作空间 在ROS机器人开发中 xff0c 工作空间是一个存放项目开发相关文件的文件夹 xff0c 各种编写的代码 参数 脚本等文件 x
  • ubuntu多个系统之间文件局域网共享

    前言 xff1a 博主需要在多台主机上进行数据传输 xff0c 由于数据量比较大所以 xff0c 使用移动介质进行传输极为不方便 xff0c 并且也不没有更多的资源在两台主机都进行备份 下面的方式 xff0c 是博主在测试大量的网络上的帖子
  • idea如何清理缓存

    今天运行项目突然报错 检查半天 发现代码没问题 但就是报错 好气啊 最后解决办法就是把以前的缓存清理掉 问题解决 idea清理缓存的方法 File gt Invalidate Caches Restart
  • VNC登录失败:Authentication Failure

    遇到问题 xff1a 解决 xff1a 返回MobaXter xff0c 登录服务器 重置密码 回到VNC Viwer xff0c 重新连接
  • Haar特征

    一 Haar特征 特征是计算机视觉领域一种常用的特征描述算子 xff0c 特征 xff0c 描述图像的特征 xff0c 多用于人脸检测 行人检测 xff0c 等目标检测 xff0c Haar like特征模板内只有白色和黑色两种矩形 xff
  • 在线免费生成IntelliJ IDEA 15.0注册码

    http idea iteblog com key PHP
  • UCOSⅢ简介

    UCOS 简介 简述一 裸机系统与多任务系统二 UCOS 的重要特性三 UCOS 的组成 简述 UCOS xff08 UCOS的第三代内核 xff09 是一个可裁剪 可固化 可剥夺的多任务系统 xff0c 具有高度可移植性 xff0c 没有