【经验总结】10年的嵌入式开发老手,到底是如何快速学习和使用RT-Thread的?

【经验总结】一位近10年的嵌入式开发老手,到底是如何快速学习和使用RT-Thread的?

RT-Thread绝对可以称得上国内优秀且排名靠前的操作系统,在嵌入式IoT领域一直享有盛名。近些年,物联网产业的大热,更是直接将RT-Thread这款优秀的操作系统推入荣誉殿堂,越来越多的开发者涌入基于RT-Thread的开发大军,而如何快速学习和使用RT-Thread将会是一个刚需难题。

本文以一个近10年的嵌入式开发老兵的视角,跟大家一起聊一聊这个话题,希望对大家有所帮助和启发。

文章目录

  • 1 写在前面
  • 2 聊聊情怀
  • 3 老手支招
    • 3.1 关于学习基础的问题
    • 3.2 关于学习方向的问题
    • 3.3 关于官方文档的问题
    • 3.4 关于解答问题的问题
    • 3.5 关于开发板的问题
    • 3.6 关于良师益友的问题
    • 3.7 关于项目实战的问题
    • 3.8 关于学习进阶的问题
  • 4 友情推荐
  • 5 文末福利

1 写在前面

RT-Thread 是一个集实时操作系统(RTOS)内核、中间件组件和开发者社区于一体的技术平台,由熊谱翔先生带领并集合开源社区力量开发而成, 具备一个 IoT OS 平台所需的所有关键组件,拥有一个国内最大的嵌入式开源社区,同时被广泛应用于能源、车载、医疗、消费电子等多个行业,累积装机量超过 20亿 台,成为国人自主开发、国内最成熟稳定和装机量最大的开源 RTOS。

它的优秀,不单单体现在 文字 上,还体现在 数字 上,以下展示数据来源于,RT-Thread官网:

image-20230227170425888

如此优秀的操作系统软件,你确认不来学习一下吗?

2 聊聊情怀

熟悉我的朋友,大概都知道,我跟RT-Thread还是蛮有缘的,曾经我写过一篇短文,介绍我与RT-Thread的故事,

【我与RT-Thread的故事】我想和你深发展

该文很荣幸地登上了 2021年开发者大会专刊的故事会栏目,想必有些小伙伴在书刊上已经看过这篇文章了。

在2022年里,我开始深耕 RT-Thread技术社区,我的个人账户是 recan,期间,我非常积极回答线上小伙伴提的各种问题,我自己也基本保持每个月输出至少2篇优秀技术原创文章。同年6月,我还担任了RT-Thread全球开发者大会的线上直播讲师,包括国内专场和海外专场,收获了掌声的同时,我也收获了各种宝贵经历,最幸运的是还收获了RT-Thread创始人熊大亲笔签名的 讲师证书

凭借2022年的优秀表现,我被授予了 2022年度RT-Thread技术社区优秀布道者 的荣誉称号,这真的是一个很激励我前行的荣誉。我会以此为新的起点,在接下来的一年里,我会更加以无上的使命感去推广RT-Thread,让更加优秀的开发者加入到RT-Thread的开发阵营。

这是我的责任,也是我的义务,更是我的荣幸。作为布道者,我很乐意大家与我交流RT-Thread技术,欢迎大家戳 我主页,我们一起聊聊!

3 老手支招

扯了这么多有的没的,是时候放点大招了。

我从13年毕业出来,从事嵌入式行业接近10年了,从最终的嵌入式Linux,然后FreeRTOS,再到现在的RT-Thread,可以说每一项操作系统技术,我都有比较深的涉猎,也成功在工作项目中得到验证,有幸做了一些成绩,也很高兴成为了公司里的TOP5%。

这两年,我也频繁地在技术自媒体上发声,致力于打造 架构师李肯 这个技术IP,期间遇到了很多困难和阻碍,也一度想要放弃,但与此同时又收到了很多肯定和鼓励。遵循内心的渴望,我还是希望能把这个IP继续做下去,如果能帮助到更多的人,那就再好不过了。

