Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
RT-Thread
【闲聊】分享一下我两年来学习RT-Thread的几个方法论
发布于 2023-03-01 13:52:27 浏览:2511
订阅该版
**【经验总结】一位近10年嵌入式开发老手,到底是如何快速学习和使用RT-Thread的?** > RT-Thread绝对可以称得上国内优秀且排名靠前的操作系统,在嵌入式IoT领域一直享有盛名。近些年,物联网产业的大热,更是直接将RT-Thread这款优秀的操作系统推入荣誉殿堂,越来越多的开发者涌入基于RT-Thread的开发大军,而如何快速学习和使用RT-Thread将会是一个刚需难题。 > > 本文以一个近10年的嵌入式开发老兵的视角,跟大家一起聊一聊这个话题,希望对大家有所帮助和启发。 > > **文中有干货,文末有福利,感谢大家的支持。** [toc] # 1 写在前面 RT-Thread 是一个集实时操作系统(RTOS)内核、中间件组件和开发者社区于一体的技术平台,由熊谱翔先生带领并集合开源社区力量开发而成, 具备一个 IoT OS 平台所需的所有关键组件,拥有一个国内最大的嵌入式开源社区,同时被广泛应用于能源、车载、医疗、消费电子等多个行业,累积装机量超过 20亿 台,成为国人自主开发、国内最成熟稳定和装机量最大的开源 RTOS。 它的优秀,不单单体现在 **文字** 上,还体现在 **数字** 上,以下展示数据来源于,[RT-Thread官网](https://www.rt-thread.org/about.html): ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20230301/84d0b18582ee981bd3aad8f6cf158577.png) 如此优秀的操作系统软件,你确认不来学习一下吗? # 2 聊聊情怀 熟悉我的朋友,大概都知道,我跟RT-Thread还是蛮有缘的,曾经我写过一篇短文,介绍我与RT-Thread的故事, > [【我与RT-Thread的故事】我想和你深发展](https://recan.blog.csdn.net/article/details/121577157) 该文很荣幸地登上了 2021年开发者大会专刊的故事会栏目,想必有些小伙伴在书刊上已经看过这篇文章了。 在2022年里,我开始深耕 [RT-Thread技术社区](https://club.rt-thread.org/index.html),我的个人账户是 [recan](https://club.rt-thread.org/u/1f240523a93e4305.html),期间,我非常积极回答线上小伙伴提的各种问题,我自己也基本保持每个月输出至少2篇优秀技术原创文章。同年6月,我还担任了RT-Thread全球开发者大会的线上直播讲师,包括国内专场和海外专场,收获了掌声的同时,我也收获了各种宝贵经历,最幸运的是还收获了RT-Thread创始人熊大亲笔签名的 **讲师证书**。 凭借2022年的优秀表现,我被授予了 **2022年度RT-Thread技术社区优秀布道者** 的荣誉称号,这真的是一个很激励我前行的荣誉。我会以此为新的起点,在接下来的一年里,我会更加以无上的使命感去推广RT-Thread,让更加优秀的开发者加入到RT-Thread的开发阵营。 这是我的责任,也是我的义务,更是我的荣幸。作为布道者,我很乐意大家与我交流RT-Thread技术,欢迎大家戳 [我主页](https://club.rt-thread.org/u/1f240523a93e4305.html),我们一起聊聊! # 3 老手支招 扯了这么多有的没的,是时候放点大招了。 我从13年毕业出来,从事嵌入式行业接近10年了,从最终的嵌入式Linux,然后FreeRTOS,再到现在的RT-Thread,可以说每一项操作系统技术,我都有比较深的涉猎,也成功在工作项目中得到验证,有幸做了一些成绩,也很高兴成为了公司里的TOP5%。 这两年,我也频繁地在技术自媒体上发声,致力于打造 [架构师李肯](http://yyds.recan-li.cn) 这个技术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的官方文档已经是非常完备的,它有一个专门的网站,大家可以戳 [这里](https://www.rt-thread.org/document/site/#/)。 基本上,在这里你都可以找到相关的参考资料,包括内核是怎么设计的、应用接口怎么调用、驱动框架是怎么样的、有哪些开发工具可以参考;基本上你上去找一找这些问题都可以找到答案。 另外一点比较重要的是,文档是全中文模式,这对于国内的开发者来说,是一个比较好的体验,这也很大程度地降低了开发者的理解难度,提升开发者学习和了解RT-Thread的积极性。 ## 3.4 关于解答问题的问题 关于提交你开发过程中遇到的问题,我首推 [RT-Thread的官方技术社区](https://club.rt-thread.org/index.html),在这里有很多优秀的开发者聚集在一块,其中不乏很多 [业内的技术专家](https://club.rt-thread.org/ask/experts.html),基本上你在这里发表你的问题,应该很快就能得到小伙伴的响应。 整个技术社区还是比较活跃的,我个人也活跃在社区中,也经常给社区的问题答疑,也欢迎大家在社区找我提问。 不过,需要说明的是,有些时候并不是说问题一定能够得到解决,但是可能别人的一个点评讨论,一下子就把你解决问题的思路打开了,问题也就迎刃而解了。 在这里,我想介绍一下,[如何高效地提问题](https://club.rt-thread.org/ask/question/1d7133828aad889b.html),这是很多初阶开发者都需要学习的。 ## 3.5 关于开发板的问题 这个问题也是很多小伙伴问到的一个问题,非常关心开发板的购买。 学习RT-Thread有一个比较好的地方就是,它可以不依赖于开发板环境就能上手。 在官方提供的代码仓库中,我们可以在BSP目录下找到类似 **QEMU-** 开头的BSP,这些BSP就是基于QEMU技术模拟出来的一个开发环境,有了它,你就可以直接在PC电脑上调试RT-Thread了,这不但大大提升了RT-Thread编程验证思路的速度,同时也降低了学习RT-Thread的硬件门槛。 感兴趣的小伙伴,可以戳这里了解一下 [这种开发模式](https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/application-note/setup/qemu/windows/an0006-qemu-windows?id=%e5%9c%a8-window-%e5%b9%b3%e5%8f%b0%e4%bd%bf%e7%94%a8-qemu-%e8%bf%90%e8%a1%8c-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赋能更多行业,真正做到“积识成睿,慧泽百川”。 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20230301/62784058c5e479d7b8df943c8ca83c92.png.webp) - **读者对象** > 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 编写的,读者在跟随本书学习驱动开发的时候,也需要选择对应的源码版本。 - **大神推荐** ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20230301/306c3481f934fbf033de7efd1d7dff1e.png.webp) > **以上推荐材料来源说明** > > 本文来源:IT阅读排行榜,图片来源:原创 > > 责任编辑:王莹,部门领导:卢志坚 > > 发布人:尹文敏 # 5 文末福利 有幸拿到5个赞助名额,送出权威巨作**《RT-Thread设备驱动开发指南》5本**,感兴趣的戳 [这里这里这里](https://blog.csdn.net/szullc/article/details/129249261)。 # 6更多分享 > **[架构师李肯](https://recan.blog.csdn.net/?type=blog)** > > **架构师李肯**(**全网同名**),一个专注于嵌入式IoT领域的架构师。有着近10年的嵌入式一线开发经验,深耕IoT领域多年,熟知IoT领域的业务发展,深度掌握IoT领域的相关技术栈,包括但不限于主流RTOS内核的实现及其移植、硬件驱动移植开发、网络通讯协议开发、编译构建原理及其实现、底层汇编及编译原理、编译优化及代码重构、主流IoT云平台的对接、嵌入式IoT系统的架构设计等等。拥有多项IoT领域的发明专利,热衷于技术分享,有多年撰写技术博客的经验积累,连续多月获得RT-Thread官方技术社区原创技术博文优秀奖,荣获[CSDN博客专家](https://recan.blog.csdn.net/?type=blog)、[CSDN物联网领域优质创作者](http://yyds.recan-li.cn)、[2021年度CSDN&RT-Thread技术社区之星](https://blog.csdn.net/szullc/article/details/123860472)、[2022年RT-Thread全球技术大会讲师](https://club.rt-thread.org/ask/article/afa56894c113369a.html)、[RT-Thread官方嵌入式开源社区认证专家](https://club.rt-thread.org/ask/experts.html)、[RT-Thread 2021年度论坛之星TOP4](https://club.rt-thread.org/ask/article/3317.html)、[华为云云享专家(嵌入式物联网架构设计师)](https://bbs.huaweicloud.com/community/usersnew/id_1573655458316259)、**2022年度RT-Thread技术社区优秀布道者**、**2022年度电子发烧友论坛优秀开发者** 等荣誉。坚信【知识改变命运,技术改变世界】! --- 欢迎关注我的[gitee仓库01workstation](https://gitee.com/recan-li/coding-01workstation) ,日常分享一些开发笔记和项目实战,欢迎指正问题。 同时也非常欢迎关注我的CSDN主页和专栏: [【CSDN主页-架构师李肯】](http://yyds.recan-li.cn) [【RT-Thread主页-架构师李肯】](https://club.rt-thread.org/u/18001) [【C/C++语言编程专栏】](https://blog.csdn.net/szullc/category_8450784.html) [【GCC专栏】](https://blog.csdn.net/szullc/category_8626555.html) [【信息安全专栏】](https://blog.csdn.net/szullc/category_8452787.html) [【RT-Thread开发笔记】](https://blog.csdn.net/szullc/category_11461616.html) [【freeRTOS开发笔记】](https://blog.csdn.net/szullc/category_11467856.html) 有问题的话,可以跟我讨论,知无不答,谢谢大家。
8
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
李肯陪你玩赚嵌入式
2022年度和2023年度RT-Thread社区优秀开源布道师,COC深圳城市开发者社区主理人,专注于嵌入式物联网的架构设计
文章
47
回答
504
被采纳
82
关注TA
发私信
相关文章
1
RT-THREAD在STM32H747平台上移植lwip
2
正点原子miniSTM32开发板读写sdcard
3
反馈rtt串口驱动对低功耗串口lpuart1不兼容的问题
4
Keil MDK 移植 RT-Thread Nano
5
RT1061/1052 带 RTT + LWIP和LPSPI,有什么坑要注意吗?
6
RT thread HID 如何收发数据
7
求一份基于RTT系统封装好的STM32F1系列的FLASH操作程序
8
RT-Thread修改项目名称之后不能下载
9
rt-studio编译c++
10
有木有移植rt-thread(nano)到riscv 32位MCU上
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
WIZnet_W5500
UART
ota在线升级
PWM
cubemx
freemodbus
flash
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
Debug
编译报错
msh
SFUD
keil_MDK
rt_mq_消息队列_msg_queue
at_device
ulog
C++_cpp
本月问答贡献
踩姑娘的小蘑菇
7
个答案
3
次被采纳
a1012112796
13
个答案
2
次被采纳
张世争
9
个答案
2
次被采纳
rv666
5
个答案
2
次被采纳
用户名由3_15位
11
个答案
1
次被采纳
本月文章贡献
程序员阿伟
7
篇文章
2
次点赞
hhart
3
篇文章
4
次点赞
大龄码农
1
篇文章
3
次点赞
ThinkCode
1
篇文章
1
次点赞
Betrayer
1
篇文章
1
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部