加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入

【RT-Thread作品秀】远程调试终端

2020/12/15
571
服务支持:
技术交流群

完成交易后在“购买成功”页面扫码入群,即可与技术大咖们分享疑惑和经验、收获成长和认同、领取优惠和红包等。

虚拟商品不可退

当前内容为数字版权作品,购买后不支持退换且无法转移使用。

加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论
放大
方块图(2)
  • 方案介绍
  • 相关文件
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

RT-Thread作品秀】远程调试终端

作者:钟良涛

概述

本设计灵感来源于调试人员出差调试设备遇到困难时,提供指导的工程师可以远程实时查看调试数据,以提供指导。本设计实现了一个远程调试助手,ART-Pi接收到无线串口按一定协议发送的数据后,将数据解析并打包为json格式发送给订阅该话题的MQTT上位机。搭配ART-Pi Mate可实现多种通信接口的调试。

开发环境

硬件ART-Pi  ART-Pi Mate(自主设计)

RT-Thread版本:4.0.3

开发工具及版本:RT-Thread Studio 2.0.0  PyCharm20.2  Python3.7

 

RT-Thread使用情况概述

组件:finshlwIPSPI、串口、Pin

软件包:cjsonwlan_wicedphaomqttAT command

内核:信号量、多线程

硬件框架

硬件框图如上图所示,硬件部分由ART-PiART-Pi Mate和以CC2530无线透传模块模拟的调试设备组成。其中ART-Pi Mate为专为ART-Pi设计的扩展板,包含LCDUARTNRF24L01等功能。

CC2530无线透传模块模拟待调试的设备,将该模块连接到PC机,按照固定的协议格式发送数据包到ART-Pi Mate上焊接的CC2530无线透传,ART-Pi以串口中断的方式进行数据读取并解析,随后将数据打包为Json格式通过Wifi发送至MQTT上位机。

软件框架说明

该应用中软件分为嵌入式软件部分和桌面端软件。嵌入式软件实现调试终端的数据接收、解析、打包、发布等功能,桌面端软件实现数据的接收和显示功能。软件流程如上图所示,调试终端数据处理线程对CC2530无线透传模块发送的数据进行解析、打包,然后由MQTT客户端线程进行数据发布。桌面端软件的MQTT客户端线程订阅调试终端发送的话题,然后通过信号槽的方式通知Qt界面线程刷新界面以显示数据。

软件模块说明

数据接收模块

数据接收模块通过串口中断的方式实现,首先以中断的方式打开串口设备,然后每当有数据达到时,触发相应的中断回调函数,在中断回调函数里发送有数据到达的信号量,通知数据处理线程进行数据读取。

 

数据解包:

数据包的格式定义如下:

状态机的方式进行数据解包,状态机转移图如下图所示:

数据打包:

       该设计将JSON打包为如下格式:

演示效果

演示视频:

比赛感悟

通过本次比赛熟悉了rt-thread的操作系统以及rt-thread studio的使用方式,被rt-thread优雅的设计所折服。通过这次比赛,使用了rt-thread的线程、信号量、设备模型、组件、软件包等功能,在搭配rt-thread studio进行开发时,是非常的便捷的,直接在设置中打开对应的功能,rt-thread studio就会自动下载好相应的资源并为我们配置好,使原本复杂的配置过程简单化,极大程度的提高了开发效率。

在参赛过程中也遇到了不少问题,其中包括开发板启动不成功,最后通过重新刷写bootloader解决;还有出现了线程堆栈溢出,通过调整堆栈大小解决;还有自己编写的软件模块在重新配置软件包后在工程中消失的问题,最后重新新建源代码文件夹解决;选择MQTT软件包并使能例程后,源代码中没有对应代码,最后发现和软件包版本有关系。总之,开发过程中遇到了一些大大小小的问题,但解决问题的过程就是能力提升的过程,也很感谢主办方提供的这次宝贵的比赛机会。

  • 代码地址.txt
    描述:代码地址
  • 远程调试终端.docx
    描述:远程调试终端

相关推荐

电子产业图谱