如何快速入门RTOS

时间: 2023-08-15 admin 互联网

如何快速入门RTOS

如何快速入门RTOS

摘要

本文结合自己学习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学习资源