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

【经验总结】一位近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赋能更多行业,真正做到“积识成睿,慧泽百川”。

[外链图片转存中...(img-Ht2aBVCx-1677500495326)]![图

5 文末福利

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

集赞转发只是一种形式,其中我会精选2条 最走心 的评论,送出其中的2本!期待一下 … …

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/701.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

python绘制图像中心坐标二维分布曲线

数据和代码如下所示: import pandas as pd import numpy as np import matplotlib.pyplot as plt import xlrd from scipy.stats import multivariate_normal from mpl_toolkits.mplot3d import Axes3D np.set_printoptions(suppressTrue)# 根据均值、标准差,求指定…

SuperMap iMobile for Android 地图开发(一)

第一步:创建 Android Studio 项目 第一步:创建 Android Studio 项目 Android Studio 有两种创建项目的方法。 第一种是在 Android Studio起始页选择“Start a new Android Studio Project”。 第二种是在 Android Studio 主页选择“File”–>“New P…

数仓建模—主题域和主题

主题域和主题 前面在这个专题的第一篇,也就是数仓建模—数仓初识中我们就提到了一个概念—主题,这个概念其实在数仓的定义中也有提到 数据仓库是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合,用于支持管理决策。 今天我们主要来探究一下,数仓的主题到底是…

Multi-Camera Color Correction via Hybrid Histogram Matching直方图映射

文章目录Multi-Camera Color Correction via Hybrid Histogram Matching1. 计算直方图, 累计直方图, 直方图均衡化2. 直方图规定化,直方图映射。3. 实验环节3.1 输入图像3.2 均衡化效果3.3 映射效果4. 针对3实验环节的伪影 做处理和优化&…

ChatGPT研究分析:GPT-4做了什么

前脚刚研究了一轮GPT3.5,OpenAI很快就升级了GPT-4,整体表现有进一步提升。追赶一下潮流,研究研究GPT-4干了啥。本文内容全部源于对OpenAI公开的技术报告的解读,通篇以PR效果为主,实际内容不多。主要强调的工作&#xf…

九种跨域方式实现原理(完整版)

前言 前后端数据交互经常会碰到请求跨域,什么是跨域,以及有哪几种跨域方式,这是本文要探讨的内容。 一、什么是跨域? 1.什么是同源策略及其限制内容? 同源策略是一种约定,它是浏览器最核心也最基本的安…

如何发布自己的npm包

一、什么是npm npm是随同nodejs一起安装的javascript包管理工具,能解决nodejs代码部署上的很多问题,常见的使用场景有以下几种: ①.允许用户从npm服务器下载别人编写的第三方包到本地使用。 ②.允许用户从npm服务器下载并安装别人编写的命令…

K_A18_001 基于STM32等单片机采集MQ2传感参数串口与OLED0.96双显示

K_A18_001 基于STM32等单片机采集MQ2传感参数串口与OLED0.96双显示一、资源说明二、基本参数参数引脚说明三、驱动说明IIC地址/采集通道选择/时序对应程序:四、部分代码说明1、接线引脚定义1.1、STC89C52RCMQ2传感参模块1.2、STM32F103C8T6MQ2传感参模块五、基础知识学习与相关…

Vue3之插槽(Slot)

何为插槽 我们都知道在父子组件间可以通过v-bind,v-model搭配props 的方式传递值,但是我们传递的值都是以一些数字,字符串为主,但是假如我们要传递一个div或者其他的dom元素甚至是组件,那v-bind和v-model搭配props的方式就行不通…

让你少写多做的 ES6 技巧

Array.of 关于奇怪的 Array 函数: 众所周知,我们可以通过Array函数来做以下事情。 初始化一个指定长度的数组。 设置数组的初始值。 // 1. Initialize an array of the specified length const array1 Array(3) // [ , , ] // 2. Set the initial value…

Spring Cloud学习笔记【负载均衡-Ribbon】

文章目录什么是Spring Cloud RibbonLB(负载均衡)是什么Ribbon本地负载均衡客户端 VS Nginx服务端负载均衡区别?Ribbon架构工作流程Ribbon Demo搭建IRule规则Ribbon负载均衡轮询算法的原理配置自定义IRule新建MyRuleConfig配置类启动类添加Rib…

SQLMap 源码阅读

0x01 前言 还是代码功底太差,所以想尝试阅读 sqlmap 源码一下,并且自己用 golang 重构,到后面会进行 ysoserial 的改写;以及 xray 的重构,当然那个应该会很多参考 cel-go 项目 0x02 环境准备 sqlmap 的项目地址&…

学习java——②面向对象的三大特征

目录 面向对象的三大基本特征 封装 封装demo 继承 继承demo 多态 面向对象的三大基本特征 我们说面向对象的开发范式,其实是对现实世界的理解和抽象的方法,那么,具体如何将现实世界抽象成代码呢?这就需要运用到面向对象的三大…

从ChatGPT与New Bing看程序员为什么要学习算法?

文章目录为什么要学习数据结构和算法?ChatGPT与NEW Bing 的回答想要通关大厂面试,就不能让数据结构和算法拖了后腿业务开发工程师,你真的愿意做一辈子CRUD boy吗?对编程还有追求?不想被行业淘汰?那就不要只…

2023年网络安全比赛--CMS网站渗透中职组(超详细)

一、竞赛时间 180分钟 共计3小时 二、竞赛阶段 1.使用渗透机对服务器信息收集,并将服务器中网站服务端口号作为flag提交; 2.使用渗透机对服务器信息收集,将网站的名称作为flag提交; 3.使用渗透机对服务器渗透,将可渗透页面的名称作为flag提交; 4.使用渗透机对服务器渗透,…

一个Bug让人类科技倒退几十年?

大家好,我是良许。 前几天在直播的时候,问了直播间的小伙伴有没人知道「千年虫」这种神奇的「生物」的,居然没有一人能够答得上来的。 所以,今天就跟大家科普一下这个人类历史上最大的 Bug 。 1. 全世界的恐慌 一个Bug会让人类…

jQuery《一篇搞定》

今日内容 一、JQuery 零、 复习昨日 1 写出至少15个标签 2 写出至少7个css属性font-size,color,font-familytext-algin,background-color,background-image,background-sizewidth,heighttop,bottom ,left ,rightpositionfloatbordermarginpadding 3 写出input标签的type的不…

flex布局左边宽度固定,右边宽度动态扩展问题

我们希望在一个固定宽度的容器中&#xff0c;分左右两边&#xff0c;左边宽度固定大小&#xff0c;右边占满&#xff0c;使用flex布局时&#xff0c;如下&#xff1a; 对应代码如下&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta…

LeetCode - 198 打家劫舍

目录 题目来源 题目描述 示例 提示 题目解析 算法源码 题目来源 198. 打家劫舍 - 力扣&#xff08;LeetCode&#xff09; 题目描述 你是一个专业的小偷&#xff0c;计划偷窃沿街的房屋。每间房内都藏有一定的现金&#xff0c;影响你偷窃的唯一制约因素就是相邻的房屋装…

【华为机试真题 Python实现】2023年1、2月高频机试题

文章目录2023年1季度最新机试题机考注意事项1. 建议提前刷题2. 关于考试设备3. 关于语言环境3.1. 编译器信息3.2. ACM 模式使用sys使用input&#xff08;推荐&#xff09;3. 关于题目分值及得分计算方式4. 关于做题流程5. 关于作弊2023年1季度最新机试题 两个专栏现在有200博文…