0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一个十余年历史的国产RTOS,从RT-Thread中我们能学到什么?

电子工程师 来源:未知 作者:电子大兵 2017-09-05 16:46 次阅读
柴胡 · 所言

柴胡,目前在九安医疗从事物联网智能设备的开发和单片机嵌入式驱动的开发工作,是RT-Thread和嵌入式技术爱好者。

本文将为大家简要介绍一下笔者使用和学习RT-Thread过程中的体会和感悟,希望能帮助初识RT-Thread的人建立一个初步的印象,避免产生入宝山而空回的遗憾。笔者水平有限,目前也正在学习和使用RT-Thread的过程中,希望本文的拙见能抛砖引玉,如有纰漏,还请不吝赐教。

现在是一个快节奏的时代,技术领域也是如此。近些年,IoT备受资本青睐,各种新技术新方案层出不穷,质量也参差不齐,这边唱罢那边登台,以至于有些技术还未被人熟知,就被淹没在长河中了。客观的说,RTOS领域玩家众多,仅笔者短短的从业时间,国产RTOS就听闻了五、六款之多。

RT-Thread作为一个有十余年历史的国产RTOS,经历了长时间的考验和用户的青睐,目前发展趋势蒸蒸日上,也即将发布RT-Thread 3.0,其中必然有值得我们思考和学习的地方,我们也可以从中汲取到不少宝贵的经验。

软件工程管理

软件工程管理对于软件研发是十分重要的,甚至可以说是开发过程的基石。公司中有高水平的嵌入式软件程序员,也有刚入职的实习生,水平难免参差不齐,当共同协作开发一个项目时,如何彼此协调也是一个难题。

时至今日,很多公司仍然在使用落后的代码管理方式。有些甚至使用把代码压缩成一个个的压缩包来做版本管理。同事之间的协作依靠互相发送文件,每次接收到同事的新文件首先要花半天时间解决编译error,甚至还要在本地对同事的代码进行修改,这样,软件基本处在半失控的状态,某次改动产生问题,就要从浩瀚的压缩包海洋里挑选一个,进行版本回退。在开发一个大项目的时候,这种情况下甚至会出现人数越多,开发难度和周期越大的情况。

而RT-Thread,提供了一个教科书级的范例。RT-Thread由13000多个文件构成,支持各类设备和芯片近70款,从代码量和组织方式上来说,是一个相当庞大的软件工程。在近十年的时间里,至少有将近100个开发者参与到了RT-Thread的开发中,使得RT-Thread稳步迭代,而这也是有一定的维护难度的。RT-Thread将代码部署在Github上,并在此基础上使用了Travis CI进行自动化编译测试,使得开发者可以有条不紊的进行迭代开发,并将自己的成果提交至master分支,在提交代码的第一时间通过Travis CI进行自动化编译测试,使得一些无法编译通过的问题,在第一时间就被发现。

RT-Thread使用scons自动化代码构建工具。初识RT-Thread,很难想象RT-Thread通过一个代码仓库,对近70个芯片的IAR、MDK和GCC的工程和工具链提供支持。RT-Thread使用了scons,使得只要敲几行指令,就可以生成所需环境和工具链的对应的工程。也就是说,对于大多数芯片,所谓移植RT-Thread,只需要几个scons指令进行自动化构建。我相信对于大多数中小公司的软件项目,无论从规模还是参与人数都没有RT-Thread这么庞大,维护难度也远小于RT-Thread。但尽管如此,工程维护也是软件工程管理的老大难问题,无疑,从RT-Thread中,我们可以借鉴不少经验。

代码风格与技术

RT-Thread的代码风格是十分优秀的。在工作中,很多时候嵌入式软件工程师尤其是单片机软件工程师使用的芯片资源相对比较匮乏,RAMROM也略显局促,节省资源也成了优先级比较高的事情,而这也成了许多工程师代码不规范的借口。鲁棒性、模块化、可拓展、高内聚、低耦合,这种高大上的名词总是不绝于耳,相信大家也在各种场景下听过不少次。可抛去这些高大上的名词,到底什么才是优秀的代码呢?

RT-Thread虽然没有强调过这些高大上的名词,但是他毫无疑问用代码对这些名词进行了解释。RT-Thread的代码风格是类Linux/Unix的代码风格。这种风格不仅仅体现在函数、变量的命名规范,而是深入到了RT-Thread的核心。例如,RT-Thread实现了一个设备驱动框架,将设备类型分为了字符设备、块设备、网络接口设备、内存设备、CAN设备、RTC设备、声音设备、图形设备、I2C总线设备等等等等。初始化时通过字符串(用户可自定义的一个易于记忆的名称)与设备驱动绑定,并将驱动注册到内核,使用时只需调用一个字符串,即可匹配到该设备,无需通过各种头文件包含和二次封装,即可实现隔离和解耦。

