经验总结10年的嵌入式开发老手,到底是如何快速学习和使用RT-Thread的?(文末赠书5本)

Posted 架构师李肯

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了经验总结10年的嵌入式开发老手,到底是如何快速学习和使用RT-Thread的?(文末赠书5本)相关的知识,希望对你有一定的参考价值。

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

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

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

文章目录

1 写在前面

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

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

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

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赋能更多行业,真正做到“积识成睿,慧泽百川”。

  • 读者对象
  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本,活动的详细说明戳这里 !!!

以上是关于经验总结10年的嵌入式开发老手,到底是如何快速学习和使用RT-Thread的?(文末赠书5本)的主要内容,如果未能解决你的问题,请参考以下文章

PIC单片机开发环境的搭建总结及新上手单片机平台如何实现快速开发的几点经验分享

Android开发软件架构思考以及经验总结

怎样让百度快速收录(适合新手学习,老手参考)

IT新手如何快速学好Linux运维?

炒了8年的概念,到底该如何理解DevOps这个词?

编程老手的哪些特点,值得新手学习。