如何快速入门RTOS

2023-05-16

摘要

本文结合自己学习RTOS的经历,来谈谈如何快速入门一款RTOS,希望能够给初学者以启发,找到适合自己的学习思路和方法。

我的学习经历

ucos学习

  • 我是在上学期间接触到了RTOS,当时学习的是ucos-II。首次接触RTOS,许多概念都是全新的,找了两本书就开始学习了。《嵌入式操作系统uCOS-II(第二版)》(邵贝贝译著)、《嵌入式实时操作系统μCOS-II原理及应用》(任哲编著)。

  • 说实话,对于初学者来说,《嵌入式实时操作系统μCOS-II原理及应用》这本书更合适一些,门槛低一些。《嵌入式操作系统uCOS-II(第二版)》这本书涉及到内容太多而且繁杂,不利于初学者学习。

  • 经历缓慢而痛苦的学习后,终于把这两本书各啃了两遍,对uCOS涉及到的理论知识进行了系统的学习,算是入门了。

FreeRTOS学习

  • 工作后,由于项目用的是FreeRTOS,便开始学习FreeRTOS。当时,它的中文资料很少。我在官网上下载了一些官方文档(全是英文),利用上下班坐车的时候,将官方指导手册读了一遍,熟悉了FreeRTOS提供的资源和API的用法。

  • 接着就是在实际项目中应用。经历过一个项目之后,基本上能够熟练使用FreeRTOS完成需求的功能了。

RT-Thread学习

  • 机缘巧合接触到了RT-Thread。这是一款国产的RTOS,现在发展势头很猛。当时,有幸参加了官方组织的RT_thread内核视频培训,以及网络实战训练营。同时,将官方文档《RT-THread编程指南》刷了一遍。经过理论+实践的学习方式,很快便掌握了RT-Thread内核编程。

  • 后来将内核源码研究了一遍,弄懂了其设计思想和实现方法。不得不说,代码写的非常棒。基于此,较深入地理解了RTOS内核工作原理。功力又上升了一个层次。

  • 同年,官方组织提前阅读评审书籍《嵌入式实时操作系统:RT-Thread设计与实现》,参与了评审并提供了一些修改建议,此过程相当于重新系统地学习了一下RT-Thread。

  • 通过对RT-Thread的学习,对RTOS的原理有了较深入的理解。自认为把RTOS相关的基础知识夯实了。在看其他RTOS,很快便能上手应用。其他RTOS的实现大同小异,只是具体的设计思想和实现有差别。

我的学习方法

  • 看资料。多看官方发布的资料,因为只有官方才能真正明白系统的设计思路和使用方法。官方的资料更能简单明了地介绍RTOS,以及快速指导使用者用到自己的项目中去。

  • 做笔记。看资料的同时,要做学习笔记。我当时学习RTOS的时候,新的概念记不住,我就用笔抄一遍。关键的知识

  • 动手练习。一定要动手练习,只有经过亲自实践之后才能真正掌握。否则,只是纸上谈兵,时间长了,便会忘记。

  • 多回顾。 动手练习的同时要回顾学过的理论知识。古人有云:“温故而知新”。只有理论加实践,才能快速掌握一项新的知识。

需要具备的基础

  • 具备C语言的基础知识,能够自己编写简单的程序代码。

  • 学习过MCU裸机编程,最好了解中断、常用外设接口等知识

选择一款RTOS

目前比较有名的几款RTOS有以下几种,根据需要选择一款适合自己的进行学习。

  • ucos 资料丰富,但是代码结构复杂。

  • FreeRTOS 轻量级的RTOS,市场占用率比较高。

  • RT-Thread 国产RTOS,中文资料丰富,代码优美。

  • LiteOS 华为出品,定位物联网操作系统。

准备学习资料

获取系统源码

上官方网站下载即可,官方网站均提供下载支持。

文档资料

官方会提供指导学习手册或者使用指南。建议以官方资料为主,如果资料为英文的,可以去网上找大佬总结的学习资料或者翻译过来的中文资料。

熟悉RTOS的基础内容

对于初学者,在学习过程中会涉及很多全新的概念。若一时理解不了,不要灰心,先放一放。随着学习的深入,自然会慢慢理解。RTOS会涉及到基础内容如下

  • 任务(有的系统叫线程)

  • 任务调度

  • 任务优先级

  • 信号量(包括计数信号量、二值信号量、互斥信号量)

  • 事件标志组

  • 消息队列

  • 内存管理

  • 内核时钟周期

  • 优先级反转

  • 空闲任务

  • 临界区