RT-Thread提供了Finsh和msh组件,这是非常有特色组件,可以在调试和开发中与系统内核进行便捷的交互,使用十分方便。如何在资源紧缺的嵌入式软件开发中,写出优秀的代码,RT-Thread十分值得我们思考和学习。

开源精神

RT-Thread是国内第一梯队的嵌入式开源项目,也正因为开源和社区化,RT-Thread得以茁壮发展,并在开发人员中赢得了极高的口碑,有不小数量的开发者参与到了RT-Thread的开发中。RT-Thread实时操作系统遵循GPLv2+许可证,实时操作系统内核及所有开源组件可以免费在商业产品中使用,不需要公布应用源码,没有任何潜在商业风险。这种开源精神十分令人钦佩。

得益于RT-Thread的开源,我们可以将自己的代码提交,经过审核后合并至master分支,在使用过程中,当某个模块出现疑问或问题,可以直接与开发者甚至创始人直接进行讨论,这种体验是十分奇妙,也是其他RTOS所不具备的。

RT-Thread倡导大家参与RT-Thread开发的代码编写、bug修复、文档完善等等各项进程中。而实际上一旦自己提交的东西被采纳和合并,也是一件十分有成就感的事情。

我们也可以学习RT-Thread的开源精神,将自己业余时间的代码开源,或者积极参与到开源项目中,在方便大家使用的同时,通过进行更广泛的讨论,也相当于有了更多的人帮助review,接受大家的批评和建议,实现自己更快的进步。

一些思考

现在大家都十分渴望成功,并且渴望快速成功。在各种融资奇迹下,渐渐地,大家希望,趁着风口,激进地在短时间内完成一款产品,然后借着风口一飞冲天。也渐渐地,失去了精心打磨耕耘一个产品的耐心。RT-Thread在数千万装机量和获得天使轮近千万融资的背后是十年如一日的细心耕耘和精心呵护。

RT-Thread的创始人熊谱翔先生,起初是在2005年,面对RTOS现状,利用业余时间开发RT-Thread。我想熊谱翔先生的初心也仅仅是想做一款真正优秀的实时操作系统吧。如同《三傻大闹宝莱坞》中,兰彻达斯所说:“追求卓越,成功就会在不经意间追上你”。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • RTOS
    +关注

    关注

    20

    文章

    776

    浏览量

    118795
  • RT-Thread
    +关注

    关注

    31

    文章

    1148

    浏览量

    38868

原文标题:从RT-Thread中我们能学到什么?

