前言
目前市面上有很多种RTOS(Real-time operating system,实时操作系统),还在犹豫选择学习哪种RTOS的小伙伴,推荐你们学习RT-Thread操作系统,这也是本人最喜欢的一个RTOS,喜欢的原因很简单,国产、开源、资料丰富以及有丰富的生态和论坛,最重要的一点就是资料都是中文的,这点很适合英语菜鸡的我。
1、RT-Thread简介
RT-Thread 诞生于2006年,是国内以开源中立、 社区化发展起来的一款高可靠实时操作系统 ,由睿赛德科技负责开发维护和运营 。因其十五年的沉淀积累, 专业化的运营推广,其高可靠性、安全、高可伸缩性和中间组件丰富易用等特性极大地满足了市场需求。目前已经成为市面上装机量最大(超20亿台)、开发者数量最多(超15万)软硬件生态最好的操作系统之一,被广泛应用于航空、国防军工、电力、轨道交通、车载、工业自动化、消费电子等众多行业领域。
目前的生态伙伴有我们熟知的ARM公司、阿里的平头哥、恩智浦(NXP)公司,具体的看下图:
2、RT-Thread 的作用
在大学期间,我想很多人都是按部就班的跟着课程走,先学STC51,再学STM32有的或者是TI公司的DSP芯片,首先点个灯、驱动一下数码管、按键,然后使用IIC驱动一下EEPROM、使用SPI协议驱动W25Q64模块,有的也学习并做过实验例如CAN外设、SDIO外设、ADC等等,但这些都属于裸机开发,何为裸机开发呢,就是我们熟知的将所有外设都放到main函数的while(1)中,它的执行方式就是按照顺序执行:
只有当ADC检测结束后才可执行OLED显示,OLED显示执行结束后执行串口接收,这样循环往复的顺序执行,当我们使用一些对时间有精准要求的器件时,再按照这种顺序执行就会读取的数据有误,此时也可以借助中断来解决这个难题,但当使用的外设越来越多时,裸机开发就显得力不从心了,此时应该选择使用RTOS了。
随着 MCU 硬件性能的提升、外设的增加以及软件功能需求的增加,越来越多项目采用 RTOS 的开发方式。一方面裸机开发方式的软件框架不清晰,对后续扩展功能极其不利;另一方面,由于软件复杂性的增加,裸机开发对工程师的要求越来越严苛,过多使用中断等因素,都会增加系统的不可靠性。
本质上任何一款RTOS 的首要目标就是解决这些问题。RT-Thread 内核的主要功能是向下管理所有硬件资源,向上为应用程序提供 API 接口和软件服务,所有任务在内核的管理、同步和调度下有序运行。
简单来说,使用 RT-Thread 能够带来如下好处:
- 支持任务并发处理
- 容易扩展新的功能
- 破解应用的复杂性
- 增强代码可移植性
- 节省软件开发时间
- …
了解过RTOS的人就会说了,其他的RTOS也都具备这些功能啊,别急,RT-Thread的主要特点在于:
它支持非常多的硬件平台,还拥有及其丰富的组件和软件包(包括文件系统、网络、IoT、AI、传感器等等),提供了便捷的开发环境和 IDE 工具,以及众多的文档资料,以及丰富的生态与论坛,最最最最重要的一点,它的资料全是中文,就这一点你怎能不爱呢?
3 RT-Thread 的特点
相比其他操作系统,RT-Thread 的主打特性是 “小而美的物联网操作系统”。
“小” 体现在 RT-Thread 的体积小,最小资源占用 1.2KB RAM 和 2.5KB flash。RT-Thread 可伸缩、易裁剪的特性,帮助用户在需要一个适用的操作系统的时候,轻松地进行裁减,适应到需要的场景,不占用过多的资源。
“美” 不单止代码质量和代码风格,还有 RT-Thread 的使用和开发体验,以及增加了小程序、SMP 多核调度、PSA 安全支持等多项实用的新功能,使得 RT-Thread 系统能实现灵活极简的应用开发,能扩展至众多高性能、高安全的应用领域。
“物联网” 则体现在 RT-Thread 针对物联网场景提供的众多组件和软件包,比如 AT组件、WiFi、蓝牙、LoRa、Sensor、AI 等等。