溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何進(jìn)行RT-Thread 軟件包的分析

發(fā)布時(shí)間:2021-12-17 15:10:22 來源:億速云 閱讀:359 作者:柒染 欄目:互聯(lián)網(wǎng)科技

這篇文章將為大家詳細(xì)講解有關(guān)如何進(jìn)行RT-Thread 軟件包的分析,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對相關(guān)知識(shí)有一定的了解。

1、軟件包的目的

軟件包在高級語言中非常常見,很多高級語言都有對應(yīng)的軟件包平臺(tái),比如 Python 的 PyPi,Ruby 的 Gems 等等。軟件包生態(tài)對于一門語言的選擇至關(guān)重要,因?yàn)檫@些軟件包具有很強(qiáng)的可重用性,模塊化程度很高,極大的方便應(yīng)用開發(fā)者在最短時(shí)間內(nèi),打造出自己想要的軟件。

從 工具 的角度去看軟件包,我們很容易聯(lián)想到高級動(dòng)物與低級動(dòng)物的差別:無外乎就是 使用和制造工具 的熟練程度。這個(gè)道理對于我們程序員世界也同樣適用,比如高級的程序員和初級程序員的差距可以歸納為:開發(fā)工具和軟件包的熟練程度上,甚至在于是否會(huì) 創(chuàng)造 適用面廣的軟件包(圓輪子)或開發(fā)工具。

所以,想要成為高級程序員就快來使用、創(chuàng)造軟件包吧~

2、軟件包的定義

RT-Thread 軟件包:運(yùn)行于 RT-Thread 物聯(lián)網(wǎng)操作系統(tǒng)平臺(tái)上,面向不同應(yīng)用領(lǐng)域的 通用軟件組件 。軟件包由描述信息,源代碼或庫文件組成。

如何進(jìn)行RT-Thread 軟件包的分析

RT-Thread 同時(shí)提供了 開放的 軟件包平臺(tái),這里存放了官方提供或開發(fā)者提供的軟件包。該平臺(tái)為開發(fā)者提供了眾多可重用軟件包的選擇,這也是 RT-Thread 生態(tài)的重要組成部分。

3、軟件包的使用

RT-Thread 為開發(fā)者提供的全面的使用教程,詳情如下:

  • 入門文檔教程:位于 RT-Thread 官網(wǎng),文檔->開發(fā)指南->env 工具用戶手冊

  • 入門視頻教程:

  • 軟件包制作教程:位于 RT-Thread 官網(wǎng),文檔->開發(fā)指南->package 開發(fā)指南

4、軟件包匯總

RT-Thread 已經(jīng)支持的軟件包數(shù)量已經(jīng)達(dá)到 40+。所有軟件包已經(jīng)按照軟件功能的角度,在 menuconfig 中進(jìn)行了分類。每個(gè)分類下的軟件包都可以在 menuconfig->RT-Thread online packages 菜單里對應(yīng)的子菜單下找到。

為了降低大家的上手門檻,每個(gè)軟件包在其項(xiàng)目首頁都有詳細(xì)的使用說明文檔及示例代碼。

4.1 物聯(lián)網(wǎng)相關(guān)的軟件包

物聯(lián)網(wǎng)(IoT) 是 RT-Thread 當(dāng)前非常重視一個(gè)環(huán)節(jié),與其相關(guān)的軟件包也非常龐大。你所開發(fā)的任何物聯(lián)網(wǎng)應(yīng)用,幾乎都可以在這里找到對應(yīng)的軟件包,目前包括如下:

  • Paho MQTT:基于 Eclipse 開源的 Paho MQTT,對于做了很多功能及性能優(yōu)化,比如:增加了斷線自動(dòng)重連功能,采用 pipe 模型,支持非阻塞 API,支持 TLS 加密傳輸?shù)鹊龋?/p>

  • WebClient:簡單易用的 HTTP 客戶端,支持 HTTP GET/POST 等常見請求功能,支持 HTTPS ,斷點(diǎn)續(xù)傳等功能;

  • mongoose:嵌入式 Web 服務(wù)器網(wǎng)絡(luò)庫,類似嵌入式世界里的 Nginx 。授權(quán)許可不夠友好,商業(yè)需要收費(fèi);

  • WebTerminal:網(wǎng)友 @armink 開發(fā)的,可以在瀏覽器訪問 Finsh/MSH Shell 的軟件包,甚至是手機(jī)端;

  • cJSON:超輕量級的 JSON 解析庫;

  • ljson:網(wǎng)友 @qiaoqidui 開發(fā)的 json 到 struct 的解析,輸出庫;

  • ezXML: XML 文件解析庫,目前還不支持解析 XML 數(shù)據(jù);

  • nanopb:Protocol Buffers 格式數(shù)據(jù)解析庫,Protocol Buffers 格式比 JSON、XML 格式資源占用更少;

  • GAgent:接入機(jī)智云的軟件包;

  • Marvell WiFi:Marvell WiFi 驅(qū)動(dòng);

  • Wiced WiFi:Wiced 接口的 WiFi 驅(qū)動(dòng);

  • CoAP:移植 libcoap 的 CoAP 通信軟件包;

  • nopoll:移植的開源 WebSocket 通信軟件包;

  • netutils:實(shí)用的網(wǎng)絡(luò)調(diào)試小工具集合,包括:ping、TFTP、iperf、NetIO、NTP、Telnet 等;

  • OneNet:與中國移動(dòng) OneNet 云對接的軟件包;

