OpenEdv-开源电子网

 找回密码
 立即注册

扫一扫,访问微社区

正点原子全套STM32开发资料,上千讲STM32视频教程,RT1052教程免费下载啦...

查看: 1829|回复: 9

从RT-Thread中我们能学到什么?

[复制链接]

  离线 

7

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
75
金钱
75
注册时间
2017-8-28
在线时间
18 小时
发表于 2017-9-7 10:16:16 | 显示全部楼层 |阅读模式
正点原子公众号
本文将为大家简要介绍一下笔者使用和学习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的代码风格是十分优秀的。在工作中,很多时候嵌入式软件工程师尤其是单片机软件工程师使用的芯片资源相对比较匮乏,RAM和ROM也略显局促,节省资源也成了优先级比较高的事情,而这也成了许多工程师代码不规范的借口。鲁棒性、模块化、可拓展、高内聚、低耦合,这种高大上的名词总是不绝于耳,相信大家也在各种场景下听过不少次。可抛去这些高大上的名词,到底什么才是优秀的代码呢?

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。我想熊谱翔先生的初心也仅仅是想做一款真正优秀的实时操作系统吧。如同《三傻大闹宝莱坞》中,兰彻达斯所说:“追求卓越,成功就会在不经意间追上你”。
回复

使用道具 举报

  离线 

1

主题

34

帖子

0

精华

高级会员

Rank: 4

积分
874
金钱
874
注册时间
2015-4-5
在线时间
457 小时
发表于 2017-10-8 21:05:09 | 显示全部楼层
顶一个
回复 支持 反对

使用道具 举报

  离线 

7

主题

63

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
264
金钱
264
注册时间
2017-2-14
在线时间
52 小时
发表于 2017-10-9 11:08:26 | 显示全部楼层
回复 支持 反对

使用道具 举报

  离线 

1

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
59
金钱
59
注册时间
2017-2-26
在线时间
10 小时
发表于 2017-10-10 08:06:39 来自手机 | 显示全部楼层
厉害了!
回复 支持 反对

使用道具 举报

  离线 

17

主题

90

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
291
金钱
291
注册时间
2017-7-14
在线时间
66 小时
发表于 2017-10-18 10:28:38 | 显示全部楼层
正点原子公众号
感谢分享
回复 支持 反对

使用道具 举报

  离线 

0

主题

6

帖子

0

精华

新手入门

积分
30
金钱
30
注册时间
2016-5-28
在线时间
2 小时
发表于 2018-1-2 10:21:16 | 显示全部楼层
分析的非常深入,学习了
回复 支持 反对

使用道具 举报

  离线 

8

主题

76

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1957
金钱
1957
注册时间
2015-11-5
在线时间
351 小时
发表于 2018-1-5 20:37:26 | 显示全部楼层
谢谢分享
回复 支持 反对

使用道具 举报

  离线 

4

主题

192

帖子

0

精华

高级会员

Rank: 4

积分
579
金钱
579
注册时间
2018-1-29
在线时间
71 小时
发表于 2018-2-6 06:52:25 | 显示全部楼层
厉害了,我的歌!
回复 支持 反对

使用道具 举报

  离线 

2

主题

53

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
352
金钱
352
注册时间
2017-11-15
在线时间
33 小时
发表于 2018-2-9 09:39:17 | 显示全部楼层
先学会用一个操作系统
回复 支持 反对

使用道具 举报

  离线 

1

主题

3

帖子

0

精华

新手上路

积分
20
金钱
20
注册时间
2017-10-1
在线时间
1 小时
发表于 2018-5-5 10:41:24 | 显示全部楼层
赞 写得好!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则




关闭

"原子哥”推荐上一条 /1 下一条

QQ|联系我们|手机版|官方淘宝店|新浪微博|微信公众平台|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2018-7-23 19:52

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表
/* */