加入星計劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入

【RT-Thread作品秀】遠(yuǎn)程調(diào)試終端

2020/12/15
533
服務(wù)支持:
技術(shù)交流群

完成交易后在“購買成功”頁面掃碼入群,即可與技術(shù)大咖們分享疑惑和經(jīng)驗、收獲成長和認(rèn)同、領(lǐng)取優(yōu)惠和紅包等。

虛擬商品不可退

當(dāng)前內(nèi)容為數(shù)字版權(quán)作品,購買后不支持退換且無法轉(zhuǎn)移使用。

加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論
放大
方塊圖(2)
  • 方案介紹
  • 相關(guān)文件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

RT-Thread作品秀】遠(yuǎn)程調(diào)試終端

作者:鐘良濤

概述

本設(shè)計靈感來源于調(diào)試人員出差調(diào)試設(shè)備遇到困難時,提供指導(dǎo)的工程師可以遠(yuǎn)程實時查看調(diào)試數(shù)據(jù),以提供指導(dǎo)。本設(shè)計實現(xiàn)了一個遠(yuǎn)程調(diào)試助手,ART-Pi接收到無線串口按一定協(xié)議發(fā)送的數(shù)據(jù)后,將數(shù)據(jù)解析并打包為json格式發(fā)送給訂閱該話題的MQTT上位機(jī)。搭配ART-Pi Mate可實現(xiàn)多種通信接口的調(diào)試。

開發(fā)環(huán)境

硬件ART-Pi  ART-Pi Mate(自主設(shè)計)

RT-Thread版本:4.0.3

開發(fā)工具及版本:RT-Thread Studio 2.0.0  PyCharm20.2  Python3.7

 

RT-Thread使用情況概述

組件:finsh、lwIP、SPI、串口、Pin

軟件包:cjson、wlan_wiced、phaomqtt、AT command

內(nèi)核:信號量、多線程

硬件框架

硬件框圖如上圖所示,硬件部分由ART-PiART-Pi Mate和以CC2530無線透傳模塊模擬的調(diào)試設(shè)備組成。其中ART-Pi Mate為專為ART-Pi設(shè)計的擴(kuò)展板,包含LCD、UARTNRF24L01等功能。

CC2530無線透傳模塊模擬待調(diào)試的設(shè)備,將該模塊連接到PC機(jī),按照固定的協(xié)議格式發(fā)送數(shù)據(jù)包到ART-Pi Mate上焊接的CC2530無線透傳,ART-Pi以串口中斷的方式進(jìn)行數(shù)據(jù)讀取并解析,隨后將數(shù)據(jù)打包為Json格式通過Wifi發(fā)送至MQTT上位機(jī)。

軟件框架說明

該應(yīng)用中軟件分為嵌入式軟件部分和桌面端軟件。嵌入式軟件實現(xiàn)調(diào)試終端的數(shù)據(jù)接收、解析、打包、發(fā)布等功能,桌面端軟件實現(xiàn)數(shù)據(jù)的接收和顯示功能。軟件流程如上圖所示,調(diào)試終端數(shù)據(jù)處理線程對CC2530無線透傳模塊發(fā)送的數(shù)據(jù)進(jìn)行解析、打包,然后由MQTT客戶端線程進(jìn)行數(shù)據(jù)發(fā)布。桌面端軟件的MQTT客戶端線程訂閱調(diào)試終端發(fā)送的話題,然后通過信號槽的方式通知Qt界面線程刷新界面以顯示數(shù)據(jù)。

軟件模塊說明

數(shù)據(jù)接收模塊

數(shù)據(jù)接收模塊通過串口中斷的方式實現(xiàn),首先以中斷的方式打開串口設(shè)備,然后每當(dāng)有數(shù)據(jù)達(dá)到時,觸發(fā)相應(yīng)的中斷回調(diào)函數(shù),在中斷回調(diào)函數(shù)里發(fā)送有數(shù)據(jù)到達(dá)的信號量,通知數(shù)據(jù)處理線程進(jìn)行數(shù)據(jù)讀取。

 

數(shù)據(jù)解包:

數(shù)據(jù)包的格式定義如下:

狀態(tài)機(jī)的方式進(jìn)行數(shù)據(jù)解包,狀態(tài)機(jī)轉(zhuǎn)移圖如下圖所示:

數(shù)據(jù)打包:

       該設(shè)計將JSON打包為如下格式:

演示效果

演示視頻:

比賽感悟

通過本次比賽熟悉了rt-thread的操作系統(tǒng)以及rt-thread studio的使用方式,被rt-thread優(yōu)雅的設(shè)計所折服。通過這次比賽,使用了rt-thread的線程、信號量、設(shè)備模型、組件、軟件包等功能,在搭配rt-thread studio進(jìn)行開發(fā)時,是非常的便捷的,直接在設(shè)置中打開對應(yīng)的功能,rt-thread studio就會自動下載好相應(yīng)的資源并為我們配置好,使原本復(fù)雜的配置過程簡單化,極大程度的提高了開發(fā)效率。

在參賽過程中也遇到了不少問題,其中包括開發(fā)板啟動不成功,最后通過重新刷寫bootloader解決;還有出現(xiàn)了線程堆棧溢出,通過調(diào)整堆棧大小解決;還有自己編寫的軟件模塊在重新配置軟件包后在工程中消失的問題,最后重新新建源代碼文件夾解決;選擇MQTT軟件包并使能例程后,源代碼中沒有對應(yīng)代碼,最后發(fā)現(xiàn)和軟件包版本有關(guān)系。總之,開發(fā)過程中遇到了一些大大小小的問題,但解決問題的過程就是能力提升的過程,也很感謝主辦方提供的這次寶貴的比賽機(jī)會。

  • 代碼地址.txt
    描述:代碼地址
  • 遠(yuǎn)程調(diào)試終端.docx
    描述:遠(yuǎn)程調(diào)試終端

相關(guān)推薦

電子產(chǎn)業(yè)圖譜