1、軟件包的目的
軟件包在高級(jí)語言中非常常見,很多高級(jí)語言都有對(duì)應(yīng)的軟件包平臺(tái),比如 Python 的 PyPi,Ruby 的 Gems 等等。軟件包生態(tài)對(duì)于一門語言的選擇至關(guān)重要,因?yàn)檫@些軟件包具有很強(qiáng)的可重用性,模塊化程度很高,極大的方便應(yīng)用開發(fā)者在最短時(shí)間內(nèi),打造出自己想要的軟件。
從工具的角度去看軟件包,我們很容易聯(lián)想到高級(jí)動(dòng)物與低級(jí)動(dòng)物的差別:無外乎就是使用和制造工具的熟練程度。這個(gè)道理對(duì)于我們程序員世界也同樣適用,比如高級(jí)的程序員和初級(jí)程序員的差距可以歸納為:開發(fā)工具和軟件包的熟練程度上,甚至在于是否會(huì)創(chuàng)造適用面廣的軟件包(圓輪子)或開發(fā)工具。
所以,想要成為高級(jí)程序員就快來使用、創(chuàng)造軟件包吧~
2、軟件包的定義
RT-Thread 軟件包:運(yùn)行于 RT-Thread 物聯(lián)網(wǎng)操作系統(tǒng)平臺(tái)上,面向不同應(yīng)用領(lǐng)域的通用軟件組件。軟件包由描述信息,源代碼或庫(kù)文件組成。
RT-Thread 同時(shí)提供了開放的軟件包平臺(tái),這里存放了官方提供或開發(fā)者提供的軟件包。該平臺(tái)為開發(fā)者提供了眾多可重用軟件包的選擇,這也是 RT-Thread 生態(tài)的重要組成部分。
3、軟件包的使用
RT-Thread 為開發(fā)者提供的全面的使用教程,詳情如下:
入門文檔教程:位于 RT-Thread 官網(wǎng),文檔->開發(fā)指南->env 工具用戶手冊(cè)
軟件包制作教程:位于 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菜單里對(duì)應(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)用,幾乎都可以在這里找到對(duì)應(yīng)的軟件包,目前包括如下:
Paho MQTT:基于 Eclipse 開源的 Paho MQTT,對(duì)于做了很多功能及性能優(yōu)化,比如:增加了斷線自動(dòng)重連功能,采用 pipe 模型,支持非阻塞 API,支持 TLS 加密傳輸?shù)鹊龋?/p>
WebClient:簡(jiǎn)單易用的 HTTP 客戶端,支持 HTTP GET/POST 等常見請(qǐng)求功能,支持 HTTPS ,斷點(diǎn)續(xù)傳等功能;
mongoose:嵌入式 Web 服務(wù)器網(wǎng)絡(luò)庫(kù),類似嵌入式世界里的 Nginx 。授權(quán)許可不夠友好,商業(yè)需要收費(fèi);
WebTerminal:網(wǎng)友 @armink 開發(fā)的,可以在瀏覽器訪問 Finsh/MSH Shell 的軟件包,甚至是手機(jī)端;
cJSON:超輕量級(jí)的 JSON 解析庫(kù);
ljson:網(wǎng)友 @qiaoqidui 開發(fā)的 json 到 struct 的解析,輸出庫(kù);
ezXML: XML 文件解析庫(kù),目前還不支持解析 XML 數(shù)據(jù);
nanopb:Protocol Buffers 格式數(shù)據(jù)解析庫(kù),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:與中國(guó)移動(dòng) OneNet 云對(duì)接的軟件包;
4.2 安全相關(guān)的軟件包
安全一直是 RT-Thread 非常重視一個(gè)領(lǐng)域,尤其是在 RT-Thread 3.0 IoT OS 發(fā)布以后。接入網(wǎng)絡(luò)的設(shè)備對(duì)于網(wǎng)絡(luò)安全需求更是強(qiáng)烈,主要軟件包:
mbedtls:ARM 公司開源的、可移植的適合嵌入式領(lǐng)域的 SSL 庫(kù),一些物聯(lián)網(wǎng)包中的一些加密通信都會(huì)依賴它;
libsodium:現(xiàn)代化的、可移植的、易于使用的加密庫(kù),libsodium 的目標(biāo)是提供構(gòu)建高層密碼學(xué)工具所需的核心算法;
TinyCrypt:輕量級(jí)、可配置的加密庫(kù),支持 MD5、base64、AES、SHA1、SHA256 算法;
4.3 腳本語言相關(guān)的軟件包
高級(jí)語言中的一些特性非常人性化,也很大程度上降低的開發(fā)門檻,但一直受限于嵌入式的資源。隨著 MCU 技術(shù)的逐步發(fā)展,資源也是越來越多了。未來,也許 C 將不在是 MCU 編程的主流選擇。目前 RT-Thread 支持的腳本語言如下:
JerryScript:超輕量級(jí)的 JavaScript 引擎;
MicroPython:針對(duì)嵌入式領(lǐng)域的 Python 語言實(shí)現(xiàn)軟件包。這塊也是 RT-Thread 最近一直在熱推的技術(shù),只要是支持的 RT-Thread 并有一定資源(ROM: 190KB, RAM: 8KB)的開發(fā)板,都可以跑 MicroPython 在官網(wǎng)文檔中能找到 RTT 最新出爐的《MicroPython 開發(fā)手冊(cè)》。MicroPython 現(xiàn)在也被廣泛應(yīng)用于產(chǎn)品原型驗(yàn)證、教育、創(chuàng)客 DIY、硬件測(cè)試等領(lǐng)域;
4.4 多媒體相關(guān)的軟件包
Openmv:基于 MicroPython 的開源的機(jī)器視覺庫(kù);
mupdf:網(wǎng)友 @rtoslab 移植的輕量級(jí) PDF, XPS, E-book解析/渲染庫(kù)。用 RTT DIY 一個(gè) Kindle 不是夢(mèng);
4.5 工具類軟件包
這里主要是一些輔助開發(fā)、調(diào)試的實(shí)用工具。這些專業(yè)化的工具,使用以后能夠很大程度上提高大家的開發(fā)效率,節(jié)省我們程序員的寶貴開發(fā)時(shí)間。
CmBacktrace:網(wǎng)友 @armink 開源的 ARM Cortex-M 系列 MCU 的 HardFault 錯(cuò)誤追蹤庫(kù)。目前已對(duì) RTT 做了無縫對(duì)接,不用在修改任何移植代碼,下載即用;
EasyFlash:網(wǎng)友 @armink 開源的輕量級(jí) Flash 閃存庫(kù),非常適用于物聯(lián)網(wǎng)產(chǎn)品的參數(shù)存儲(chǔ)、日志記錄的場(chǎng)景;
EasyLogger:網(wǎng)友 @armink 開源的超輕量級(jí)日志庫(kù)。日志支持異步輸出模式,各級(jí)別日志格式(包括顏色)可獨(dú)立設(shè)置,并支持日志關(guān)鍵詞過濾功能。極大的方便的開發(fā)者的調(diào)試過程。
SystemView:可以實(shí)時(shí)查看、追蹤、分析 RT-Thread 各線程等資源使用情況,對(duì)于性能分析很有幫助。這里有很多是網(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ì)識(shí)別、滑動(dòng)特效等類 Android 的 UI 庫(kù);
lwext4:來自網(wǎng)友 @parai 移植的,適合嵌入式的 ext2/3/4 文件系統(tǒng)庫(kù);
partition:一個(gè)簡(jiǎn)單的適合塊設(shè)備的分區(qū)管理庫(kù);
SQLite:一個(gè)高可靠的、適合嵌入式領(lǐng)域的SQL數(shù)據(jù)庫(kù)引擎。SQLite 也是 Android 內(nèi)部集成的數(shù)據(jù)庫(kù),有一定的應(yīng)用領(lǐng)域;
RT-Thread Insight:簡(jiǎn)寫是 RTI ,一個(gè)用于 RT-Thread 的探測(cè)工具,用來幫助分析系統(tǒng)的內(nèi)部行為;
LittlevGL2RTT:網(wǎng)友 @liu2guang 移植的 LittlevGl GUI 庫(kù),這是一個(gè)最近新出的嵌入式 GUI 庫(kù);
4.7 外設(shè)庫(kù)和驅(qū)動(dòng)類軟件包
STM32F4_HAL:STM32 F4 系列的 HAL 固件函數(shù)庫(kù);
STM32F4_Drivers:STM32 F4 系列的 標(biāo)準(zhǔn) 固件函數(shù)庫(kù);
4.8 其他的軟件包
Fastlz:一個(gè)可移植的、實(shí)時(shí)的壓縮庫(kù);
miniLZO:一個(gè)類 LZO 壓縮庫(kù)的小型實(shí)時(shí)壓縮庫(kù);
QuickLZ:一個(gè)號(hào)稱是世界上壓縮速度最快的壓縮庫(kù);
MultiButton:由網(wǎng)友 @liu2guang 移植的簡(jiǎn)單易用的,基于事件驅(qū)動(dòng)型的按鍵驅(qū)動(dòng)庫(kù),可無限量擴(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 命令庫(kù):同時(shí)支持 AT 服務(wù)器及客戶端,提供 CLI 命令行交互調(diào)試模式,自動(dòng)檢測(cè)參數(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)用。
當(dāng)然,距離這個(gè)目標(biāo)還是有一定的距離。RT-Thread 作為國(guó)內(nèi)最為活躍嵌入式開源社區(qū),深刻體會(huì)到了開放的心態(tài)所能產(chǎn)生的價(jià)值。期待更多的人來使用、反饋甚至是創(chuàng)建自己的軟件包。換個(gè)角度去想,也許今天你的分享所產(chǎn)生的積累,未來可能會(huì)是你解決明天困難的“鑰匙”。
最后,借用一句歌詞:如果人人都貢獻(xiàn)(包括反饋)軟件包,嵌入式將變成美好的明天
-
物聯(lián)網(wǎng)
+關(guān)注
關(guān)注
2927文章
45959瀏覽量
388689 -
軟件包
+關(guān)注
關(guān)注
0文章
109瀏覽量
11893 -
RT-Thread
+關(guān)注
關(guān)注
32文章
1372瀏覽量
41556
原文標(biāo)題:RT-Thread 軟件包介紹
文章出處:【微信號(hào):RTThread,微信公眾號(hào):RTThread物聯(lián)網(wǎng)操作系統(tǒng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
RT-Thread Studio添加軟件包報(bào)錯(cuò)怎么解決?
RT-Thread OneNET軟件包的功能特點(diǎn)是什么?
介紹RT-Thread的軟件包
使用menuconfig配置基于RT-Thread的NimBLE軟件包
使用RT-Thread Studio開發(fā)CH32V307實(shí)現(xiàn)按鍵軟件包使用
RT-Thread 軟件包介紹
RT-Thread社區(qū)上有哪些優(yōu)秀的軟件包?
2022 RT-Thread全球技術(shù)大會(huì):RT-Thread軟件包

RT-Thread全球技術(shù)大會(huì):恩智浦新增100+軟件包

RT-Thread在線軟件包改為本地軟件包的方法

RT-Thread使用cjson軟件包發(fā)送64位長(zhǎng)整型數(shù)據(jù)

RT-Thread中Agile Modbus軟件包的使用方法

RT-Thread中mymqtt軟件包的使用方法

評(píng)論