热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

UCOSIII概述

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

又给自己挖了一个小坑,今天开始学习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的每一个系统调用


推荐阅读
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • 本文详细介绍了云服务器API接口的概念和作用,以及如何使用API接口管理云上资源和开发应用程序。通过创建实例API、调整实例配置API、关闭实例API和退还实例API等功能,可以实现云服务器的创建、配置修改和销毁等操作。对于想要学习云服务器API接口的人来说,本文提供了详细的入门指南和使用方法。如果想进一步了解相关知识或阅读更多相关文章,请关注编程笔记行业资讯频道。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 基于事件驱动的并发编程及其消息通信机制的同步与异步、阻塞与非阻塞、IO模型的分类
    本文介绍了基于事件驱动的并发编程中的消息通信机制,包括同步和异步的概念及其区别,阻塞和非阻塞的状态,以及IO模型的分类。同步阻塞IO、同步非阻塞IO、异步阻塞IO和异步非阻塞IO等不同的IO模型被详细解释。这些概念和模型对于理解并发编程中的消息通信和IO操作具有重要意义。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • flowable工作流 流程变量_信也科技工作流平台的技术实践
    1背景随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:目前OA流程引擎无法满足企业特定业务流程需求,且移动端体 ... [详细]
  • C++字符字符串处理及字符集编码方案
    本文介绍了C++中字符字符串处理的问题,并详细解释了字符集编码方案,包括UNICODE、Windows apps采用的UTF-16编码、ASCII、SBCS和DBCS编码方案。同时说明了ANSI C标准和Windows中的字符/字符串数据类型实现。文章还提到了在编译时需要定义UNICODE宏以支持unicode编码,否则将使用windows code page编译。最后,给出了相关的头文件和数据类型定义。 ... [详细]
  • Google Play推出全新的应用内评价API,帮助开发者获取更多优质用户反馈。用户每天在Google Play上发表数百万条评论,这有助于开发者了解用户喜好和改进需求。开发者可以选择在适当的时间请求用户撰写评论,以获得全面而有用的反馈。全新应用内评价功能让用户无需返回应用详情页面即可发表评论,提升用户体验。 ... [详细]
  • 有没有一种方法可以在不继承UIAlertController的子类或不涉及UIAlertActions的情况下 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • 本文介绍了2020年计算机二级MSOffice的选择习题及答案,详细解析了操作系统的五大功能模块,包括处理器管理、作业管理、存储器管理、设备管理和文件管理。同时,还解答了算法的有穷性的含义。 ... [详细]
author-avatar
丶敷衍怎么演彡_175
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有