大家好!
4月份,有幸的去参加了RT-Thread(简称RTT)的为期一下午的培训,RTT的培训,我参加了两次,也是在去年的这个时候,他们在一所大学举行,那时候,才刚刚发布V3.0.0版本,听的稀里糊涂。
这次,明显不一样了,正式了很多,感觉很有收获,坚定我去学习的想法。
在众多的RTOS中,如uCOSII、uCOSIII、FreeRTOS、RTX等常见主流RTOS,FreeRTOS以免费、开源的方式,占有很大的市场份额(这里我只找到2017年的排行榜)。
RT-Thread系统也是一款开源、免费的操作系统。其内核与传统的uCOSII、uCOSIII、FreeRTOS、RTX等RTOS没什么两样,基本上都差不多,。
真正让我心动的是其配套组件和相关的软件包。传统的RTOS其配套组件也就几种:USB、TCP/IP协议栈、文件系统、GUI、调试组件等这么几种。
而RTT在此基础上进行了深度的开发,囊括了各种软件包,如MODBUS、CANopen、AT组件、低功耗组件、固件升级、POSIX接口等等,各种芯片的驱动程序。给我的感觉就是,RTT很有可能会成为下一个arduino。
初识RT-Thread
RTT作为一款国产的RTOS的系统,能发展到现在,确实不容易,如今发布的最新的版本是V4.0.0,其发展历程大致如下:
早2017年和2018年,借助物联网的概念,迅速的走到了广大的开发者面前,激发起大家的学习兴趣。不得不给熊谱翔先生的这一波操作点个赞。
在我们下载的MDK5中,有一个RT-Thread的pack。
这个RTT的PACK仅仅是一个Nano版本,标准版本则需要到RT-Thread的官网上进行下载。Nano版本是可以转化到标准版本的。
RTT的低版本到高版本转换也是相当的容易的,转换方法可以去他们的文档中心查阅相关的资料。所以在版本之间的过渡,RTT做的还是相当的不错。
便捷的ENV工具和丝滑般开发体验
之前一直使用FreeRTOS,移植的时候,一直都是直接操作.c .h文件,而RTT则可以通过menuconfig,对RTT进行配置。
在使用scons命令生成目标工程
RTT在很大的程度上,借用了Linux的概念。 比如,在使用RTT的时候,会有一个调试串口,用户可以使用相关的命令进行交互和配置设备。
又比如,IIC、SPI设备、字符设备、块设备等概念:
这些概念,在其他的RTOS中是没有的。
特别是在开发STM32的时候,结合STM32CubeMX软件,使得开发变得异常的简单。两者相辅相成。
丰富的软件组件
RT-Thread作为一个开放的平台,其目前得到RTT官方认可的组件,目前已经达到了100多个,这些软件组件代码,全部托管在RTT公开的代码仓库种,RTT的官网上也能下载。这些组件种类繁多,使得RTT的生态逐步完善。
其支持POSIX API接口,就意味着,有的LINUX的程序,拿到RTT上,也是可以直接运行的(在那天的培训课上,我还真的成功的移植了)。下面就举几个例子说说,这些组件。
RTT提供的基础组件
包含了好几种常用的文件系统,
协议栈和设备框架,将硬件设备名字化、对象话,使得上层应用与硬件分离隔开。有利于程序跨平台移植和通用。
通用的Bootloader组件
RTT,发布这款组件,相当有特色,其支持断点、固件还原、加密算法等等,这些功能RTT以组件的方式进行发布,拿来即用。
SAL套接字
使得RTT在很多的网络协议编程方便,更加灵活
AT组件
在使用AT模块的时候,再也不用去操心指令解析和发送机制了,RTT又现成的组件,再也不烧脑去写AT解析函数。
柿饼UI
虽然没有亲自用过,但是网上还是又很多的柿饼UI的视频,感觉不错
丰富的网络协议
工业上常用的CANpen,Modbus等等协议,在RTT上都有对应的软件包。
支持脚本语言开发
一些我们在其他平台上些脚本程序,拿到RTT上依然能使用
........
RTT还有很多有意思的软件包和组件,比如低功耗组件、LOT相关的软件包,系统工具等等。
最为关键的是,使用和学习这些组件,都有对应的说明:
最后,所以
如此优秀的一款国产的RTOS,我还有什么理由不去学习和使用它?
原创作品,未经权利人授权禁止转载。详情见转载须知。 举报文章
我要举报该内容理由
×