查看原文
其他

RTOS排位战!你到哪个段位了?

嵌入式ARM 2021-01-31

The following article is from Mculover666 Author mculover666

莫问收获,但问耕耘。

——曾国藩


本文来和大家分享一下我在RTOS打怪升级路上经历的几个段位,仅供参考。


青铜段位 | 玩起来RTOS



这个段位,我把它总结为:玩起来RTOS


2018年,我参加了RT-Thread组织的大学生雄鹰计划,和众多对RT-Thread感兴趣的学生一起学习内核,每周学习一章内容并完成作业。


这是我第一次接触RTOS内核,得益于RT-Thread的板级支持做得实在是太好了,无需任何移植,随便找块stm32板子就能跑起来RT-Thread,有训练营的教程、官方详细的文档,就这样开始了内核的学习。


在这个过程中主要是参考教程、文档来玩起来RTOS,创建线程、使用信号量、使用邮箱等等RTOS内核基本操作,并记录了一本足足有26468字的RT-Thread内核学习笔记。




黄金段位 | 知道RTOS有哪些东西 



这个段位,我把它总结为:知道RTOS有哪些东西


2019年,我参加了华为的IoT训练营,第一次接触LiteOS和小熊派IoT开发板,本着系统学习一下stm32cubemx的想法,就开始了边学习边写博客记录的过程,出完这套教程后,发现LiteOS教程稀缺,何不再趁热打铁,出一套LiteOS的教程呢?


说干就干!这一干,可谓是对自己的一次挑战。


官方没有任何细致的使用文档,代码里的注释也多是版权信息,这可咋整?只能从源码下手了。


凭借着学习RT-Thread的经验,开始啃源码,做实验,然后在教程里写出每个模块有哪些API可用,这些API如何使用,并在每篇文章中给出一个使用示例。


从内核的基本模块写到AT框架、SAL框架这些组件,再写到MQTT、LWM2M、COAP这些上云组件,历时3个多月,每天都在研究。


这次经历对我的成长挺大,以前是没有教学文档、视频就寸步难行,无从下手,之后发现其实一个RTOS里面就是那些东西,用起来都差不多的,如果具备一个RTOS的经验,再去玩其它的RTOS,很好上手。


所以,还在观望RTOS的小伙伴,不用纠结学哪个RTOS好,如果不是项目要求必须使用某一种,学哪个都是一样的。


铂金段位 | 知道RTOS是怎么干活的




这个段位,我把它总结为:知道RTOS怎么干活


2020年,我开始了RTOS内核的学习,选择了代码写的比较简洁粗暴的TencentOS-tiny操作系统。


这次主要是分析研究源码,主要是学习研究系统中任务、信号量、消息队列如何实现,在系统中以怎样的形式存在,在提供给用户的API中究竟做了什么


在做嵌入式项目的时候,不像开发桌面软件、开发APP那样,基本上写代码会调用API,调用库就可以,嵌入式设备中的资源都是非常有限的,如果只是一通调用而自己没有清楚的认知,做出来的产品就像是空中楼阁,看似功能非常炫酷,然而,可靠吗?面临各种各样断电、断网、信号不好、操作失误的情况,是否可以处理好这些异常呢?


就拿我自己来说,写几个任务helloworld一下,再写两个任务之间使用信号量同步,再写几个任务使用信号量之间通信,根本莫得问题。


可是一旦用RTOS做起项目来,设计到任务如何分配,如何同步,如何通信,就歇菜了,好好的RTOS程序,最后所有的逻辑都是在main任务里写……还不如裸机呢。


钻石段位 | 知道如何用RTOS干活



这一阶段,我把它总结为:知道如何用RTOS干活


这个阶段是我准备接下来要达到的目标,建立在清楚的知道RTOS内部如何运作的基础上,可以合理的设计安排任务,合理的设计任务间如何同步运行,合理的设计任务间如何通信获取数据


因为我一直在学校的原因,做项目都比较任性,可能觉得想玩,好玩,灵感闪现就去做了,也没有约束,没有做过实际落地产品的经历,这方面也是我一直所欠缺的。


有心的读者可以从我平常发的文章看出来,文章深度和从业好多年的大佬根本没法比,所以我会经常转载一些大佬的深度好文,一方面自己学习,另一方面分享给公众号的每位读者。


我一直很敬佩曾国藩,考了7次才中秀才,却以笨功夫成功打通科举之路,进入翰林院,一生崇尚笨拙,以扎实而非机巧取胜,很好的诠释了:


莫问收获,但问耕耘


在机会还没到来之前,先不断学习提升自己吧~机会是留给有准备的人的,暂且就分享这些,与公众号各位读者,共勉。


本文授权转载自公众号“Mculover666”,作者mculover666

-END-




推荐阅读



【01】C语言十大经典排序算法(动态演示+代码,值得收藏)【02】C语言、嵌入式中几个非常实用的宏技巧【03】C语言最全入门笔记【04】绝对能检测你C语言基础水平的5个面试题【05】C语言为何不会过时?你需要掌握多少种语言?

免责声明:整理文章为传播相关技术,版权归原作者所有,如有侵权,请联系删除

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存