RT-Thread嵌入式實(shí)時(shí)操作系統(tǒng)
RT-Thread是一個(gè)集實(shí)時(shí)操作系統(tǒng)(RTOS)內(nèi)核、中間件組件和開發(fā)者社區(qū)于一體的技術(shù)平臺(tái),具有極小內(nèi)核、穩(wěn)定可靠、簡(jiǎn)單易用、高度可伸縮、組件豐富等特點(diǎn)。RT-Thread擁有一個(gè)國內(nèi)最大的嵌入式開源社區(qū),同時(shí)被廣泛應(yīng)用于能源、車載、醫(yī)療、消費(fèi)電子等多個(gè)行業(yè),累積裝機(jī)量達(dá)數(shù)千萬臺(tái),成為國人自主開發(fā)、國內(nèi)最成熟穩(wěn)定和裝機(jī)量最大的開源RTOS。
RT-Thread擁有良好的軟件生態(tài),支持市面上所有主流的編譯工具如GCC、Keil、IAR等,工具鏈完善、友好,支持各類標(biāo)準(zhǔn)接口,如POSIX、CMSIS、C++應(yīng)用環(huán)境、Javascript執(zhí)行環(huán)境等,方便開發(fā)者移植各類應(yīng)用程序。商用支持所有主流MCU架構(gòu),如ARM Cortex-M/R/A, MIPS, X86, Xtensa, C-Sky, RISC-V,幾乎支持市場(chǎng)上所有主流的MCU和Wi-Fi芯片。
RT-Thread有完整版和Nano版,對(duì)于資源受限的微控制器(MCU)系統(tǒng),可通過簡(jiǎn)單易用的工具,裁剪出僅需要 3KB Flash、1.2KB RAM 內(nèi)存資源的 NANO 內(nèi)核版本;而相對(duì)資源豐富的物聯(lián)網(wǎng)設(shè)備,可使用RT-Thread完整版,通過在線的軟件包管理工具,配合系統(tǒng)配置工具實(shí)現(xiàn)直觀快速的模塊化裁剪,并且可以無縫地導(dǎo)入豐富的軟件功能包,實(shí)現(xiàn)類似 Android 的圖形界面及觸摸滑動(dòng)效果、智能語音交互效果等復(fù)雜功能。
RT-Thread架構(gòu)
RT-Thread是一個(gè)集實(shí)時(shí)操作系統(tǒng)(RTOS)內(nèi)核、中間件組件的物聯(lián)網(wǎng)操作系統(tǒng),架構(gòu)如下:
-
內(nèi)核層:RT-Thread內(nèi)核,是 RT-Thread的核心部分,包括了內(nèi)核系統(tǒng)中對(duì)象的實(shí)現(xiàn),例如多線程及其調(diào)度、信號(hào)量、郵箱、消息隊(duì)列、內(nèi)存管理、定時(shí)器等;libcpu/BSP(芯片移植相關(guān)文件 / 板級(jí)支持包)與硬件密切相關(guān),由外設(shè)驅(qū)動(dòng)和 CPU 移植構(gòu)成。
-
組件與服務(wù)層:組件是基于 RT-Thread內(nèi)核之上的上層軟件,例如虛擬文件系統(tǒng)、FinSH命令行界面、網(wǎng)絡(luò)框架、設(shè)備框架等。采用模塊化設(shè)計(jì),做到組件內(nèi)部高內(nèi)聚,組件之間低耦合。
-
RT-Thread軟件包:運(yùn)行于 RT-Thread物聯(lián)網(wǎng)操作系統(tǒng)平臺(tái)上,面向不同應(yīng)用領(lǐng)域的通用軟件組件,由描述信息、源代碼或庫文件組成。RT-Thread提供了開放的軟件包平臺(tái),這里存放了官方提供或開發(fā)者提供的軟件包,該平臺(tái)為開發(fā)者提供了眾多可重用軟件包的選擇,這也是 RT-Thread生態(tài)的重要組成部分。軟件包生態(tài)對(duì)于一個(gè)操作系統(tǒng)的選擇至關(guān)重要,因?yàn)檫@些軟件包具有很強(qiáng)的可重用性,模塊化程度很高,極大的方便應(yīng)用開發(fā)者在最短時(shí)間內(nèi),打造出自己想要的系統(tǒng)。RT-Thread已經(jīng)支持的軟件包數(shù)量已經(jīng)達(dá)到 180+。
RT-Thread的特點(diǎn)
-
資源占用極低,超低功耗設(shè)計(jì),最小內(nèi)核(Nano版本)僅需1.2KB RAM,3KB Flash。
-
組件豐富,繁榮發(fā)展的軟件包生態(tài) 。
-
簡(jiǎn)單易用 ,優(yōu)雅的代碼風(fēng)格,易于閱讀、掌握。
-
高度可伸縮,優(yōu)質(zhì)的可伸縮的軟件架構(gòu),松耦合,模塊化,易于裁剪和擴(kuò)展。
-
強(qiáng)大,支持高性能應(yīng)用。
-
跨平臺(tái)、芯片支持廣泛。
代碼目錄
RT-Thread源代碼目錄結(jié)構(gòu)如下圖所示:
| 名稱 | 描述 |
|---|---|
| BSP | Board Support Package(板級(jí)支持包)基于各種開發(fā)板的移植 |
| components | RT-Thread 的各個(gè)組件代碼,例如 finsh,gui 等。 |
| documentation | 相關(guān)文檔,如編碼規(guī)范等 |
| examples | 相關(guān)示例代碼 |
| include | RT-Thread 內(nèi)核的頭文件。 |
| libcpu | 各類芯片的移植代碼。 |
| src | RT-Thread 內(nèi)核的源文件。 |
| tools | RT-Thread 命令構(gòu)建工具的腳本文件。 |
目前RT-Thread已經(jīng)針對(duì)將近90種開發(fā)板做好了移植,大部分 BSP 都支持 MDK﹑IAR開發(fā)環(huán)境和GCC編譯器,并且已經(jīng)提供了默認(rèn)的 MDK 和 IAR 工程,用戶可以直接基于這個(gè)工程添加自己的應(yīng)用代碼。 每個(gè) BSP 的目錄結(jié)構(gòu)高度統(tǒng)一,且都提供一個(gè) README.md 文件,包含了對(duì)這個(gè) BSP 的基本介紹,以及相應(yīng)的說明,方便用戶快速上手。
Env 是RT-Thread推出的開發(fā)輔助工具,針對(duì)基于RT-Thread操作系統(tǒng)的項(xiàng)目工程,提供編譯構(gòu)建環(huán)境、圖形化系統(tǒng)配置及軟件包管理功能。其內(nèi)置的 menuconfig 提供了簡(jiǎn)單易用的配置剪裁工具,可對(duì)內(nèi)核、組件和軟件包進(jìn)行自由裁剪,使系統(tǒng)以搭積木的方式進(jìn)行構(gòu)建。
硬件支持
RT-Thread RTOS 支持許多架構(gòu),并且已經(jīng)涵蓋了當(dāng)前應(yīng)用中的主要架構(gòu)。涉及的架構(gòu)和芯片制造商有:
-
ARM Cortex-M0/M0+:如芯片制造商 ST
-
ARM Cortex-M3:如芯片制造商 ST、全志、靈動(dòng)等.
-
ARM Cortex-M4:如芯片制造商 ST、Nuvton、NXP、GigaDevice、Realtek、Ambiq Micro等
-
ARM Cortex-M7:如芯片制造商 ST、NXP
-
ARM Cortex-M23:如芯片制造商 GigaDevice
-
ARM Cortex-R4
-
ARM Cortex-A8/A9:如芯片制造商 NXP
-
ARM7:如芯片制造商Samsung
-
ARM9:如芯片制造商Allwinner、Xilinx 、GOKE
-
ARM11:如芯片制造商Fullhan
-
MIPS32:如芯片制造商loongson、Ingenic
-
RISC-V:如芯片制造商Hifive、Kendryte
-
ARC:如芯片制造商SYNOPSYS
-
DSP:如芯片制造商 TI
-
C-Sky
-
x86
支持的 IDE 和編譯器
RT-Thread主要支持的IDE/編譯器包括:
-
MDK KEIL
-
IAR
-
Gcc
-
RT-Thread Studio
RT-Thread Studio演示:
快速上手
RT-Thread BSP可以直接編譯并下載到相應(yīng)的開發(fā)板使用。此外,RT-Thread還提供 qemu-vexpress-a9 BSP,無需硬件平臺(tái)即可使用。有關(guān)詳細(xì)信息,請(qǐng)參閱下面的入門指南。
文檔
應(yīng)用 RT-Thread 實(shí)現(xiàn)蜂鳴器播放器教程 | 分布式溫度監(jiān)控系統(tǒng)教程 | 智能車連載教程
例程
內(nèi)核示例 | 設(shè)備示例代碼 | 文件系統(tǒng)示例代碼 | 網(wǎng)絡(luò)示例代碼 | RT-Thread API參考手冊(cè)
基于STM32L475 IoT Board 開發(fā)板SDK | 基于W601 IoT Board 開發(fā)板SDK
視頻
RT-Thread視頻中心提供了一系列RT-Thread相關(guān)教程及分享內(nèi)容。
如:內(nèi)核入門系列 | Env系列 | 網(wǎng)絡(luò)系列 | Nano移植系列 | RT-Thread Studio系列 | 柿餅UI系列 | 答疑直播系列 | 社區(qū)作品系列
更多詳情,請(qǐng)前往 視頻中心
許可協(xié)議
RT-Thread系統(tǒng)完全開源,3.1.0 及以前的版本遵循 GPL V2 + 開源許可協(xié)議。從 3.1.0 以后的版本遵循Apache License 2.0開源許可協(xié)議,可以免費(fèi)在商業(yè)產(chǎn)品中使用,并且不需要公開私有代碼。
/*
* Copyright (c) 2006-2018, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*/
社區(qū)支持
RT-Thread非常感謝所有社區(qū)小伙伴的支持,在使用RT-Thread的過程中若您有任何的想法,建議或疑問都可通過以下方式聯(lián)系到 RT-Thread,我們也實(shí)時(shí)在這些頻道更新RT-Thread的最新訊息。同時(shí),任何問題都可以在 issue section 中提出。通過創(chuàng)建一個(gè)issue來描述您的問題,社區(qū)成員將回答這些問題。
官網(wǎng) | 論壇 | 嗶哩嗶哩官方賬號(hào) | 微博官方賬號(hào) | 知乎官方賬號(hào)
貢獻(xiàn)代碼
如果您對(duì)RT-Thread感興趣,并希望參與RT-Thread的開發(fā)并成為代碼貢獻(xiàn)者,請(qǐng)參閱代碼貢獻(xiàn)指南。
