1、初识RT-Thread
RT-Thread,全称是Real Time-Thread,即嵌入式实时多线程操作系统。其基本属性之一是支持多任务,但是允许多任务同时运行,但是并不是意味着处理器在同一时刻真的执行了多个任务。实际上,一个处理器核心在某一时刻只能运行一个任务,由于任务每次对一个任务的执行时间很短、任务与任务之间通过任务调度器进行非常快速地切换(调度器根据优先级决定此刻该执行的任务),所以给人造成多个任务在同一时刻同时运行的错觉。
2、RT-Thread的架构
随着物联网(Internet Of Things,IoT)的发展,嵌入式设备的联网已经是大势所趋,在这种情况下,物联网操作系统
(IoT OS)的概念应运而生。物联网操作系统是指以操作系统内核为基础,包括如文件系统、图形库等较为完整的中间件组件,具备低功耗、安全、通信协议支持和云端连接能力的软件平台。
RT-Thread与其他的RTOS的主要区别之一是,它不仅仅是一个实时内核,还具备丰富的中间层组件,其结构如下:
具体包括以下的部分:
- 内核层:RT-Thread内核,是RT-Thread的核心部分,包括内核系统中对象的实现,例如多线程及其调度、信号量、邮箱、消息队列、内存管理、定时器等;libcpu/BSP(芯片移植相关文件/板级支持包)与硬件密切相关,由外设驱动和CPU移植构成。
- 组件与服务层:组件是基于RT-Thread内核之上的上层软件,例如虚拟文件系统、FinSH命令行界面、网络框架、设备框架等。采用模块化设计,做到组件内部高聚合,组件之间低耦合。
- RT-Thread软件包:运行于RT-Thread物联网操作系统上,面向不同应用领域的通用软件组成,由描述信息、源代码或库文件组成。
- 物联网相关的软件包:Paho MQTT、WebClient、mongoose、WebTerminal等等。
- 脚本语言相关的软件包:目前支持Lua、JerryScript、Micro Python、PikaScript。
- 多媒体相关的软件包:Openmv、mupdf。
- 工具类软件包:CmBacktrace、EasyFlash、EasyLogger、SystemView。
- 系统相关的软件包:RTGUI、Persimmon UI、lwext4、partition、SQLite等等。
- 外设库与驱动类软件包:RealTek RTL8710BN SDK。
- 其他。