关注公众号【一起学嵌入式】,让我们一起学习,一起成长。

公众号回复 ucos  获取ucos学习资源。 回复 FreeRTOS 获取FreeRTOS学习资源 

 

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

如何快速入门RTOS 的相关文章

  • offboard里的期望姿态

    消息体头文件 xff1a mavros msgs AttitudeTarget h 里面的内容 xff1a span class token macro property Message for SET ATTITUDE TARGET sp
  • shell脚本自学笔记

    一 什么是Shell脚本 shell脚本并不能作为正式的编程语言 xff0c 因为它是在linux的shell中运行的 xff0c 所以称为shell脚本 事实上 xff0c shell脚本就是一些命令的集合 假如完成某个需求需要一口气输入
  • matlab2020安装

    前言 xff1a 这里之所以要安装最新的2020版本 xff0c 是因为matlab中的硬件支持工具是随着版本变化而变化的 xff0c 所以要升级matlab版本 MATLAB R2020a v9 8 0 最新中文版 64位 百度网盘链接后
  • px4的电调校准

    我们之前校准电调的步骤为 xff1a 第一 xff0c 先打开遥控器 xff0c 油门推到最大 第二 xff0c 给飞控供电 xff0c 此时电调会捕捉到油门最大量程 第三 xff0c 保持遥控不变 xff0c 飞控断电 xff0c 然后再
  • px4源码备份

    这几天在用1 8 0版本的源码时发现了玄学的事情 xff0c 在终端下完美运行和仿真 xff0c 但是拿到simulink下运行仿真就会出现飞机一进去就乱飞 xff0c 并且你关了simulink之后再回终端 xff0c 发现原本在终端下可
  • 数据结构有关树的知识总结(一)

    前段时间准备考研 xff0c 对数据结构做了一个简略的知识点总结 xff0c 知识针对考研所用到的数据结构 xff0c 下面是树的章节由于篇幅太多 xff0c 将有关树的知识点分开发表 xff0c 对B树和B 43 树没有深入了解 xff0
  • simulink中的state place模块的使用

    我们知道 xff0c state place模块输入的为u xff0c 输出的y xff0c 并且我们需要在模块参数中设置ABCD以及初始状态x的值 xff08 初始状态x的值一般为0 xff09 xff1a 但我们经常使用状态空间不太在意
  • 反馈线性化

    这里转载一篇介绍反馈线性化很好的文章 xff1a https max book118 com html 2018 1014 8135037141001126 shtm
  • simulink中使用memory模块实现变量的累加和

    在离散系统中 xff0c 我们经常会遇到需要存储上一时刻的变量 比如y xff08 k 1 xff09 xff0c 然后用在当前时刻的运算里 xff0c 这个时候我们就需要一个模块能够存储上一时刻的y xff08 k 1 xff09 xff
  • 关于使用gazebo启动很慢、很卡、很热的解决办法

    1 参照之前的博客进行离线下载模型 2 不要将系统装在移动硬盘上 3 断网 xff0c 因为联网的话他会一直搜索网上资源 xff0c 虽然此是可能会提示 xff1a Couldn span class token string 39 t f
  • sci中的插图操作和说明(超详细)

    http www 360doc com content 17 1219 23 50538487 714649321 shtml
  • latex中某一页出现图片与上下文间距过大,利用\vspace等强制修改间距的命令依然无法解决的问题

    问题描述 xff1a 当我利用下面的命令进行插入图片时 xff1a begin span class token punctuation span figure span class token punctuation span span
  • 魅族18解bl锁+刷boot+刷面具+刷lsp+刷hmspush教程

    一 解锁教程 这里就不多说了 xff0c 直接看教程 xff1a https www coolapk com feed 38216557 shareKey 61 MjUxODI2OGMzNGRlNjM1ZTQxYWY amp shareUi
  • 关于px4中uorb以及px4_simple_app的终极理解

    先允许我卖个萌 xff1a 看了一下午关于px4中的uorb的分析 xff0c 终于有所感悟了 信息量有点大 xff0c 先让我缓缓 xff0c 理理思绪 先说说我之前的疑惑吧 xff1a 疑惑1 在一开始学习px4的时候 xff0c 就在
  • 关于无人机升力的产生

    前言 xff1a 之前学过飞控 xff0c 但是现在回顾了一下发现最基本分析升力的产生的原因都忘了 xff0c 于是记录下来 先问一个问题 xff1a 到底是上表面的路程长还是下表面的路程长 xff1f 之前一直记错了以为是上表面的路径长
  • stm32之定时器运用———呼吸灯

    呼吸灯原理 1 在模拟电路中 xff0c 呼吸灯的实现可以通过一个呈现正弦的电压控制 xff0c 这个电压是连续变化的 xff0c 所以肉眼看上去就是逐渐变暗 xff0c 逐渐变亮 2 而在数字电路中如何实现这种效果呢 xff1f 就需要通
  • 数据结构有关树的知识总结(二)

    这一篇文章主要介绍三个知识点 xff1a 哈夫曼树 堆排序以及最佳归并树和败者树 xff08 四 xff09 哈夫曼树 1 构造哈夫曼树 xff1a 哈夫曼树的特点 xff1a 权值越大 xff0c 离根节点越近 xff1b 树中没有度为1
  • 关于磁力计的新的理解

    前言 xff1a 我发现真的是验证了一句话 xff0c 每次重看一遍书 xff0c 都能发现新的东西 xff0c 我发现看程序也是这样 xff0c 没重看一边都会发现新的东西 不想打字了 xff0c 就直接贴我的ppt
  • px4源码学习(local position estimator)

    前言 xff1a 之前学习的是px4源码中的attitude estimator q xff0c 可以说是学习的相当仔细和深入 于是借着这股劲继续学习位置估计中的local position estimator 另外需要说明的是 xff0c
  • px4在环仿真实践操作

    前言 xff1a 在这之前先确保你已经配置好了jMAVSim 一 在环仿真 有两种 xff0c 一种是软件在环仿真SITL xff0c 还有一种是硬件在环仿真HITL 先介绍HITL 二 软件在环仿真 步骤 xff1a 1 打开终端 xff

