RT-Thread实时操作系统学习篇(一)----系统介绍

RT-Thread介绍

RT-Thread概述

RT-Thread是一个嵌入式实时多线程操作系统,基本属性之一是支持多任务,允许多个任务同时运行并不意味着处理器在同一时刻真地执行了多个任务(与多线程的调度机制原理一致,不过可以设置线程的调度时间),在某一时刻,一个CPU只允许一个任务运行,由于运行时间短,任务调度器控制任务间快速切换,从而形成了多个任务同时运行的错觉。RT-Thread中,任务通过线程实现的,RT-Thread 中的线程调度器也就是以上提到的任务调度器。
RT-Thread 与其他很多 RTOS 如 FreeRTOS、uC/OS 的主要区别之一是,它不仅仅是一个实时内核,还具备丰富的中间层组件。下图是系统架构。
图源RT-Thread文档
它具体包括以下部分:

  • 内核层:RT-Thread 内核,是 RT-Thread 的核心部分,包括了内核系统中对象的实现,例如多线程及其调度、信号量、邮箱、消息队列、内存管理、定时器等;libcpu/BSP(芯片移植相关文件 / 板级支持包)与硬件密切相关,由外设驱动和 CPU 移植构成。
  • 组件与服务层:组件是基于 RT-Thread 内核之上的上层软件,例如虚拟文件系统、FinSH 命令行界面、网络框架、设备框架等。采用模块化设计,做到组件内部高内聚,组件之间低耦合。
  • RT-Thread 软件包:运行于 RT-Thread 物联网操作系统平台上,面向不同应用领域的通用软件组件,由描述信息、源代码或库文件组成。RT-Thread 提供了开放的软件包平台,这里存放了官方提供或开发者提供的软件包,该平台为开发者提供了众多可重用软件包的选择,这也是 RT-Thread 生态的重要组成部分。软件包生态对于一个操作系统的选择至关重要,因为这些软件包具有很强的可重用性,模块化程度很高,极大的方便应用开发者在最短时间内,打造出自己想要的系统。RT-Thread 已经支持的软件包数量已经达到 400+,如下举例:
    • 物联网相关的软件包:Paho MQTT、WebClient、mongoose、WebTerminal 等等。
    • 脚本语言相关的软件包:目前支持 Lua、JerryScript、MicroPython、PikaScript。
    • 多媒体相关的软件包:Openmv、mupdf。
    • 工具类软件包:CmBacktrace、EasyFlash、EasyLogger、SystemView。
    • 系统相关的软件包:RTGUI、Persimmon UI、lwext4、partition、SQLite 等等。
    • 外设库与驱动类软件包:RealTek RTL8710BN SDK。
    • 其他。

猜你喜欢

转载自blog.csdn.net/qq_41866091/article/details/129764459