就在我致力于打造 架构师李肯](http://yyds.recan-li.cn) 这个技术IP的时候,我遇到了非常多嵌入式入行的朋友,其中不乏很多想加入RT-Thread开发者阵营的朋友,他们经常问到问到一个问题就是:你是如何学习和使用RT-Thread的?

说实话,每当我回答起这个问题,我总是左想想右想想,然后给出几个不成文的建议。所以,我想趁着这次机会,好好梳理一下,我是如何学习和使用RT-Thread的。

下面,我将以一个嵌入式经验老手的角度,从几个问题角度,给出一些切实可行的建议和方法,但是需要补充说明的就是,本文提交的方法并不一定适合所有开发者,请大家酌情甄别。择其善者而从之,其不善者而改之!

3.1 关于学习基础的问题

这个问题罗列在第一位,是因为我遇到太多这样的朋友了。

一上来就问,我是零基础小白,能转行学嵌入式吗?我这样啥都不懂的,能学好RT-Thread吗?

在这里,我再次表达一下我的观点,学习基础不是重点,也不是难点;稍微有些电子电路基础,加一些C语言编程经验的,基本就可以应付嵌入式的入门了。

另一方面,很重要的一点,那就是兴趣。这个东西有些虚,但是直接决定了当你遇到困难的时候,你是否能坚持得下去。毕竟,嵌入式这个玩意,说好玩也挺好玩的,说枯燥也是挺枯燥的,整天对着一堆设备,bug一筹莫展的时候,头发就开始往下掉了。

当然,回到RT-Thread学习这边,如果你有主修过操作系统原理、计算机基础等相关专业课程,那么理解起RT-Thread会更容易写。

3.2 关于学习方向的问题

大体上,嵌入式软件其实分为两大方向:应用开发和底层驱动开发。

应用开发:偏向于业务逻辑开发,需要掌握的是系统API的使用细节,而对实现细节可能不那么讲究,但是如果能更懂底层细节,往往能够写出更加优秀的应用代码。

底层驱动开发:这个工作是要跟硬件设备以及操作系统强交互的,需要掌握一定的硬件知识,同时对系统的驱动框架也要了然于胸,否则做嵌入式驱动开发会非常吃力。当然,与工作难度相对应的是,工资往往也会更高一些。

我把这个问题单独拎出来说,主要目的就是让大家明白,应用开发和驱动开发是两个截然不同的开发方向,对开发者的能力要求也不一样,提醒大家入门的时候一定要做好选择。

对于基于RT-Thread的开发也是应用,应用开发和驱动开发的能力矩阵要求是不一样的;一般做底层驱动开发的转应用开发会相对容易些,而反向则比较难。所以大家一开始的选择很重要。

3.3 关于官方文档的问题

总的来说,RT-Thread的官方文档已经是非常完备的,它有一个专门的网站,大家可以戳 这里。

基本上,在这里你都可以找到相关的参考资料,包括内核是怎么设计的、应用接口怎么调用、驱动框架是怎么样的、有哪些开发工具可以参考;基本上你上去找一找这些问题都可以找到答案。

另外一点比较重要的是,文档是全中文模式,这对于国内的开发者来说,是一个比较好的体验,这也很大程度地降低了开发者的理解难度,提升开发者学习和了解RT-Thread的积极性。

3.4 关于解答问题的问题

关于提交你开发过程中遇到的问题,我首推 RT-Thread的官方技术社区,在这里有很多优秀的开发者聚集在一块,其中不乏很多 业内的技术专家,基本上你在这里发表你的问题,应该很快就能得到小伙伴的响应。

整个技术社区还是比较活跃的,我个人也活跃在社区中,也经常给社区的问题答疑,也欢迎大家在社区找我提问。

不过,需要说明的是,有些时候并不是说问题一定能够得到解决,但是可能别人的一个点评讨论,一下子就把你解决问题的思路打开了,问题也就迎刃而解了。

在这里,我想介绍一下,如何高效地提问题,这是很多初阶开发者都需要学习的。

3.5 关于开发板的问题

这个问题也是很多小伙伴问到的一个问题,非常关心开发板的购买。

学习RT-Thread有一个比较好的地方就是,它可以不依赖于开发板环境就能上手。

在官方提供的代码仓库中,我们可以在BSP目录下找到类似 QEMU- 开头的BSP,这些BSP就是基于QEMU技术模拟出来的一个开发环境,有了它,你就可以直接在PC电脑上调试RT-Thread了,这不但大大提升了RT-Thread编程验证思路的速度,同时也降低了学习RT-Thread的硬件门槛。

感兴趣的小伙伴,可以戳这里了解一下 这种开发模式。

3.6 关于良师益友的问题

俗话说:“一个人走得更快,而一群人将走得更远。”

在学习RT-Thread的道路上,我希望大家能找到志同道合的伙伴,一起升级打怪,一起进阶成长;遇到问题的时候,大家一起讨论,一起研究问题的根源;可能一个不经意的想法,就帮你解决了一个折腾几天的难题。这就是良师益友的重要性。

那么,如何去寻找自己的良师益友呢?个人觉得可以从技术论坛、技术博客、技术公号中去寻找答案,尽量多关注你同领域的优秀博主,他们会有很多的同行交流群,试着去融入他们,制造几乎与他们产生交集,慢慢混熟了,技术上的良师益友也就顺理成章了。

如果你还没有找到自己的良师益友,欢迎找我来撩,或许我能成为你的良师益友也说不定。

3.7 关于项目实战的问题

纸上得来终觉浅,绝知此事要躬行!

在学习RT-Thread的道路上,更应该如此。看一百遍教程,读一百遍demo代码,都不及自己动手敲一遍代码,然后在实际的开发环境(开发板或QEMU模拟环境)中跑一跑,调一调;这样既能锻炼动手能力,又能加深学习内容的掌握。

很多人开始疑问,我的正常工作内容还未涉及RT-Thread相关的开发,我该如何找到类似的实战项目呢?

这个,你就要留意各路业余大赛了,比如电子发烧友论坛,比如官方的RT-Thread技术论坛,他们都会不定期地举办一些设计大赛,大赛中会比较明确地要求使用RT-Thread操作系统。

那么对于这种大赛,你就可以踊跃地报名参加,不但可以收获开发板,还有实践一个实战项目,更有可能还能收获一堆志同道合的技术朋友,何乐而不为呢?

3.8 关于学习进阶的问题

学习RT-Thread的高阶状态,我认为是参与开源社区的建设,一个小小问题的回答,甚至于一个小小的问题点赞,都能够很好地把这种技术开源的精神传承下去。

如果你是更积极的开发小伙伴,哪怕技术不是那么精湛,你也可以尝试提交一次PR,向官方仓库提交你的优秀代码,让更多的人知道你这么优秀。

优秀的开发者总是有一样的开发习惯,跟优秀的社区建设者一起【工作】,这本身就是一件很令人成长的事情,可以尝试加入我们吧。


总结一下:

上面提及的各点,其实远不是具体的可操作细节,我可能称之为 方法论 的东西,掌握了方法论的东西,无论你学习哪个开源项目都是一样的理儿。所以呢,关于具体的技术细节学习,欢迎大家找我来聊。

4 友情推荐

作为RT-Thread的忠实粉丝,我时刻关注着RT-Thread的消息,根据可靠消息,一本由RT-Thread官方开发人员撰写的、堪称最权威的RT-Thread的教科书,《RT-Thread设备驱动开发指南》横空出世。

它的出现,直接轰炸了我的各种嵌入式技术群,非常多的小伙伴都想第一时间一睹它的风采。

在这里,我以RT-Thread开发者的身份正式向大家推荐这一本巨作。


近年来国内芯片产业和物联网产业的快速崛起,行业发展迫切需要更多人才,尤其需要掌握嵌入式操作系统等底层技术的人才。随着RT-Thread被更广泛地应用于行业中,开发者对嵌入式驱动开发的需求越来越强烈,他们迫切地希望有一本可以指导他们在RT-Thread上开发驱动的指南。

为了解决开发者的燃眉之急,《RT-Thread设备驱动开发指南》来了!希望帮助RT-Thread的开发者掌握驱动开发的知识点,让开发者能够更简单、更方便地开发驱动,加速产品上市,让RT-Thread赋能更多行业,真正做到“积识成睿,慧泽百川”。

【经验总结】10年的嵌入式开发老手,到底是如何快速学习和使用RT-Thread的?_第1张图片

  • 读者对象
  1. 熟悉RT-Thread并想在其上开发设备驱动的人员
  2. 嵌入式软硬件工程师、电子工程师、物联网开发工程师
  3. 高等院校的计算机、电子、自动化、通信相关专业师生
  4. 其他对嵌入式操作系统感兴趣的人员
  • 如何阅读本书

本书要求读者具备RT-Thread基础知识,因此建议大家先学习《嵌入式实时操作系统:RT-Thread设计与实现》,再学习本书内容。使用过RT-Thread上的设备框架的读者的阅读体验会更佳。本书的每章都有配套示例代码,这些代码大多是仅供理解上下文参考的,不能真正运行,建议读者对照具体bsp目录下已有的驱动,并结合本书进行学习。

本书内容分为三篇:基础篇、进阶篇与高级篇。

基础篇(第1~11章) 第1章概述RT-Thread与设备框架;第2~11章介绍一些常用的设备驱动框架,包括PIN、I2C、SPI等,适合刚接触驱动开发的读者阅读。

进阶篇(第12~20章) 介绍稍复杂一些的外设驱动,如SDIO、触摸、显示、传感器、加解密设备等。

高级篇(第21~27章) 介绍一些复杂的驱动,如网络、音频、USBD(H)、CAN等,开发此类设备驱动要求开发者比较熟悉相应的外设协议。

本书更像是一本工具书,读者不需要一章一章地从头读到尾,读完前面几章内容,熟悉了驱动开发的基本流程之后,就可以根据自己的需要,选择对应的章节学习。

  • 配套软件

本书是基于RT-Thread 4.1.0 编写的,读者在跟随本书学习驱动开发的时候,也需要选择对应的源码版本。

  • 大神推荐

以上推荐材料来源说明

本文来源:IT阅读排行榜,图片来源:原创

责任编辑:王莹,部门领导:卢志坚

发布人:尹文敏

5 文末福利

欢迎大家来参加我的社区活动,赠书《RT-Thread设备驱动开发指南》5本,活动的详细说明戳这里 !!!

你可能感兴趣的:(嵌入式开发笔记,RT-Thread学习笔记,开源软件,学习,物联网,RT-Thread,嵌入式,操作系统)