下冰雹 · 2023年08月03日

朱天龙:学习和掌握RTOS最好的方法

在讨论“如何学习和掌握RTOS“这件事情之前,我们首先要明确一点:我们是否有必要学习RTOS?

关于这一点,可以看我18年的时候写的一篇文章《该不该用RTOS?我们只做对的选择》。这篇文章里的一些观点放在今天,仍然是适用的。比如:裸机在并发性、模块化、实时性、可重用性以及生态上的缺陷。当你使用裸机写的软件越多,功能越复杂,你所遇到的问题也会越来越多。

这次主要是想跟大家分享一下”如何学习和掌握RTOS”,为什么会有这个想法呢,其实动机也很巧合,是因为我看到一个群友的观点和我的观点非常相似,也看到大家都有这样的需求,所以总结了之前学习RTOS的经验,跟大家做个分享。

image.png

自上而下:先用起来再向下学习

我们在学习一款RTOS时,由于RTOS都是包含各种模块的复杂系统,学习时,首先要先建立宏观认识,了解RTOS的整体架构,掌握RTOS上的应用开发。

最好的方式是选择一个有丰富文档和例程的RTOS,基于RTOS系统的一整套示例代码进行学习是一个非常好的方法。通过使用这些示例代码,可以深入了解RTOS系统的设计和实现方式,学会如何使用RTOS来开发应用程序,也使我们的学习过程不会那么枯燥。

具体怎么实操呢?以RT-Thread新出的星火1号学习板为例。”星火1号”是RT-Thread专门为初学者设计的一套学习板,包含了丰富的例程,从内核到外设、从组件到各种各样的Demo。通过学习这样的示例程序,直接运行就可以看到现象,并且每个例程都有对应的说明文档,这样就可以比较轻松的掌握RTOS的应用开发。掌握应用开发之后,再慢慢的深入下去,深入到内核、架构、底层。

image.png

image.png

循序渐进

RTOS是一个复杂的系统,学习RTOS时,不能心急,”一口吃不成大胖子“,要按照方法循序渐进的学习。一个RTOS的SDK通常会提供多种示例项目,包括内核、外设、文件系统、网络等,这些示例项目可以帮助你更好地理解RTOS系统的各个方面。可以从简单的示例开始,逐步深入到更复杂的项目中,以便更好地掌握RTOS的开发技能。

同样以星火1号的SDK为例,就包括了内核、基础外设、高级外设、组件、IoT、综合demo 6个级别的示例程序,难度从易到难。学习时,可以遵循SDK的难度梯度,一个阶段一个阶段的学习。

勤动手多做实验

编写代码和进行内核实验是学习RTOS的重要方法之一。通过编写代码,可以更深入地了解RTOS的API函数、内核机制以及如何使用RTOS来开发实时应用程序。

在进行内核实验时,针对同一个应用场景,可以使用不同的系统API来实现,对比不同API使用上的差异,以及实现效果下的差别,更好的加深对内核机制的理解。

星火1号,针对内核的学习需求,单独准备了一个 内核学习例程01_kernel,这个例程里包含一个基本的内核工程,以及一套内核实验手册。根据内核实验手册,可以自己动手做一些针对内核的API试验,比如两个同优先级的线程相互切换、高优先级线程抢占低优先级的线程等,借助这些有趣的实验,不知不觉的就掌握了RTOS内核的精髓。可以更好的掌握RTOS应用开发。

多借助工具

此外,还可以借助一些工具来辅助RTOS的学习,比如仿真平台或者硬件调试器。通过仿真平台或者硬件调试器来进行内核实验,就可以单步程序的运行。单步应用程序,可以从应用代码直接深入到内核代码,从而更好地了解RTOS的内核机制。

这方面常见的RTOS一般都支持QEMU的方式,借助QEMU可以直接单步程序深入理解内核机制。但是仿真平台也有缺点,就是无法很好的仿真硬件外设,比如嵌入式中常用的I2C、SPI、CAN等通信协议,或者一些温湿度传感器等外部模块,就不适合使用仿真平台了。这一点,星火1号做的也很不错,它板载了ST-Link调试器,可以直接借助RT-Thread Studio来下载调试程序。单步程序的运行,非常适合初学者入门。

总结下来:学习和掌握RTOS最好的方法,就是自上而下的学习。按照难易程度循序渐进的学习的同时,也要多动手多做实验。还可以多借助调试工具深入到RTOS内部,可以更好的理解RTOS内部机制。

作者:RT-Thread
文章来源:RTThread物联网操作系统

推荐阅读

更多嵌入式AI干货请关注嵌入式AI专栏。欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。
推荐阅读
关注数
18808
内容数
1352
嵌入式端AI,包括AI算法在推理框架Tengine,MNN,NCNN,PaddlePaddle及相关芯片上的实现。欢迎加入微信交流群,微信号:aijishu20(备注:嵌入式)
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息