初識rt-thread雜記




bernard.xiong CEO 熊譜祥 env,提供編譯構建環境、圖形化系統配置及軟件包管理功能 scons 是 RT-Thread 使用的編譯構建工具,可以使用 scons 相關命令來編譯 RT-Thread 特性: finsh shell c-type msh 良好的編碼風格 liunx編碼風格,層次分明, 組件豐富 posix接口支持 libc(例如newlib),file system,pthread 輔助工具較多,開發門檻低 配置:menuconfig 1、cd 命令切換到你想要配置板卡的 bsp 目錄中,如: rt-thread\bsp\stm32f429-apollo 2、輸入 menuconfig 命令后即可打開其界面 注:不是每個板卡都可用,該功能依賴Kconfig文件 升級本地軟件包信息:pkgs 1、使用menuconfig 選中要更新的部件,如果列表中沒有,執行pkgs --upgrade 2、執行pkgs --update更新 注:更新后的軟件包是放在bsp目錄下的packages目錄,重新編譯只能手動拷貝到相應目錄?? 編譯:SCons 編譯規則在rtconfig.py文件 scons -c 清除編譯目標。這個命令會清除執行scons時生成的臨時文件和目標文件 scons 編譯。 注:如果要修改編譯器類型、編譯器路勁、編譯參數在rtconfig.py中修改。 SConscript完成類似makefile的功能,只是使用python語言更容易閱讀及使用更強大的內置函數庫 詳見《Scons構建工具手冊》 運行:qemu.bat 模塊介紹 finsh shell (亮點) finsh支持兩種模式: C語言解釋器模式,為行文方便稱之為c-style; 傳統命令行模式,此模式又稱為msh(module shell) LWIP “1.3.2”,“1.4.1”,“2.0.2”默認“2.0.2” 任務調度: 1、高優先級搶占低優先級,同優先級時間片輪轉。 2、用優先級鏈表的方式,所以系統中的總線程數不受限制 /* 當線程退出時,需要執行的清理函數 */ void (*cleanup)(struct rt_thread *tid); rt_uint32_t user_data; /* 用戶數據*/ }; 異常與中斷 ipc通信組件,增加脫離操作使用該函數后, 內核先喚醒所有掛在該信號量等待隊列上的線程, 然后將該信號量從內核對象管理器中刪除。 原來掛起在信號量上的等待線程將獲得-RT_ERROR 的返回值。 信號量 互斥量 事件 郵箱 消息隊列 內核和應用可以分開 編譯,並在運行時通過內核中的模塊加載器將編譯好的應用加載到內核中運行 軟件包 Paho MQTT:基於 Eclipse 開源的 Paho MQTT,對於做了很多功能及性能優化,比如:增加了斷線自動重連功能,采用 pipe 模型,支持非阻塞 API,支持 TLS 加密傳輸等等; WebClient:簡單易用的 HTTP 客戶端,支持 HTTP GET/POST 等常見請求功能,支持 HTTPS ,斷點續傳等功能; mongoose:嵌入式 Web 服務器網絡庫,類似嵌入式世界里的 Nginx 。授權許可不夠友好,商業需要收費; WebTerminal:網友 home.php?mod=space&uid=6104 開發的,可以在瀏覽器訪問 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 雲對接的軟件包; JerryScript:超輕量級的 JavaScript 引擎; MicroPython:針對嵌入式領域的 Python 語言實現軟件包 RTGUI:RT-Thread GUI 繪圖引擎。RT-Thread 的 Persimmon 柿餅 UI 組件,就依賴於該軟件包; Persimmon UI:適合嵌入式的,支持手勢識別、滑動特效等類 Android 的 UI 庫; lwext4:來自網友 home.php?mod=space&uid=4505 移植的,適合嵌入式的 ext2/3/4 文件系統庫; partition:一個簡單的適合塊設備的分區管理庫; SQLite:一個高可靠的、適合嵌入式領域的SQL數據庫引擎。SQLite 也是 Android 內部集成的數據庫,有一定的應用領域; RT-Thread Insight:簡寫是 RTI ,一個用於 RT-Thread 的探測工具,用來幫助分析系統的內部行為; LittlevGL2RTT:網友 home.php?mod=space&uid=10424 移植的 LittlevGl GUI 庫,這是一個最近新出的嵌入式 GUI 庫; 通用數據結構,可移植借鑒 ringbuffer:循環buf,支持動態靜態內存配置、鏡像?? queue:隊列,可配置是否輪詢還是通知 pipe:管道 waitQueue,應該還不完善 tcp/ip協議棧--=-lwip 支持,2.0.0, POSIX接口 資料獲取入口 官網https://www.rt-thread.org/index.html git倉庫:https://github.com/RT-Thread/rt-thread.git 這個后台地址有驚喜! http://www.rt-thread.org/download/manual 用戶手冊采用md格式,一套多用,有pdf、網頁,還有微信。 附錄 1、SCons是一套由Python語言編寫的開源構建系統,類似於GNU Make。它采用不同於通常Makefile文件的方式, 而使用SConstruct和SConscript文件來替代。這些文件也是Python腳本,能夠使用標准的Python語法來編寫。 所以在SConstruct、SConscript文件中可以調用Python標准庫進行各類復雜的處理,而不局限於Makefile設定的規則。 2、Makefile:一個文本形式的文件,其中包含一些規則告訴make編譯哪些文件以及怎樣編譯這些文件。 3、Kconfig:一個文本形式的文件,其中主要作用是在內核配置時候,作為配置選項。 4、.config:文件是在進行內核配置的時候,經過配置后生成的內核編譯參考文件。 Git clone 取出服務器的倉庫的代碼到本地建立的目錄中(與服務器交互) Git pull 從服務器的倉庫中獲取代碼,和本地代碼合並 Git push 將本地commit的代碼更新到遠程版本庫中 相當於從遠程獲取最新版本到本地,不會自動merge,比Git pull更安全些。 Git commit 提交當前工作目錄的修改內容。 Git rm 從當前的工作目錄中和索引中刪除文件。   

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM