RTT實(shí)時(shí)操作系統(tǒng)
學(xué)習(xí)RTT的第一天
在我們進(jìn)行開發(fā)任務(wù)量比較大的時(shí)候,裸機(jī)開發(fā)方式的軟件框架不清晰,對(duì)后續(xù)擴(kuò)展功能極其不利;另一方面,由于軟件復(fù)雜性的增加,裸機(jī)開發(fā)對(duì)工程師的要求越來越嚴(yán)苛,過多使用中斷等因素,都會(huì)增加系統(tǒng)的不可靠性。
RT-Thread支持很多硬件平臺(tái),并且有很好的開發(fā)環(huán)境和IDE。及有眾多技術(shù)文檔、參考設(shè)計(jì)和活躍的開發(fā)者社區(qū),這些都能幫助您快速入門和掌握 RT-Thread,開發(fā)出優(yōu)秀的產(chǎn)品。
RT-Thread的架構(gòu)分為內(nèi)核層、組件與服務(wù)層、RT-Thread 軟件包:
內(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 主要采用 C 語言編寫,淺顯易懂,方便移植。它把面向?qū)ο蟮脑O(shè)計(jì)方法應(yīng)用到實(shí)時(shí)系統(tǒng)設(shè)計(jì)中, 使得代碼風(fēng)格優(yōu)雅、架構(gòu)清晰、系統(tǒng)模塊化并且可裁剪性非常好。針對(duì)資源受限的微控制器(MCU)系統(tǒng), 可通過方便易用的工具,裁剪出僅需要 3KB Flash、1.2KB RAM 內(nèi)存資源的 NANO 版本(NANO 是 RT-Thread 官方于 2017 年 7 月份發(fā)布的一個(gè)極簡(jiǎn)版內(nèi)核);而對(duì)于資源豐富的物聯(lián)網(wǎng)設(shè)備, RT-Thread又能使用在線的軟件包管理工具,配合系統(tǒng)配置工具實(shí)現(xiàn)直觀快速的模塊化裁剪, 無縫地導(dǎo)入豐富的軟件功能包,實(shí)現(xiàn)類似 Android 的圖形界面及觸摸滑動(dòng)效果、智能語音交互效果等復(fù)雜功能。
相較于 Linux 操作系統(tǒng),RT-Thread 體積小,成本低,功耗低、啟動(dòng)快速,除此以外 RT-Thread 還具有實(shí)時(shí)性高、占用資源小等特點(diǎn),非常適用于各種資源受限(如成本、功耗限制等)的場(chǎng)合。 雖然 32 位 MCU 是它的主要運(yùn)行平臺(tái),實(shí)際上很多帶有 MMU、基于 ARM9、ARM11 甚至 Cortex-A 系列級(jí)別 CPU 的應(yīng)用處理器在特定應(yīng)用場(chǎng)合也適合使用 RT-Thread。
在我們使用RT-Thread時(shí)可以讓我們的系統(tǒng)更加穩(wěn)定,對(duì)于整個(gè)程序更好的管理。通過系統(tǒng)提供的FinSH shell系統(tǒng),能夠查看到線程,信號(hào)量,互斥鎖,事件,郵箱,消息隊(duì)列的運(yùn)行情況,以及各個(gè)線程的棧使用情況。
*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。