简介
RT-Thread是一个实时操作系统,移植到stm32单片机上。
常见的操作系统:
- Windows、Linux、MAC
- 安卓、IOS
- 鸿蒙操作系统
RT-Thread是一个集实时操作系统(RTOS)内核、中间件组件和开发者社区于一体的技术平台。
RT-Thread也是一个组件完整丰富、高度可伸缩、简易开发、超低功耗、高安全性的物联网操作系统。
RT-Thread具备一个IoT OS平台所需的所有关键组件,例如GUI、网络协议栈、安全传输、低功耗组件等等。
经过11年的发展,RT-Thread已经拥有一个国内最大的嵌入式开源社区,同时被广泛应用于能源、车载、医疗、消费电子灯多个行业,累积装机量超过8亿台,成为国人自主开发、国内最成熟稳定和装机量最大的开源RTOS。
RT-Thread拥有良好的软件生态,支持市面上所有主流的编译工具,如GCC、Keil、IAR等,工具链完善、友好,支持各类标准接口,如POSIX、CMSIS、C++应用环境、JavaScript执行环境等,方便开发者移植各类应用程序。商用支持所有主流MCU架构。
RTT OS概述
RT-Thread,Real Time-Thread,是一个嵌入式实时多线程操作系统,基本属性之一是支持多任务,在RT-Thread系统中,任务通过线程实现的。
RT-Thread主要采用C语言编写,浅显易懂,方便移植。
把面向对象的设计方法应用到实时操作系统设计中,使得代码风格优雅、架构清晰、系统模块化并且可裁剪。
针对资源受限的微控制器(MCU)系统,可通过方便易用的工具,裁剪出仅需要3KB Flash,1.28KB RAM内存资源的NANO版本。
而对于资源丰富的物联网设备,RT-Thread又能使用在线的软件包管理工具,配合系统配置工具实现直观快速的模块化裁剪,无缝地导入丰富的软件功能包,实现类似Andriod的图形界面及触摸滑动效果、智能语音交互等功能。
相较于Linux操作系统,RT-Thread体积小,成本低,功耗低,启动快速,实时性高、占用资源小,非常适用于各种资源受限的场合。
RT-Thread架构
近年来,物联网(Internet Of Things,IoT)概念广为普及,物联网市场发展迅猛,嵌入式设备的联网已是大势所趋。
终端物联网使得软件复杂性大幅增加,传统的RTOS内核很难满足需要。
物联网操作系统是指以操作系统内核(可以是RTOS、Linux等)为基础,包括文件系统、图形库等较为完整的中间件组件,具备低功耗、安全、通信协议支持和云端连接能力的软件平台,RT-Thread就是一个IoT OS。
RT-Thread与FreeRTOS、uC/OS的主要区别之一是,它不仅仅是一个实时内核,还具备丰富的中间层组件。
RT-Thread分类
标准版本如上图
Nano版本
RT-Thread Nano是一个极简版的硬实时内核,由C语言开发,采用面向对象的编程思维,具有良好的代码风格,是一款可裁剪的、抢占式实时多任务的RTOS。
其内核资源占用极小,功能包括任务处理、软件定时器、信号量、邮箱和实时调度等相对完整的实时操作系统特性。
适用于大量使用的32位ARM入门级MCU的场合。
包含支持的CPU架构与内核源码,还有可拆卸的FinSH组件。
特点
Smart版本
RT-Thread Smart是基于RT-Thread操作系统衍生的新分支,面向带MMU,中高端应用的芯片,例如ARM Cortex-A系列芯片,MIPS芯片等。
rt-smart在RT-Thread操作系统的基础上启用独立、完整的进程方式,同时以混合微内核模式执行。
RT-Thread Smart是基于RT-Thread操作系统上的混合操作系统,简称为rt-smart,它把应用从内核中独立出来,形成独立的用户态应用程序,并具备独立的地址空间(32位系统上是4G的独立地址空间)。类似于Linux。
标准版RTT移植
下载安装RT-Thread_Studio,安装完成后注册并登录后方可创建RTT工程。
int main(void)
{
int count = 1;
while(count++)
{
LOG_D("Hello RT-Thread!");
rt_thread_mdelay(1000);
}
return RT_EOK;
}
通过修改board.c的SystemClock_Config()更改系统时钟。
选择HSE,外接高速晶振比内部RC电路稳定。
添加FinSH
双击RT-Thread Settings进入配置,打开组件,勾选FinSH Shell,保存配置。此操作把FinSH组件的源码加入工程中。