【社区人物志】专访马龙伟:轮子不好用,那就自己造!
Hi~RT-Thread社区开发者们:
【社区人物志】是 RT-Thread社区推出的新栏目,人物志将关注每一个对RT-Thread社区做出过贡献的小伙伴,会定期从 RT-Thread社区小伙伴中选出一位活跃的开发者进行专访,分享开发者们与RT-Thread的故事和缘分以及学习的方法和经验。再次感谢各位小伙伴对社区作出的贡献,你们对RT-Thread社区的支持和贡献我们都记在了心里,也期望更多的小伙伴们能够加入RT-Thread的生态建设中~
本期开发者介绍:马龙伟,论坛账号Cfly,RT-Thread社区专家,2022年RT-Thread全球技术大会讲师,Agile 全家桶软件包作者,获得 2019 及 2021 年RT-Thread社区杰出贡献奖
他的论坛主页:https://club.rt-thread.org/u/2c298f197058c516.html
作为RT-Thread社区中最活跃的开发者之一,马龙伟是如何与RT-Thread结缘的? 又是怎么成为RT-Thread社区杰出贡献者的?一起来看看他的专访内容~
Q:请先简单介绍一下自己(技术背景、工作经历、学习经历)
我毕业工作已经3年了,主要是在嵌入式底层技术开发这块。前面 2 年在物联网领域,现在转到了工业自动化行业。工作内容主要涉及到操作系统及中间件的移植、驱动调试等。
Q:您是怎么和RT-Thread结缘的?是什么让你对RT-Thread始终抱有热情的?
在第一家公司实习的时候领导提了一下后我去了解了下,发现它和 uCOS、FreeRTOS 用起来完全不一样,“小而美” 的理念贯穿了全部,特别是 Env 和 设备框架当时让我感觉很新奇,当时毕设也刚开始时间还很多就想着把它用起来。野火哥的 《RT-Thread 内核实现与应用开发实战指南》 这本书对我当时的学习起了很大的帮助。
刚开始还是萌新的时候加了一个群(具体是哪个忘记了),里面的人都很热情,社区和群也很活跃,自己在群友的帮助下也慢慢成长了起来。直到现在 RT-Thread 的社区也依旧非常活跃和开放,也认识了很多朋友探讨技术和生活。因为这样一群有趣热情的人,我的学习成长之路不孤单。
Q:作为RT-Thread社区杰出贡献奖的获得者,能否分享您的社区贡献经历或者经验吗?
第一次贡献还是毕设的时候第一次提交 Libmodbus 软件包,跟着官方的软件包提交教程一步步操作,涉及到要将自己的仓库的分支合并到官方也不是一次成功,主要是对于一些 git 的操作也不是很熟悉。
工作以后随着深入使用 RT-Thread,总觉得有些组件或软件包用起来不习惯,就想着我要自己造轮子。从最简单的 Led 开始到按键、网络调试、Ftp 服务器,自己的轮子也慢慢多了起来,一看人家都有全家桶我也要有就命名为 Agile 全家桶吧。每隔一段时间将自己的一些想法抽象出来作为新的家庭成员。
Q:您开发的Agile系列软件包颇受开发者好评,在这开发过程中有什么难忘的回忆吗?
文档!文档!还是文档!一样东西再好用但是你没有说明书或者是天书那就很难推广出去,可能自己某一天再去看它都会想我这写的啥?
最开始的时候写文档还是比较随意的,草草几百字结束,哪管洪水滔天。后面接触到了 Doxygen 后发现原来文档还能这样写,这时候我又立了个 Flag,我要把 Agile 全家桶文档重写,接下来就是痛苦的一段日子了,首当其冲的是 Agile Modbus,那几个晚上和周末熬夜写文档日子到现在还能记得,一个一个字憋出来的感觉让我想起来我上学写作文的时候。光有文档还不行,让开发者好用还要有完整的例子才行,接下来又是一段痛苦的日子。就这样 Agile Modbus 呈现出了现在的版本。
当文档通过工具生成出来的时候感觉之前的努力都是值得的。
Q:您在使用RT-Thread进行项目开发时,遇到最大的难点是什么?
应该是设备框架和 POSIX 吧,设备框架本就是一个新奇的东西,而且 RT-Thread 提供了很多的设备框架能够让你傻瓜式用起来,但是如何实现自己的底层驱动接入设备管理呢,这需要你去认同它的理念,忍过一段不适的时间。同时 POSIX 的对接也是一个很大的难点,select 实现的原理及如何对接更是需要对设备框架有一个很深的了解。
Q:在嵌入式开发方面,您是通过哪些方式来提升自己的开发技能的呢?
像 RT-Thread 贡献代码就是一个很好提升自己技能的方法。同时自己用到的组件或软件包中有比较好的想法的时候,花时间研究一下人家的代码,学习思想。一些人家的开源项目也可以拿来学习。自己突然想到什么好点子的时候把它实现出来且拿出来和大家分享讨论。
Q:你最喜爱的开发工具有哪些?在日常工作中会用到哪些?
最喜欢的工具 Env、Git 和 VS Code吧。VS Code 中很多插件都很有用,并且配合 Env 工具生成配置文件后写代码很流畅。
Q:工作/学习期间有遇到什么问题或挑战,您是怎么解决的呢?
我会尽可能的去解决工作中的难题,不拘泥于一种方法,卡住的时候和同事或朋友一起讨论下发散思维,要讲出来,我发现有好多问题自己描述着突然灵光就出现了。
Q:对于想要学习RT-Thread的开发者,您有哪些建议/经验想与他们分享?
学习的枯燥是不可避免的,但是了解透彻 RT-Thread 的设计思想才能在使用中更加得心应手,我建议买本官方的书籍花一段时间学习熟悉它的机制。同时可以从简单 demo 开始实现起来,一个一个模块的试过去看现象。遇到问题的时候可以在论坛上提问,论坛有很多热心的大神。
Q:您认为RT-Thread社区有哪些做得比较好的地方?还有哪些地方需要改进?
社区活跃度高,对开发者的响应很及时且各种线上线下活动很多。希望对一些好用的组件和软件包出个专门的推荐,让更多开发者选择起来更方便。
相关推荐
蒙古国寺庙shp信息点wgs84.zip
蒙古国寺庙shp信息点wgs84.zip
【电力系统状态估计与PMU(相量测量单元)】使用WLS和PMU来估计系统的电压幅值和角度还将这些值与使用Newton-Raphson方法获得的状态进行比较(Matlab代码实现)
内容概要:本文系统阐述了基于加权最小二乘法(WLS)融合相量测量单元(PMU)量测数据进行电力系统状态估计的理论与实现方法,重点研究了如何利用PMU提供的高精度、高同步性的电压和电流相量信息,构建精确的量测方程,并将其集成到传统的WLS状态估计算法中,以实现对系统节点电压幅值和相角的高精度估计。文中详细描述了WLS-PMU联合估计模型的数学推导过程,包括状态变量定义、量测函数建立、雅可比矩阵计算及迭代求解流程,并通过Matlab编程实现了该算法。研究进一步将WLS-PMU的估计结果与基于传统SCADA量测和牛顿-拉夫森(Newton-Raphson)潮流计算的状态估计结果进行对比分析,通过仿真验证了PMU的引入能显著提升状态估计的精度、收敛速度和抗噪声能力,为现代电力系统的高精度实时监控与安全分析提供了有效的技术手段。; 适合人群:具备电力系统分析、现代控制理论基础,熟悉状态估计、潮流计算原理,并能熟练运用Matlab进行仿真实验的电气工程专业高年级本科生、研究生及从事电力系统自动化、智能电网相关领域的科研人员和技术工程师。; 使用场景及目标:① 掌握融合PMU量测的WLS状态估计模型的完整构建方法与理论依据;② 学习并掌握在Matlab环境中实现WLS算法及Newton-Raphson潮流计算的具体编程技巧与仿真流程;③ 通过定量对比分析,深入理解PMU在提升电网可观测性、增强状态估计鲁棒性方面的核心价值与技术优势。; 阅读建议:建议读者在阅读时紧密结合所提供的Matlab代码,逐行分析算法实现细节,特别是PMU量测方程的处理、权重矩阵的设定以及WLS迭代过程的逻辑。鼓励通过修改系统参数(如网络拓扑、PMU配置数量与位置)、引入不同程度的量测噪声等方式进行扩展性仿真实验,以直观感受不同因素对估计性能的影响,从而深化对状态估计理论精髓的理解。
基于OFDM的基带通信系统仿真平台设计与实现(Matlab代码实现)
内容概要:本文详细介绍了基于OFDM(正交频分复用)的基带通信系统仿真平台的设计与实现,依托Matlab进行代码开发,旨在构建一个完整、可复现的通信系统仿真环境。该平台系统性地实现了通信链路中的核心模块,包括信号调制解调、信道编码、多载波生成、IFFT/FFT变换、循环前缀的添加与去除、信道建模以及接收端的均衡处理等关键环节,能够全面模拟无线通信过程中的物理层操作。通过该仿真平台,研究人员不仅可以深入理解OFDM技术的内在工作原理,还能灵活调整调制方式、编码方案、信道模型等参数,进而开展误码率性能分析与系统优化研究,为实际通信系统的设计与验证提供坚实的理论依据和技术支撑。; 适合人群:具备通信原理基础知识,熟悉Matlab编程,从事通信工程、电子信息或相关领域研究的研究生、科研人员及工程师。; 使用场景及目标:① 学习和掌握OFDM通信系统的基本架构与关键技术;② 在Matlab环境中搭建可复现的基带通信仿真平台,用于教学演示或科研验证;③ 通过调整调制方式、编码方案、信道模型等参数,开展系统性能评估与优化研究。; 阅读建议:建议读者结合通信原理教材,按照模块逐步实现各功能组件,并通过仿真结果分析其影响,从而加深对OFDM系统工作机制的理解。
本资源来源于vector官方知识库,KB0021581-CAPL-系统变量函数-数据类型-独立函数参数
本资源来源于vector官方知识库,KB0021581_CAPL_系统变量函数_数据类型_独立函数参数
《Linux操作系统应用项目教程》全套PPT课件2026
《Linux操作系统应用项目教程》全套PPT课件2026


