“ 工欲善其事,必先利其器”
关注rt-thread已经两年多了,从2017年的第一次接触到现在已经能够熟练的使用这个操作系统工具了。现在我想谈一谈嵌入式与操作系统的理解,将自己的想法和大家分享。
01
—
初次接触rt-thread
2017年以前,对于rtos最多接触到的还是ucos,freertos之类的实时操作系统。当时公司使用的是君正x1000硬件。君正x1000官网上提供的是Linux版本的。由于Linux的启动速度慢,系统庞大。所以看到rt-thread的bsp包中有支持x1000平台,所以对这个系统进行一段时间的探究。
最开始的时候,x1000的bsp包中只有很少的外设驱动,而我主要的工作就是在rt-thread框架的基础上调通摄像头驱动和语音驱动。所以在很长一段时间内都在学习和思考rt-thread的基本使用,包括驱动框架和系统调度方面的问题。后来对这个系统慢慢的有了一些认识。rt-thread的在2017年的优势就是这些,支持一些国产的芯片和一些相关的bsp包,不需要自己进行移植,加快了产品成型的速度。并且驱动框架也很清晰,便于开发。还有就是如果之前有过Linux代码编写经验的工程师,基本上上手很快,代码风格完全的一致。所以从Linux转到做物联网,学习rt-thread是一个不错的选择。
再谈一谈rt-thread在项目上的使用的问题。其实rt-thread系统内核基本上已经比较完善,没有太多的bug。但是君正x1000的bsp包中的bug就比较的让人难受了。其中小内存管理和slab内存管理切换后系统运行起来就卡死的问题,音频框架不能打断的问题,以及后面的串口底层的接收的问题。其实这只是一个很小的部分,基本上在做出产品的过程中,也摸索了不少解决问题的办法。由于君正x1000的rt-thread的bsp维护的并不是很好,自己也在这个基础上下了很大的功夫。所以在用到bsp包的时候,一定要非常熟悉rt-thread的内核代码,这样即使出现了故障也能很快的定位问题所在。
后来在熟悉了rtt内核代码后,就在该系统上做一些业务逻辑。一方面完善产品功能,另一方面继续学习和跟进rtt的动态信息。
02
—
rt-thread的发展过程
工欲善其事,必须利其器。我认为得力于更加方便的工具的使用,使得rtt上手比较容易。也提高用户体验。
记得2018年,rtt一方面大力发展iot方面,贡献许多很好的东西,比如网络方面,提供AT指令框架,WIZNet网卡指令框架。并且大量支持软件包的扩充。各种软件包的加入让系统更加健壮。
在社区建设方面,文档的完善是非常重要的,rtt在这一点上确实做得不错,文档很详细,基本上认真看一遍然后操作就可以使用了。
03
—
使用rt-thread有什么好处
说到底其实rtt只是一个工具而已,就像其他的rtos一样。得益于众多的软件包的提供,可以省很多事情。写很多功能不必每次都自己重构或者自己移植。除了写协议和业务逻辑之外,底层都可以按照rtt的驱动框架进行。降低程序的耦合性。
另外开源精神的也是应该提倡的,大家共同维护一份好的代码,这将会让系统更加的稳定。所以我觉得,国内的工程师也应该在有开源精神,支持国产操作系统的发展,做出自己的贡献。从长远来看,使得rtt的生态更加繁荣与昌盛。
另外学习使用rtt可以让自己学习更多更好的编码技巧,因为各种软件包的提供让工程师有更多机会接触更好的代码,阅读代码的过程中,让自己学到很多技巧。
04
—
对rt-thread未来的思考
目前国产操作系统陆续的出现,华为的liteos,阿里的alios,腾讯os,各种物联网操作系统出现也对rtt提出更高的要求和挑战。但是只要有繁荣的生态,并且不断完善的软件包生态,这样就会让rtt社区有更多的用户。
rt-thread一方面可以在文档和技术支持服务上做的更加的完善和平民化,让工程师更好的去使用这个系统。然后就是举办一些有意义的活动,让更多人知道和使用。
还可以对于最新的risc-v芯片提供更好的操作系统。对于这种芯片定制的操作系统也是一片很大的市场。
然后提供柿饼UI的技术宣传,可以让更多人了解柿饼UI的优势。针对目前的嵌入式GUI,目前开源的littlevgl很火,周立功的AWTK也不错,如果柿饼UI的界面更加友好,未必不会是一个非常好的选择方向。
最后,我想说一句话:"追求卓越,成功就会在不经意间追上你"。
本文分享自微信公众号 - 嵌入式IoT(Embeded_IoT)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。
来源:oschina
链接:https://my.oschina.net/u/4239621/blog/4351676