UCOSIII概述

2023-05-16

又给自己挖了一个小坑,今天开始学习UCOS,本篇文章只是作为学习笔记,并不是什么教程。

文章目录

  • 序言
  • 源码概览
    • 配置文件
    • UCOSIII与移植相关代码文件
    • UCOS与CPU相关代码文件
    • UCOSIII库文件
    • UCOSIII核心代码文件
  • UCOSIII实现了哪些功能
    • 回顾一下《现代操作系统》
    • UCOSIII中的系统调用
      • 进程管理相关
      • 内存管理相关
      • 杂项调用

序言

在开始这篇文章之前,我已经调查UCOS好几天了,也尝试了几种学习方法,大概浏览了好几本书,我先来说说到现在为止的学习感受吧。
一开始我是跟着正点原子的教学视频边看边做,但是越看越难受,感觉自己什么也不知道,就好像一个没有任何思想的机器一样,视频让怎么做,就怎么做,而且视频里面讲得着实有点枯燥。后来我就转而去找一些源码级别的书看,有野火编写的《UCOS源码分析笔记》和《uCOS-III内核实现与应用开发实战指南—基于STM32》以及吴伟国编写的《UCOSIII内核分析与应用开发》,吴教授的书和我的思维习惯比较相适应,自顶向下,先向我们介绍UCOSIII的文件架构,功能架构,常用数据结构,然后逐个章节进行源码讲解。
经过几天的摸索,我打算先掌握整体文件架构,从功能着眼,掌握UCOS中的一些概念与API以达到熟练应用UCOS的基本目的,然后再借助相关书籍与手册逐步分析系统内核以达到理解RTOS设计理念与实现技术的终极目标。

源码概览

UCOSIII的源码主要分为五个部分,至于这五个部分是怎么发挥作用的,我们后面会一点点学习,暂时只要知道一点:和UCOSIII相关的所有东西都在这里了。

配置文件

在这里插入图片描述

UCOSIII与移植相关代码文件

在这里插入图片描述

UCOS与CPU相关代码文件

在这里插入图片描述

UCOSIII库文件

在这里插入图片描述

UCOSIII核心代码文件

在这里插入图片描述

UCOSIII实现了哪些功能

如何学习一种技术,方法就是夯实基础理论,以一种俯视的态度去看这些书籍,以一种挑错的心态去看。下面进入正题:UCOSIII有哪些功能。

回顾一下《现代操作系统》

什么是操作系统?
为应用程序员(实际上是应用程序)提供一个资源集的清晰抽象,并管理这些资源集,而不仅仅是一堆硬件。
四个核心概念
进程、地址空间、文件、输入输出。
四个目标
进程管理、内存管理、文件管理、I/O管理。
系统调用
操作系统提供给应用程序员的API。
操作系统共性
任何操作系统的核心是它可处理的系统调用集。这些系统调用集真实地说明了操作系统所做的工作。对于UNIX,我们考察了四组系统调用。第一组系统调用同进程的创建和终结有关;第二组用于读写文件;第三组用于目录管理;第四组用于各种杂项调用

UCOSIII中的系统调用

进程管理相关

  • 任务创建
  • 任务删除
  • 任务挂起
  • 任务调度
  • 任务同步
  • 任务间通信

内存管理相关

  • 创建内存分区
  • 得到内存块
  • 释放内存块
  • 初始化内存分区管理模块

杂项调用

  • 时间管理
  • 错误检测
  • 性能测量

在后面我将会记录UCOSIII的每一个系统调用

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

UCOSIII概述 的相关文章

  • uORB发布订阅实例

    PX4SITL仿真 uORB实例 飞控串口读取外部传感器数据 xff1a 飞控开启一个进程读取外部传感器数据 xff0c 发布一个uORB主题 xff1b 另一个进程订阅前一个进程发布的主题 xff0c 订阅到的主题通过mavlink消息发
  • PX4仿真环境搭建

    PX4 SITL Simulation 前提准备 xff1a Ubuntu16 04 LTS 安装ROS kinetic 题外话 xff1a 如果连的是有IPV6的校园网 xff0c 在update时可能会访问IPV6地址出错 xff0c
  • PX4-Gazebo仿真学习笔记

    PX4 Gazebo仿真 xff1a http bbs amovauto com forum php mod 61 viewthread amp tid 61 486 amp extra 61 page 3D1 Simulator仿真器 x
  • C语言strtok函数

    1 strtok 语法 include lt string h gt char strtok char str const char delimiters 参数 xff1a str xff0c 待分割的字符串 xff08 c string
  • 终于把大数据类产品全流程解释清楚了

    你点开这文章 xff0c 说明你清晰知道了数据才是一切的基础 人工智能 机器学习 大数据等应用的基础都是基于这样的一个流程 xff0c 只是说运用领域不同 xff0c 那么偏重点不同 本文从数据采集到数据报告 xff0c 详细说明了大数据运
  • 关于slam

    什么是SLAM 机器人在未知环境中 xff0c 要实现智能化需要完成三个任务 xff0c 第一个是定位 Localization xff0c 第二个是建图 Mapping xff0c 第三个则是随后的路径规划 Navigation 之前地平
  • Linux(Ubuntu系统)同网段SSH连接不上,网络能ping通

    问题描述 测试以下命令同样连接不上 span class token function ssh span localhost 问题原因 Ubuntu系统自带 openssh client xff0c 但是没有自带 openssh serve

