• 方案介紹
  • 附件下載
  • 相關(guān)推薦
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

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

2020/12/15
428
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

代碼地址.txt

共2個(gè)文件

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

作者:鐘良濤

概述

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

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

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

RT-Thread版本:4.0.3

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

 

RT-Thread使用情況概述

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

軟件包:cjson、wlan_wicedphaomqtt、AT command

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

硬件框架

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

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

軟件框架說明

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

軟件模塊說明

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

數(shù)據(jù)接收模塊通過串口中斷的方式實(shí)現(xiàn),首先以中斷的方式打開串口設(shè)備,然后每當(dāng)有數(shù)據(jù)達(dá)到時(shí),觸發(fā)相應(yīng)的中斷回調(diào)函數(shù),在中斷回調(diào)函數(shù)里發(fā)送有數(shù)據(jù)到達(dá)的信號(hào)量,通知數(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è)計(jì)將JSON打包為如下格式:

演示效果

演示視頻:

比賽感悟

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

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

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

相關(guān)推薦