1、軟件包的目的
軟件包在高級語言中非常常見,很多高級語言都有對應的軟件包平臺,比如 Python 的 PyPi,Ruby 的 Gems 等等。軟件包生態對于一門語言的選擇至關重要,因為這些軟件包具有很強的可重用性,模塊化程度很高,極大的方便應用開發者在最短時間內,打造出自己想要的軟件。
從工具的角度去看軟件包,我們很容易聯想到高級動物與低級動物的差別:無外乎就是使用和制造工具的熟練程度。這個道理對于我們程序員世界也同樣適用,比如高級的程序員和初級程序員的差距可以歸納為:開發工具和軟件包的熟練程度上,甚至在于是否會創造適用面廣的軟件包(圓輪子)或開發工具。
所以,想要成為高級程序員就快來使用、創造軟件包吧~
2、軟件包的定義
RT-Thread 軟件包:運行于 RT-Thread 物聯網操作系統平臺上,面向不同應用領域的通用軟件組件。軟件包由描述信息,源代碼或庫文件組成。
RT-Thread 同時提供了開放的軟件包平臺,這里存放了官方提供或開發者提供的軟件包。該平臺為開發者提供了眾多可重用軟件包的選擇,這也是 RT-Thread 生態的重要組成部分。
3、軟件包的使用
RT-Thread 為開發者提供的全面的使用教程,詳情如下:
入門文檔教程:位于 RT-Thread 官網,文檔->開發指南->env 工具用戶手冊
軟件包制作教程:位于 RT-Thread 官網,文檔->開發指南->package 開發指南
4、軟件包匯總
RT-Thread 已經支持的軟件包數量已經達到40+。所有軟件包已經按照軟件功能的角度,在 menuconfig 中進行了分類。每個分類下的軟件包都可以在menuconfig->RT-Thread online packages菜單里對應的子菜單下找到。
為了降低大家的上手門檻,每個軟件包在其項目首頁都有詳細的使用說明文檔及示例代碼。
4.1 物聯網相關的軟件包
物聯網(IoT) 是 RT-Thread 當前非常重視一個環節,與其相關的軟件包也非常龐大。你所開發的任何物聯網應用,幾乎都可以在這里找到對應的軟件包,目前包括如下:
Paho MQTT:基于 Eclipse 開源的 Paho MQTT,對于做了很多功能及性能優化,比如:增加了斷線自動重連功能,采用 pipe 模型,支持非阻塞 API,支持 TLS 加密傳輸等等;
WebClient:簡單易用的 HTTP 客戶端,支持 HTTP GET/POST 等常見請求功能,支持 HTTPS ,斷點續傳等功能;
mongoose:嵌入式 Web 服務器網絡庫,類似嵌入式世界里的 Nginx 。授權許可不夠友好,商業需要收費;
WebTerminal:網友 @armink 開發的,可以在瀏覽器訪問 Finsh/MSH Shell 的軟件包,甚至是手機端;
cJSON:超輕量級的 JSON 解析庫;
ljson:網友 @qiaoqidui 開發的 json 到 struct 的解析,輸出庫;
ezXML: XML 文件解析庫,目前還不支持解析 XML 數據;
nanopb:Protocol Buffers 格式數據解析庫,Protocol Buffers 格式比 JSON、XML 格式資源占用更少;
GAgent:接入機智云的軟件包;
Marvell WiFi:Marvell WiFi 驅動;
Wiced WiFi:Wiced 接口的 WiFi 驅動;
CoAP:移植 libcoap 的 CoAP 通信軟件包;
nopoll:移植的開源 WebSocket 通信軟件包;
netutils:實用的網絡調試小工具集合,包括:ping、TFTP、iperf、NetIO、NTP、Telnet 等;
OneNet:與中國移動 OneNet 云對接的軟件包;
4.2 安全相關的軟件包
安全一直是 RT-Thread 非常重視一個領域,尤其是在 RT-Thread 3.0 IoT OS 發布以后。接入網絡的設備對于網絡安全需求更是強烈,主要軟件包:
mbedtls:ARM 公司開源的、可移植的適合嵌入式領域的 SSL 庫,一些物聯網包中的一些加密通信都會依賴它;
libsodium:現代化的、可移植的、易于使用的加密庫,libsodium 的目標是提供構建高層密碼學工具所需的核心算法;
TinyCrypt:輕量級、可配置的加密庫,支持 MD5、base64、AES、SHA1、SHA256 算法;
4.3 腳本語言相關的軟件包
高級語言中的一些特性非常人性化,也很大程度上降低的開發門檻,但一直受限于嵌入式的資源。隨著 MCU 技術的逐步發展,資源也是越來越多了。未來,也許 C 將不在是 MCU 編程的主流選擇。目前 RT-Thread 支持的腳本語言如下:
JerryScript:超輕量級的 JavaScript 引擎;
MicroPython:針對嵌入式領域的 Python 語言實現軟件包。這塊也是 RT-Thread 最近一直在熱推的技術,只要是支持的 RT-Thread 并有一定資源(ROM: 190KB, RAM: 8KB)的開發板,都可以跑 MicroPython 在官網文檔中能找到 RTT 最新出爐的《MicroPython 開發手冊》。MicroPython 現在也被廣泛應用于產品原型驗證、教育、創客 DIY、硬件測試等領域;
4.4 多媒體相關的軟件包
Openmv:基于 MicroPython 的開源的機器視覺庫;
mupdf:網友 @rtoslab 移植的輕量級 PDF, XPS, E-book解析/渲染庫。用 RTT DIY 一個 Kindle 不是夢;
4.5 工具類軟件包
這里主要是一些輔助開發、調試的實用工具。這些專業化的工具,使用以后能夠很大程度上提高大家的開發效率,節省我們程序員的寶貴開發時間。
CmBacktrace:網友 @armink 開源的 ARM Cortex-M 系列 MCU 的 HardFault 錯誤追蹤庫。目前已對 RTT 做了無縫對接,不用在修改任何移植代碼,下載即用;
EasyFlash:網友 @armink 開源的輕量級 Flash 閃存庫,非常適用于物聯網產品的參數存儲、日志記錄的場景;
EasyLogger:網友 @armink 開源的超輕量級日志庫。日志支持異步輸出模式,各級別日志格式(包括顏色)可獨立設置,并支持日志關鍵詞過濾功能。極大的方便的開發者的調試過程。
SystemView:可以實時查看、追蹤、分析 RT-Thread 各線程等資源使用情況,對于性能分析很有幫助。這里有很多是網友 @ArdaFu 的貢獻;
4.6 系統相關的軟件包
系統類的軟件包,更多的是與操作系統精密聯系在一起的軟件組件:
RTGUI:RT-Thread GUI 繪圖引擎。RT-Thread 的 Persimmon 柿餅 UI 組件,就依賴于該軟件包;
Persimmon UI:適合嵌入式的,支持手勢識別、滑動特效等類 Android 的 UI 庫;
lwext4:來自網友 @parai 移植的,適合嵌入式的 ext2/3/4 文件系統庫;
partition:一個簡單的適合塊設備的分區管理庫;
SQLite:一個高可靠的、適合嵌入式領域的SQL數據庫引擎。SQLite 也是 Android 內部集成的數據庫,有一定的應用領域;
RT-Thread Insight:簡寫是 RTI ,一個用于 RT-Thread 的探測工具,用來幫助分析系統的內部行為;
LittlevGL2RTT:網友 @liu2guang 移植的 LittlevGl GUI 庫,這是一個最近新出的嵌入式 GUI 庫;
4.7 外設庫和驅動類軟件包
STM32F4_HAL:STM32 F4 系列的 HAL 固件函數庫;
STM32F4_Drivers:STM32 F4 系列的 標準 固件函數庫;
4.8 其他的軟件包
Fastlz:一個可移植的、實時的壓縮庫;
miniLZO:一個類 LZO 壓縮庫的小型實時壓縮庫;
QuickLZ:一個號稱是世界上壓縮速度最快的壓縮庫;
MultiButton:由網友 @liu2guang 移植的簡單易用的,基于事件驅動型的按鍵驅動庫,可無限量擴展按鍵;
CanFestival:Canfestival (一個開源的 CANopen 協議棧)在 RT-Thread 系統上的移植,由網友 @gbcwbz 移植。提供了 CANopen 的一些示例,力圖做到開箱即用;
samples:RT-Thread 的示例代碼。這是一個降低新手入門學習門檻的軟件包,里面從基礎、內核、文件系統、網絡以及驅動這幾個方面,由淺入深,逐個引導大家去上手使用 RT-Thread 。不僅有詳細代碼及注釋,還有完善的文檔。把這個軟件包都學會,就算已經入 RT-Thread 的門了;
hello:這是一個軟件包的模板,如果想要制作軟件包,需要可以借鑒它。
5、軟件包的未來
從去年 9 月 RT-Thread 3.0 發布至今,RT-Thread 官方團隊和我們開發者在半年多的時間里積累下來 40 多個軟件包足以說明的 RT-Thread 軟件生態的強大。當然我們并沒有滿足于此,未來已經有更多的、更高質量的軟件包在我們開放計劃中了,例如:
AT 命令庫:同時支持 AT 服務器及客戶端,提供 CLI 命令行交互調試模式,自動檢測參數格式等等實用功能。已經進入發布倒計時;
低功耗框架:超低功耗設計、系統自動休眠,動態調頻調壓,應用不需要關心低功耗狀態;
軟件包的積累將會是一個量變到質變過程,能夠匯集到更多大家常用的軟件組件。真正做到,底層使用 RT-Thread 操作系統,上層使用搭積木方式開發應用。
當然,距離這個目標還是有一定的距離。RT-Thread 作為國內最為活躍嵌入式開源社區,深刻體會到了開放的心態所能產生的價值。期待更多的人來使用、反饋甚至是創建自己的軟件包。換個角度去想,也許今天你的分享所產生的積累,未來可能會是你解決明天困難的“鑰匙”。
最后,借用一句歌詞:如果人人都貢獻(包括反饋)軟件包,嵌入式將變成美好的明天
-
物聯網
+關注
關注
2894文章
43298瀏覽量
366344 -
軟件包
+關注
關注
0文章
97瀏覽量
11533 -
RT-Thread
+關注
關注
31文章
1239瀏覽量
39425
原文標題:RT-Thread 軟件包介紹
文章出處:【微信號:RTThread,微信公眾號:RTThread物聯網操作系統】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論