随机推荐

  • 关于px4源码中固定翼姿态控制

    在看完px4固定翼的姿态控制代码后 xff0c 我有几点思考 1 我们知道程序中姿态控制的方法是将控制角度转化为控制角速度 那pitch来说 xff0c 先求出设定的pitch和当前的pitch的差值 xff08 delta pitch x
  • 关于垂直起降固定翼VTOL

    参考网址 xff1a https www ncnynl com archives 201709 2068 html 截图 xff1a 尾座式演示视频 xff1a http 7xw24i com1 z0 glb clouddn com PX4
  • 相关的飞控官网网址

    3DR官网 xff1a http 3drobotics com 这个网站简单来说就是3dr卖飞控的官方旗舰店 xff0c 我还以为开发者的一些东西也在上面 xff0c xff0c 好浪费感情 apm飞控的官网 xff1a http copt
  • c++中数组作为参数传入函数

    前言 xff1a 最近再看一个用c 43 43 写数组求逆矩阵的程序 xff0c 那是相当的繁琐 xff0c 但是很有趣 其中涉及了大量的数组运算 xff0c 所以数组作为参数传入函数很重要 xff0c 这里记录一下 一维数组作为参数 1
  • px4如何读取串口信息

    前言 xff1a 网上有一大堆 xff0c 比如minicom xff0c mavproxy等等 xff0c 其实qgc就自带nutshell工具 在下面输入help就可以看到所有命令 xff01 xff01 xff01
  • 浅析人脸检测之Haar分类器方法:Haar特征、积分图、 AdaBoost 、级联

    浅析人脸检测之Haar 分类器方法 一 Haar 分类器的前世今生 人脸检测属于计算机视觉的范畴 xff0c 早期人们的主要研究方向是人脸识别 xff0c 即根据人脸来识别人物的身份 xff0c 后来在复杂背景下的人脸检测需求越来越大 xf
  • Windows 10 64bit系统下,使用pip安装Pygame、Matplotlib的过程和一些问题的解决

    最近在学习python xff0c 开始做第一个项目 xff1a 数据可视化 xff0c 在做项目之前 xff0c 需要安装一些软件 xff0c 本文记录安装项目所需的软件过程以及遇到的一些问题 一 安装Pygame 使用pip安装pyth
  • 目标检测的图像特征提取之(三)Haar特征

    目标检测的图像特征提取之 xff08 三 xff09 Haar特征 zouxy09 64 qq com http blog csdn net zouxy09 1 Haar like 特征 Haar like 特征最早是由Papageorgi
  • Deep Learning论文笔记之(四)CNN卷积神经网络推导和实现

    Deep Learning论文笔记之 xff08 四 xff09 CNN卷积神经网络推导和实现 zouxy09 64 qq com http blog csdn net zouxy09 自己平时看了一些论文 xff0c 但老感觉看完过后就会
  • 曲线拟合 公式已与excel2007直线趋势图对比过。

    来自 xff1a http www fjptsz com xxjs xjw rj 117 04 htm 第4章 曲线拟合 许剑伟 于莆田十中 2008年4月23日 在很多情况下 xff0c 天文观测得到的数据是一组包含很大数量的序列点图象
  • MAVLink—最强大的微型飞行器通信协议

    c 光明工作室 2017 2037 COPYRIGHT 光明工作室团队成员大部分来自全国著名985 211工程院校 具有丰富的工程实践经验 xff0c 本工作室热忱欢迎大家的光临 工作室长期承接嵌入式开发 PCB设计 算法仿真等软硬件设计
  • 摄像机高精度标定的一些方法

    摄像机标定从标定板类型可以分为 xff1a 一维标定物 xff0c 二维标定物和三维标定物 xff08 哈哈哈 xff09 1 一维标定物 一维标定物标定算法是利用摄像机投影过程中的交比不变性的原理 xff0c 常用来标定摄像机阵列 xff
  • C#连接到SQL Server数据库

    理论知识 使用ADO NET ActiveX Data Objects 可以减少不同数据库系统带来的琐碎事情 ADO NET是一组公开数据访问服务的类 主要组成 xff1a NET 数据提供程序 xff1a 可以实现数据操作和对数据的快速
  • c++ 后台服务器开发面试题目总结

    文章目录 1 C 43 43 中include头文件时尖括号与双引号的区别1 1 区别1 2 总结 2 c 43 43 的封装 继承 多态3 计算机网络的OSI七层模型 xff0c 每一层的作用是啥4 红黑树的基本问题5 set怎么保证插入
  • Ubuntu18.04 PX4(XTdrone) gazebo联合仿真报错

    ubuntu18 04 默认安装gazebo9 0 启动PX4的indoor1 launch会报错 gzserver span class token operator span symbol lookup error span class
  • 云原生周刊:一文读懂 Pod 网络 | 2023.4.10

    文章推荐 一文读懂 Pod 网络 这篇文章旨在帮助读者理解 Pod 网络的概念和原理 Pod 网络是 Kubernetes 中的一个重要概念 xff0c 它描述了如何在一个集群中部署和运行应用程序 Pod 网络是指使用容器网络插件 如 Ca
  • 前辈大公司的面试,重点是他推荐我们应该看得那些书

    应届生上泡了两年 xff0c 一直都是下资料 xff0c 下笔试题 xff0c 面试题 一直都在感谢那些默默付出的人 写这个帖子花了我两个夜晚的时间 xff0c 不是为了炫耀 xff0c 只是为了能给那些 迷惘 的学弟学妹 xff0c 一点
  • 数据库for update 之后未提交事务导致锁表

    在工作的时候 xff0c 操作数据库 xff0c select for update xff0c 忘记提交事务 xff0c 数据库为了防止其他人对该表进行操作 xff0c 对该表进行锁表 xff0c 导致我再次for update 的时候一
  • 芯片驱动程序编写

    实质 利用程序控制单片机与芯片通信 xff0c 目的是读写芯片 xff0c 一般来说 xff0c 驱动程序就是对芯片的读写操作 看数据手册 寄存器表 芯片的所有功能都 映射 在寄存器表上 xff0c 阅读寄存器表就可以了解芯片的功能 这部分
  • 如何快速入门RTOS

    摘要 本文结合自己学习RTOS的经历 xff0c 来谈谈如何快速入门一款RTOS xff0c 希望能够给初学者以启发 xff0c 找到适合自己的学习思路和方法 我的学习经历 ucos学习 我是在上学期间接触到了RTOS xff0c 当时学习