文章出处:【微信号:RTThread,微信公众号:RTThread物联网操作系统】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    4月25日北京站RT-Thread线下workshop,探索RT-Thread混合部署新模式

    4月25日,下午我们将在北京举办RT-Thread混合部署线下workshop,在瑞芯微RK3568平台上实现同时运行RT-Thread和linux,本次workshop邀请到RT-Threa
    的头像 发表于 04-16 08:35 88次阅读
    4月25日北京站<b class='flag-5'>RT-Thread</b>线下workshop,探索<b class='flag-5'>RT-Thread</b>混合部署新模式

    4月10日深圳场RT-Thread线下workshop,探索RT-Thread混合部署新模式!

    4月10日我们将在深圳福田举办RT-Thread混合部署线下workshop,在瑞芯微RK3568平台上实现同时运行RT-Thread和linux,本次workshop邀请到RT-Thread
    的头像 发表于 03-27 11:36 420次阅读
    4月10日深圳场<b class='flag-5'>RT-Thread</b>线下workshop,探索<b class='flag-5'>RT-Thread</b>混合部署新模式!

    4月10日深圳场RT-Thread线下workshop,探索RT-Thread混合部署新模式!

    4月10日我们将在深圳福田举办RT-Thread混合部署线下workshop,在瑞芯微RK3568平台上实现同时运行RT-Thread和linux,本次workshop邀请到RT-Thread
    的头像 发表于 03-27 08:34 151次阅读
    4月10日深圳场<b class='flag-5'>RT-Thread</b>线下workshop,探索<b class='flag-5'>RT-Thread</b>混合部署新模式!

    i.MX RT1170:VGLite移植RT-Thread Nano过程讲解(上)

    RT-Thread 是国人自主研发的开源实时操作系统(RTOS),RT-Thread Nano 是极简版的硬实时内核,内存占用小,移植简单。VGLite 是 NXP 提供的轻量级 2D 图形 API,基于 FreeRTOS 实现
    的头像 发表于 11-09 11:20 1236次阅读
    i.MX <b class='flag-5'>RT</b>1170:VGLite移植<b class='flag-5'>RT-Thread</b> Nano过程讲解(上)

    2023年RTOS榜单:国产RT-Thread入围

    转载来源:StrongerHuang 号称全球最大开源软件开发平台和仓库的SourceForge网站有一份“2023年RTOS榜单”: VxWorks RT-Thread FreeRTOS Mbed
    的头像 发表于 10-28 16:15 731次阅读
    2023年<b class='flag-5'>RTOS</b>榜单:<b class='flag-5'>国产</b><b class='flag-5'>RT-Thread</b>入围

    2023年RTOS榜单:华为LiteOS 国产RT-Thread入围 μCOS系统落榜

    号称全球最大开源软件开发平台和仓库的SourceForge网站有一份“2023年RTOS榜单”: VxWorks RT-Thread FreeRTOS Mbed OS
    的头像 发表于 10-27 19:04 2289次阅读
    2023年<b class='flag-5'>RTOS</b>榜单:华为LiteOS <b class='flag-5'>国产</b><b class='flag-5'>RT-Thread</b>入围 μCOS系统落榜

    基于rt-thread的socket通信设计

    最近再研究 rt-thread 的通信 ,想设计出 eps8266(多个) rt-thread(作为中控) 服务器的通信框架,使用的开发板是 潘多拉
    的头像 发表于 10-13 15:02 687次阅读
    基于<b class='flag-5'>rt-thread</b>的socket通信设计

    试用RT-Thread Studio(VSCode)

    想尝试RT-Thread studio (VSCode),先下载安装VSCode,再搜索RT-Thread
    的头像 发表于 10-12 10:58 570次阅读
    试用<b class='flag-5'>RT-Thread</b> Studio(VSCode)

    RT-Thread v5.0.2 发布

    RT-Thread 代码仓库地址: ●  https://github.com/RT-Thread/rt-thread RT-Thread 5.0.2 版本发布日志详情: ●  htt
    的头像 发表于 10-10 18:45 775次阅读
    <b class='flag-5'>RT-Thread</b> v5.0.2 发布

    基于 RT-Thread 的 RoboMaster 电控框架(一)

    由于 RT-Thread 稳定高效的内核,丰富的文档教程,积极活跃的社区氛围,以及设备驱动框架、Kconfig、Scons、日志系统、海量的软件包……很难不选择 RT-Thread 进行项目开发
    的头像 发表于 09-19 19:55 416次阅读

    新书上架|RT-Thread带你解密“芯”世界

    夏木荫荫,人间八月,RT-Thread又上新了!自2018年RT-Thread首本书籍问世后,越来越多的创作者因为RT-Thread的自主可控、稳定可靠、友好生态,把RT-Thread
    的头像 发表于 08-22 20:10 452次阅读
    新书上架|<b class='flag-5'>RT-Thread</b>带你解密“芯”世界

    教你手上没有开发板如何跑RT-THREAD STM32应用?

    首先打开 RT-Thread Studio,新建RT-Thread
    的头像 发表于 07-18 16:09 1050次阅读
    教你手上没有开发板如何跑<b class='flag-5'>RT-THREAD</b> STM32应用?

    下周六!上海站RT-Thread线下入门培训!

    好久不见 ,RT-Thread 线下培训终于又和大家见面了! 本次培训就以摩斯密码为背景,了解体验电报员的生活,感受摩尔斯电码里的爱情故事,掌握RTOS 基础知识。 活动详情   2023年7月15
    的头像 发表于 07-07 18:45 358次阅读
    下周六!上海站<b class='flag-5'>RT-Thread</b>线下入门培训!

    就在周日!RT-Thread线下培训西安站!

    好久不见,RT-Thread 线下培训终于又和大家见面了!本次培训就以摩斯密码为背景,了解体验电报员的生活,感受摩尔斯电码里的爱情故事,掌握RTOS 基础知识。 活动详情   2023年5月21
    的头像 发表于 05-18 21:45 315次阅读
    就在周日!<b class='flag-5'>RT-Thread</b>线下培训西安站!

    基于RT-Thread Studio学习

    前期准备:从官网下载 RT-Thread Studio,弄个账号登陆,开启rt-thread学习之旅。
    的头像 发表于 05-15 11:00 2580次阅读
    基于<b class='flag-5'>RT-Thread</b> Studio学习