4.2 安全相關(guān)的軟件包

安全一直是 RT-Thread 非常重視一個(gè)領(lǐng)域,尤其是在 RT-Thread 3.0 IoT OS 發(fā)布以后。接入網(wǎng)絡(luò)的設(shè)備對于網(wǎng)絡(luò)安全需求更是強(qiáng)烈,主要軟件包:

  • mbedtls:ARM 公司開源的、可移植的適合嵌入式領(lǐng)域的 SSL 庫,一些物聯(lián)網(wǎng)包中的一些加密通信都會(huì)依賴它;

  • libsodium:現(xiàn)代化的、可移植的、易于使用的加密庫,libsodium 的目標(biāo)是提供構(gòu)建高層密碼學(xué)工具所需的核心算法;

  • TinyCrypt:輕量級、可配置的加密庫,支持 MD5、base64、AES、SHA1、SHA256 算法;

4.3 腳本語言相關(guān)的軟件包

高級語言中的一些特性非常人性化,也很大程度上降低的開發(fā)門檻,但一直受限于嵌入式的資源。隨著 MCU 技術(shù)的逐步發(fā)展,資源也是越來越多了。未來,也許 C 將不在是 MCU 編程的主流選擇。目前 RT-Thread 支持的腳本語言如下:

  • JerryScript:超輕量級的 JavaScript 引擎;

  • MicroPython:針對嵌入式領(lǐng)域的 Python 語言實(shí)現(xiàn)軟件包。這塊也是 RT-Thread 最近一直在熱推的技術(shù),只要是支持的 RT-Thread 并有一定資源(ROM: 190KB, RAM: 8KB)的開發(fā)板,都可以跑 MicroPython 在官網(wǎng)文檔中能找到 RTT 最新出爐的《MicroPython 開發(fā)手冊》。MicroPython 現(xiàn)在也被廣泛應(yīng)用于產(chǎn)品原型驗(yàn)證、教育、創(chuàng)客 DIY、硬件測試等領(lǐng)域;

4.4 多媒體相關(guān)的軟件包

  • Openmv:基于 MicroPython 的開源的機(jī)器視覺庫;

  • mupdf:網(wǎng)友 @rtoslab 移植的輕量級 PDF, XPS, E-book解析/渲染庫。用 RTT DIY 一個(gè) Kindle 不是夢;

4.5 工具類軟件包

這里主要是一些輔助開發(fā)、調(diào)試的實(shí)用工具。這些專業(yè)化的工具,使用以后能夠很大程度上提高大家的開發(fā)效率,節(jié)省我們程序員的寶貴開發(fā)時(shí)間。

  • CmBacktrace:網(wǎng)友 @armink 開源的 ARM Cortex-M 系列 MCU 的 HardFault 錯(cuò)誤追蹤庫。目前已對 RTT 做了無縫對接,不用在修改任何移植代碼,下載即用;

  • EasyFlash:網(wǎng)友 @armink 開源的輕量級 Flash 閃存庫,非常適用于物聯(lián)網(wǎng)產(chǎn)品的參數(shù)存儲(chǔ)、日志記錄的場景;

  • EasyLogger:網(wǎng)友 @armink 開源的超輕量級日志庫。日志支持異步輸出模式,各級別日志格式(包括顏色)可獨(dú)立設(shè)置,并支持日志關(guān)鍵詞過濾功能。極大的方便的開發(fā)者的調(diào)試過程。

  • SystemView:可以實(shí)時(shí)查看、追蹤、分析 RT-Thread 各線程等資源使用情況,對于性能分析很有幫助。這里有很多是網(wǎng)友 @ArdaFu 的貢獻(xiàn);