随机推荐

  • 本地进程间通信(二)--套接字socket

    目录 一 什么是Socket xff1f 二 socket通信流程 Server端 一 创建socket 二 命名socket 三 绑定 四 监听 五 关闭 Client端 一 创建socket 二 connect 三 发送数据 四 关闭s
  • debain服务器搭建之虚拟机安装(一)

    debain服务器虚拟机搭建系列 xff08 一 xff09 xff08 一 xff09 下载debain系统 xff08 二 xff09 搜索下载安装 vmware xff08 三 xff09 开始安装debain系统 xff08 四 x
  • 企业私有云技术设计方案

    1 概述 1 1 文档内容 本文档为某企业私有云技术路线设计文档 1 2 背景描述 1 2 1 某企业私有云业务线规划 近些年由于国内IDC市场发展迅速 xff0c 某企业从战略层面考虑 xff0c 建造了自己的高等级数据中心 xff0c
  • Qt的主窗口背景设置

    主界面设置背景一般有设置背景图片和背景颜色的需求 xff0c 其实二者之间设置方法类似 目录 主界面设置背景一般有设置背景图片和背景颜色的需求 xff0c 其实二者之间设置方法类似 方法一 xff1a 最简单的方式是通过ui界面来设置 xf
  • 7.使用码云

    使用GitHub时 xff0c 国内的用户经常遇到的问题是访问速度太慢 xff0c 有时候还会出现无法连接的情况 xff08 原因你懂的 xff09 如果我们希望体验Git飞一般的速度 xff0c 可以使用国内的Git托管服务 码云 xff
  • git diff命令之后,如何退出

    git diff命令是对比两次文件修改了什么 但如何退出呢 xff1f 输入q 按enter键盘
  • Float类型出现舍入误差的原因

    首先是float累加产生误差的原因 xff0c 该部分转自 xff1a http blog csdn net zhrh0096 article details 38589067 1 浮点数IEEE 754表示方法 要搞清楚float累加为什
  • React之antd Form回显数据

    转自 xff1a https blog csdn net welkin qing article details 110004969 文章目录 一 antd4如何回显数据 1 定义变量2 保存接口数据到form变量中3 form显示数据4
  • equals()方法和hashCode()方法

    1 hashCode 简介 该方法主要是利用一定的规则生成对象的哈希码 xff0c 也称散列码 它是是由对象导出的一个整数值 xff0c 是没有规律的 关于hashCode 使用的哈希算法 xff0c 越糟糕的哈希算法越容易产生哈希碰撞 产
  • 手把手教你基于STM32的BootLoader的OTA远程升级

    本文系21ic论坛蓝V作者小叶三千原创撰写 上次发过SD卡的Bootloader离线升级后 xff0c 应大家的要求 xff0c 这次就讲一下STM32的OTA远程升级 OTA又叫空中下载技术 xff0c 是通过移动通信的空中接口实现对移动
  • 转知乎,感觉非常棒,适合普通人c++学习路线图

    作者 xff1a 刘凯新 链接 xff1a https www zhihu com question 23447320 answer 39322848 来源 xff1a 知乎 著作权归作者所有 商业转载请联系作者获得授权 xff0c 非商业
  • InfluxDB和IotDB介绍与性能对比

    InfluxDB简介 InfluxDB 是用Go语言编写的一个开源分布式时序 事件和指标数据库 xff0c 无需外部依赖 用于存储和分析时间序列数据的开源数据库 适合存储设备性能 日志 物联网传感器等带时间戳的数据 其设计目标是实现分布式和
  • CVSNT SERVER Configuration

    title CVSNT SERVER Configuration 64 author H819 64 version 0 5 Copyright free reference note author name and the article
  • JavaScript高级使用(对象、BOM、封装)

    JavaScript高级 今天给大家介绍以下几个内容 xff1a JavaScript 面向对象JavaScript 内置对象JavaScript BOMJavaScript 封装 JavaScript面向对象 其实JavaScript中的
  • Python函数(函数定义、函数调用)用法详解

    Python 中 xff0c 函数的应用非常广泛 xff0c 前面章节中我们已经接触过多个函数 xff0c 比如 input print range len 函数等等 xff0c 这些都是 Python 的内置函数 xff0c 可以直接使用
  • zsh配置

    原本用WindTerm 43 bash xff0c WindTerm提供了高亮 自动记忆补全等功能 xff0c 基本上也够用 WindTerm还是比较早期阶段 xff0c 功能细节上还有待完善 xff0c 稳定性方面也有些小问题 比如用vi
  • Android CHRE (Context Hub Runtime Environment)简介

    当前的ARM处理的多个核心 xff0c Android系统运行在速度最快的大核上 xff0c 通常叫AP xff08 Application Processor xff09 AP主要为性能 体验优化 xff0c 相对来说能耗高 处理器中还有
  • Docker pull 命令

    Docker pull 命令 Docker 命令大全 docker pull 从镜像仓库中拉取或者更新指定镜像 语法 docker pull OPTIONS NAME TAG 64 DIGEST OPTIONS说明 xff1a a 拉取所有
  • strrchr函数的实现

    lt span style 61 34 font size 18px 34 gt include lt stdio h gt include lt string h gt char strrchr char const s1 int ch
  • UCOSIII概述

    又给自己挖了一个小坑 xff0c 今天开始学习UCOS xff0c 本篇文章只是作为学习笔记 xff0c 并不是什么教程 文章目录 序言源码概览配置文件UCOSIII与移植相关代码文件UCOS与CPU相关代码文件UCOSIII库文件UCOS