ubuntu 串口调试工具_RTThread 野生单步调试法

背景介绍:
Sugar 不常用单步调试,所以一直没想起来写这个。
最近不少人玩 RT-Thread Studio 并对单步调试感兴趣。
但在 Linux 该咋搞呢?Sugar 这篇就来说一说。这一篇内容很丰富,不只有单步调试的内容哦。

上视频(先有真像再讲道理)

6 分钟,包含:git clone 源码、自动生成 Makefile、在 Eclipse 里建立项目并配置、在 Eclipse 里编译、在 Eclipse 里单步调试。

Git图形界面的使用

上面视频中从 00:05 ~ 00:56 演示了用 SmartGit 从 github 上获取代码的过程。
特点:不记 git 命令照样会用 git,且各平台(Win、Linux、MAC)通用。

对如何使用 SmartGit 有兴趣的,在公众号后台回复 git 获得 Sugar 的讲解视频。

自动生成 Makefile

视频中 00:57 ~ 01:29 演示了使用 progen 自动生成 Makefile。
特点:只维护文件,不维护工程,通吃 MDK5、IAR 和 GCC。

想了解如何自动生成工程的,请参看:《一招通吃 MDK5、IAR、GCC》

project generator 是一个与时俱进的项目,Sugar 写推文的时候用的是 Python 2.7,现在 Python 3.x 也能用了呢。

Eclipse C/C++ IDE

视频中 01:30 ~ 03:06 演示了如何使用 Eclipse C/C++ IDE 创建工程并编译。

注意:02:44 处的 Build location 要设置成 Makefile 所在目录

OpenOCD 调试设置

视频中 03:07 ~ 04:15 演示了如何在 Eclipse 里设置 OpenOCD 的调试。

注意:-f board/stm32f103c8tocb.cfg 是 Sugar 新建的自定义配置。目的是使用 stm32f103c8 的福利 Flash(相当于 stm32f103cb)。

对这个自定义配置感兴趣的读者可以在公众号“关于我”页面加 Sugar 为好友索取。

Sugar 惯用 stm32 的虚拟串口调试,但如果加上这个功能 stm32f103c8 的 Flash 就不够了。这时候有两个选择:一是精简优化代码,二是使用福利 Flash。Sugar 选后者,至今还没遇到过福利 Flash 出问题的情况,赞 stm32 的品质。

进入 Debug 出错咋办?

视频中 04:16 ~ 04:50 展示进入 Debug 模式后报错的解决过程。
可能与使用了视利 Flash 有关,不过不影响实际使用。

解决办法解说:成功进入调试后按一下遥控上的复位键,程序跑起来之后在 Eclipse 里点 Resume(F8) 图标进入调试,再按一下遥控上的复位键即可。

Sugar 对正常单片机单步从来没遇到这个错,所以大家不必担心。Sugar 猜想这就是因为使用 stm32 福利 Flash 造成的。

RT-Thread 与 C++

视频中 05:07 ~ 05:13 演示了在 RT-Thread 下 Debug 结合 C++ 的代码。

如何在 RT-Thread 上使用 C++ 可以参考:《rt-thread 与 C++ 的美满姻缘》

配置单步都需要啥

1、Eclipse C/C++ IDE 里要装一个 MCU 相关的插件。

0f502c35d036e80d844d9535f547cb18.png

2、不知道 openocd 装在哪里怎么办?

# 获取 openocd 安装位置      which openocd

57235f5a20b36ac7f98fee0d17ca1ddf.png

3、MCU 插件里的两个重要设置

fe3d13d639bc380b511c2ecaca4e5718.png

3deb2fcc3a8a7bae2f0c4b4e372b9916.png

PS

Sugar 长期使用 Ubuntu,一般出门都不带电脑只带一个小小的 Liunx2Go SSD。现在电脑随处可见的时代,随身系统显得很方便了。Sugar 的 Linux2Go 系统盘里常见的创客开发环境和工具都有,工具非常丰富。Sugar 有点懒,一直没有拿到台面上来卖,这里提一下,有想要的可以在“关于我”页面加 Sugar 微信聊。

8f03017bd94cdc0e315e73fa580ea87b.png

9a6fdcc37aeceb9c857c7293efbb124b.png

关注作者

欢迎扫码关注我的公众号MultiMCU EDU

67793ddd2312d4a680c1ecc947ec1618.png

提示:在公众号“关于我”页面可加作者微信好友。

喜欢本文求点赞,有打赏我会更有动力。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
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使用情况概述组件:finsh、lwIP、SPI、串口、Pin 软件包:cjson、wlan_wiced、phaomqtt、AT command 内核:信号量、多线程 硬件框架硬件框图如上图所示,硬件部分由ART-Pi和ART-Pi Mate和以CC2530无线透传模块模拟的调试设备组成。其中ART-Pi Mate为专为ART-Pi设计的扩展板,包含LCD、UART、NRF24L01等功能。 以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软件包并使能例程后,源代码中没有对应代码,最后发现和软件包版本有关系。总之,开发过程中遇到了一些大大小小的问题,但解决问题的过程就是能力提升的过程,也很感谢主办方提供的这次宝贵的比赛机会。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值