当前位置: 首页 > news >正文

UCOS-III笔记(一)

作者简介: 一个平凡而乐于分享的小比特,中南民族大学通信工程专业研究生,研究方向无线联邦学习
擅长领域:驱动开发,嵌入式软件开发,BSP开发
作者主页:一个平凡而乐于分享的小比特的个人主页
文章收录专栏:UCOS-III,本专栏为UCOS-III学习记录
欢迎大家点赞 👍 收藏 ⭐ 加关注哦!💖💖

UCOS-III笔记(一)

裸机与RTOS介绍

裸机

​ 又称为前后台系统,前台系统指的中断服务函数,后台系统指的大循环,即应用程序。

特点:

  1. 实时性差:(应用程序) 轮流执行
  2. delay:空等待,CPU不执行其他代码(浪费资源)
  3. 结构臃肿:实现功能都放在无限循环

RTOS(Real Time OS)

​ 实时操作系统,强调的是:实时性。

特点:

  1. 分而治之:实现功能划分为多个任务
  2. 延时函数:不会空等待,会让出CPU的使用权给其他任务,即任务调度
  3. 抢占式:高优先级任务抢占低优先级任务
  4. 任务堆栈:每个任务都有自己的栈空间,用于保存局部变量以及任务的上下文信息

注意:中断可以打断任意任务,任务可以同等优先级

UCOS-III

​ UCOSIII是一个可裁剪、可剥夺的多任务系统,没有任务数目的限制,是UCOS的第三代内核操作系统

特点:

  1. 稳定、可靠:UCOSIII是经过了多种安全认证加持的,包括航空、工业控制、医疗、汽车等等多领域的安全认证
  2. 资料丰富:UCOSIII官方提供了十分完善的资料,共有数十个文档资料
  3. 支持系列广:支持多种不同架构的不同型号的处理器 ,如:ST、NXP、Xilinx、Infineon… …
  4. 移植简单:C语言编写简单易用,可移植性非常好

任务调度

​ 使用相关的调度算法来决定当前需要执行的任务

UCOS-III 一共支持两种任务调度方式:

  • 抢占式调度:主要是针对优先级不同的任务,每个任务都有一个优先级,优先级高的任务可以抢占优先级低的任务。
  • 时间片调度:主要针对优先级相同的任务,当多个任务的优先级相同时, 任务调度器会根据用户所设置的时间片轮流的运行这些任务。(注意:一个时间片大小,取决为滴答定时器中断频率,每个任务都可以定义自身的时间片大小,注意任务中途被打断或阻塞,没有用完的时间片不会再使用,下次该任务得到执行还是按照设置的时间片的时钟节拍运行)

任务状态

任务5种状态:

  1. 运行态:正在执行的任务,该任务就处于运行态,注意在STM32中,同一时间仅一个任务处于运行态
  2. 就绪态:正在执行的任务,该任务就处于运行态,注意在STM32中,同一时间仅一个任务处于运行态
  3. 挂起态:如果一个任务因延时或等待外部事件发生或被挂起,那么这个任务就处于挂起态
  4. 休眠态:任务已经在CPU的内存中了(任务被删除了),但是还没有交给UCOSIII内核管理
  5. 中断态:当处于运行态的任务被中断打断,CPU跳转去执行中断服务函数时,原本属于运行态的任务会切换到中断态,直到中断结束,在切换回运行态继续运行

在这里插入图片描述

总结:

  1. 被创建的任务,初始状态均为就绪态
  2. 被删除的任务,会转为休眠态
  3. 仅就绪态和中断态可转变成运行态
  4. 其他状态的任务想运行,必须先转变成就绪态

三大类列表用来跟踪任务状:

  1. 就绪列表:准备运行的任务将放在就绪列表:OSRdyList[x],其中x代表任务优先级数值
  2. Tick列表:正在等待延时超时或挂起的对象超时的任务,将放在OSTickList
  3. 挂起列表:当任务等待信号量、事件时,任务将放置在挂起列表PendList

注意:空闲任务优先级最低,一直处于就绪态,不可阻塞

http://www.dtcms.com/a/597274.html

相关文章:

  • Unity:lua热更新(一)——AB包AssetBundle、Lua语法
  • 如何在Dev-C++中配置编译选项以支持C++11?
  • 海城区建设局网站快速百度
  • 网站怎样设计网址大全关键词排名提高方法
  • HOT100题打卡第36天——二分查找
  • 【Linux】Linux内存管理与线程控制核心解析
  • dns服务器
  • bash 启动程序的流程
  • 专题:2025中国医疗器械出海现状与趋势创新发展研究报告|附160+份报告PDF、数据、可视化模板汇总下载
  • 工程建设最好的网站石家庄建设网站哪家好
  • c#笔记之面向对象
  • wordpress 移动到回收站发生错误广告公司网络推广计划
  • 汽车乘员热舒适测评的预测模型
  • [6]. SpringAI Alibaba 向量化和向量数据库
  • java学习--包
  • 乐鑫EchoEar开发套件详解:ESP32-S3+端侧AI+全双工语音实战
  • 国外的外贸网站wordpress 页面下文章列表
  • 站长工具服务器查询常州市建设工程管理中心网站
  • 《实施意见》绘就场景应用蓝图,政务服务如何找准自身“坐标”
  • Go 优雅关闭实践指南:从原理到框架落地
  • 使用gRPC实现分片服务的心跳机制
  • 陕西建设厅执业注册中心网站重庆网站建设沛宣
  • 济南 外贸网站建设大连鼎信网站建设公司地址
  • 自动化渗透工具分类及主流工具详解(2025年最新)
  • Qt QPushButton 样式完全指南:从基础到高级实现
  • 在Unity3d中使用Netly开启TCP服务
  • 男男床做视频网站上海家装设计网站
  • 如何清空网站空间上海工程建设招投标网站
  • Docker-玩转 Docker 镜像:从拉取、构建到发布
  • 技师院校人工智能技术应用专业实训室建设方案