ES32 SDK 支持的 RTOS
很多嵌入式應(yīng)用都是基于微控制器(MCU/單片機(jī))的小系統(tǒng),其中大多不使用 OS,也沒有應(yīng)用程序的基本框架。這導(dǎo)致嵌入式軟件碎片化嚴(yán)重、開發(fā)效率低下。隨著 AIoT 時(shí)代的來臨,嵌入式軟件變得越來越復(fù)雜,傳統(tǒng)“散亂”的開發(fā)模式面臨著前所未有的挑戰(zhàn)。一款優(yōu)秀的實(shí)時(shí)操作系統(tǒng)(RTOS)會(huì)使復(fù)雜的嵌入式系統(tǒng)軟件開發(fā)變得簡(jiǎn)單且可靠,并且便于升級(jí)和維護(hù)。
東軟載波微電子 ES32 系列產(chǎn)品的 SDK 已經(jīng)支持 FreeRTOS、RT-Thread-nano和 Huawei LiteOS 三款 RTOS,并提供了豐富的內(nèi)核用例。
ES32 SDK 下載地址:(復(fù)制到瀏覽器打開)
http://www.essemi.com/index/product/detail?id=799
用戶可以在 ES32 SDK 的如下文件夾中找到三款 RTOS 的用例:
FreeRTOS:
ES32_SDK\Projects\Book2_Example\FreeRTOS
?RT-Thread-Nano:
ES32_SDK\Projects\Book2_Example\RT-Thread-Nano
?Huawei LiteOS:
ES32_SDK\Projects\Book2_Example\LiteOS
FreeRTOS、RT-Thread 和 Huawei LiteOS 簡(jiǎn)介
FreeRTOSFreeRTOS由美國(guó)的Richard Barry于2003年發(fā)布,與眾多半導(dǎo)體廠商合作密切,是目前市場(chǎng)占有率最高的RTOS。遵循 GPLv2+ 許可協(xié)議。
FreeRTOS僅僅只是一個(gè)操作系統(tǒng)內(nèi)核,需外擴(kuò)第三方的 GUI(圖形用戶界面)、TCP/IP 協(xié)議棧、FS(文件系統(tǒng))等組件才能實(shí)現(xiàn)較復(fù)雜的系統(tǒng)。不像 RT-Thread 有豐富的組件和軟件包生態(tài),可以快速實(shí)現(xiàn)豐富多樣 IoT 系統(tǒng)。
RT-ThreadRT-Thread 版權(quán)屬于上海睿賽德電子科技有限公司,于 2006 年 1 月首次發(fā) 布,初始版本號(hào)為 0.1.0,經(jīng)過10來年的發(fā)展,如今主版本號(hào)已經(jīng)升級(jí)到 4.0.3, 累計(jì)開發(fā)者達(dá)到數(shù)百萬(wàn),在各行各業(yè)產(chǎn)品中裝機(jī)量達(dá)到了驚人的數(shù)億臺(tái), 占據(jù)國(guó)產(chǎn) RTOS 的鰲頭。其遵循 Apache-2.0 開源授權(quán)模式。
RT-Thread 整體結(jié)構(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)域的通用軟件組件,由描述信息、源代碼或庫(kù)文件組成。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á)到 300+。
- IDE:RT-Thread Studio
RT-Thread 內(nèi)核結(jié)構(gòu)如下:
內(nèi)核處于硬件層之上,內(nèi)核部分包括內(nèi)核庫(kù)、實(shí)時(shí)內(nèi)核實(shí)現(xiàn)。
內(nèi)核庫(kù)是為了保證內(nèi)核能夠獨(dú)立運(yùn)行的一套小型的類似 C 庫(kù)的函數(shù)實(shí)現(xiàn)子集。這部分根據(jù)編譯器的不同自帶 C 庫(kù)的情況也會(huì)有些不同,當(dāng)使用 GNU GCC 編譯器時(shí),會(huì)攜帶更多的標(biāo)準(zhǔn) C 庫(kù)實(shí)現(xiàn)。
Huawei LiteOS
華為 LiteOS 是一款 “開源免費(fèi)” 的實(shí)時(shí)操作系統(tǒng),面向 IoT 領(lǐng)域輕量級(jí)物聯(lián)網(wǎng)操作系統(tǒng), 廣泛應(yīng)用于智能家居、個(gè)人穿戴、車聯(lián)網(wǎng)、城市公共服務(wù)、制造業(yè)等領(lǐng)域,大幅降低設(shè)備布置及維護(hù)成本,有效降低 開發(fā)門檻、縮短開發(fā)周期。遵循 BSD-3 開源許可協(xié)議。
LiteOS 整體結(jié)構(gòu)如下:
主要包含以下組成部分:
- 基礎(chǔ)內(nèi)核:包括不可裁剪的極小內(nèi)核和可裁剪的其他模塊。極小內(nèi)核包含任務(wù)管理、內(nèi)存管理、中斷管理、異常管理和系統(tǒng)時(shí)鐘。可裁剪的模塊包括信號(hào)量、互斥鎖、隊(duì)列管理、事件管理、軟件定時(shí)器等。
- 內(nèi)核增強(qiáng):在內(nèi)核基礎(chǔ)功能之上,進(jìn)一步提供增強(qiáng)功能,包括C++支持、調(diào)測(cè)組件等。調(diào)測(cè)組件提供了強(qiáng)大的問題定位及調(diào)測(cè)能力,包括shell命令、Trace事件跟蹤、獲取CPU占用率、LMS等。
- 文件系統(tǒng):提供一套輕量級(jí)的文件系統(tǒng)接口以支持文件系統(tǒng)的基本功能,包括vfs、ramfs、fatfs等。
- 系統(tǒng)庫(kù)接口:提供一系列系統(tǒng)庫(kù)接口以提升操作系統(tǒng)的可移植性及兼容性,包括Libc/Libm/POSIX以及CMSIS適配層接口。
- 網(wǎng)絡(luò)協(xié)議棧:提供豐富的網(wǎng)絡(luò)協(xié)議棧以支持多種網(wǎng)絡(luò)功能,包括CoAP/LwM2M、MQTT等。
- 業(yè)務(wù)組件:構(gòu)建于上述組件之上的一系列業(yè)務(wù)組件或框架,以支持更豐富的用戶場(chǎng)景,包括OTA、GUI、AI、傳感框架等。
- IDE:Huawei LiteOS Studio。
Huawei LiteOS 內(nèi)核結(jié)構(gòu)如下:
Huawei LiteOS 自開源社區(qū)發(fā)布以來,圍繞 NB-IoT 物聯(lián)網(wǎng)市場(chǎng)從技術(shù)、生態(tài)、解決方案、商用支持等多維度使能合作伙伴,構(gòu)建開源的物聯(lián)網(wǎng)生態(tài),目前已經(jīng)聚合了 50+MCU 和解決方案合作伙伴,共同推出一批開源開發(fā)套件和行業(yè)解決 方案,幫助眾多行業(yè)客戶快速的推出物聯(lián)網(wǎng)終端和服務(wù),客戶涵蓋眾多行業(yè),為開發(fā)者提供 “一站式” 完整軟件平臺(tái),有效降低開發(fā)門檻、縮短開發(fā)周期。
Huawei LiteOS 基礎(chǔ)內(nèi)核包括不可裁剪的極小內(nèi)核和可裁剪的其他模塊。極小內(nèi)核包含任務(wù)管理、內(nèi)存管理、中斷管理、異常管理和系統(tǒng)時(shí)鐘??刹眉舻哪K包括信號(hào)量、互斥鎖、隊(duì)列管理、事件管理、軟件定時(shí)器等。Huawei LiteOS 支持 UP(單核)與 SMP(多核)模式,即支持在單核或者多核的環(huán)境上運(yùn)行。
FreeRTOS、RT-Thread 和 LiteOS 內(nèi)核對(duì)比
ES32 SDK 支持的 RTOS 內(nèi)核用例
ES32 SDK 為用戶提供了 FreeRTOS、RT-Thread-Nano和 Huawei LiteOS 的內(nèi)核用例,如下圖所示。用戶可以通過這些用例學(xué)習(xí) RTOS 的使用。
?
評(píng)論