4.6 系統(tǒng)相關(guān)的軟件包

系統(tǒng)類的軟件包,更多的是與操作系統(tǒng)精密聯(lián)系在一起的軟件組件:

  • RTGUI:RT-Thread GUI 繪圖引擎。RT-Thread 的 Persimmon 柿餅 UI 組件,就依賴于該軟件包;

  • Persimmon UI:適合嵌入式的,支持手勢識(shí)別、滑動(dòng)特效等類 Android 的 UI 庫;

  • lwext4:來自網(wǎng)友 @parai 移植的,適合嵌入式的 ext2/3/4 文件系統(tǒng)庫;

  • partition:一個(gè)簡單的適合塊設(shè)備的分區(qū)管理庫;

  • SQLite:一個(gè)高可靠的、適合嵌入式領(lǐng)域的SQL數(shù)據(jù)庫引擎。SQLite 也是 Android 內(nèi)部集成的數(shù)據(jù)庫,有一定的應(yīng)用領(lǐng)域;

  • RT-Thread Insight:簡寫是 RTI ,一個(gè)用于 RT-Thread 的探測工具,用來幫助分析系統(tǒng)的內(nèi)部行為;

  • LittlevGL2RTT:網(wǎng)友 @liu2guang 移植的 LittlevGl GUI 庫,這是一個(gè)最近新出的嵌入式 GUI 庫;

4.7 外設(shè)庫和驅(qū)動(dòng)類軟件包

  • STM32F4_HAL:STM32 F4 系列的 HAL 固件函數(shù)庫;

  • STM32F4_Drivers:STM32 F4 系列的 標(biāo)準(zhǔn) 固件函數(shù)庫;

4.8 其他的軟件包

  • Fastlz:一個(gè)可移植的、實(shí)時(shí)的壓縮庫;

  • miniLZO:一個(gè)類 LZO 壓縮庫的小型實(shí)時(shí)壓縮庫;

  • QuickLZ:一個(gè)號稱是世界上壓縮速度最快的壓縮庫;

  • MultiButton:由網(wǎng)友 @liu2guang 移植的簡單易用的,基于事件驅(qū)動(dòng)型的按鍵驅(qū)動(dòng)庫,可無限量擴(kuò)展按鍵;

  • CanFestival:Canfestival (一個(gè)開源的 CANopen 協(xié)議棧)在 RT-Thread 系統(tǒng)上的移植,由網(wǎng)友 @gbcwbz 移植。提供了 CANopen 的一些示例,力圖做到開箱即用;

  • samples:RT-Thread 的示例代碼。這是一個(gè)降低新手入門學(xué)習(xí)門檻的軟件包,里面從基礎(chǔ)、內(nèi)核、文件系統(tǒng)、網(wǎng)絡(luò)以及驅(qū)動(dòng)這幾個(gè)方面,由淺入深,逐個(gè)引導(dǎo)大家去上手使用 RT-Thread 。不僅有詳細(xì)代碼及注釋,還有完善的文檔。把這個(gè)軟件包都學(xué)會(huì),就算已經(jīng)入 RT-Thread 的門了;

  • hello:這是一個(gè)軟件包的模板,如果想要制作軟件包,需要可以借鑒它。

5、軟件包的未來

從去年 9 月 RT-Thread 3.0 發(fā)布至今,RT-Thread 官方團(tuán)隊(duì)和我們開發(fā)者在半年多的時(shí)間里積累下來 40 多個(gè)軟件包足以說明的 RT-Thread 軟件生態(tài)的強(qiáng)大。當(dāng)然我們并沒有滿足于此,未來已經(jīng)有更多的、更高質(zhì)量的軟件包在我們開放計(jì)劃中了,例如:

  • AT 命令庫:同時(shí)支持 AT 服務(wù)器及客戶端,提供 CLI 命令行交互調(diào)試模式,自動(dòng)檢測參數(shù)格式等等實(shí)用功能。已經(jīng)進(jìn)入發(fā)布倒計(jì)時(shí);

  • 低功耗框架:超低功耗設(shè)計(jì)、系統(tǒng)自動(dòng)休眠,動(dòng)態(tài)調(diào)頻調(diào)壓,應(yīng)用不需要關(guān)心低功耗狀態(tài);


軟件包的積累將會(huì)是一個(gè)量變到質(zhì)變過程,能夠匯集到更多大家常用的軟件組件。真正做到,底層使用 RT-Thread 操作系統(tǒng),上層使用搭積木方式開發(fā)應(yīng)用。

關(guān)于如何進(jìn)行RT-Thread 軟件包的分析就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI