0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

STM32CubeIDE所支持的几个调试小工具及功能

茶话MCU 来源:茶话MCU 作者:茶话MCU 2022-07-11 09:59 次阅读
意法半导体ST公司为广大STM32用户免费提供了基于GCC的功能强大集成调试工具STM32CubeIDE。这里简单演示下STM32CubeIDE所支持的几个调试小工具及功能。


d9bfe166-00bb-11ed-ba43-dac502259ad0.png

1、利用Live Expression 实时显示变量数据;

2、利用SWVSWO功能实现printf打印输出;

3、利用SWV实现数据实时跟踪动态图形显示;

4、利用CubeIDE集成的串口终端软件实现printf输出;

要实现liveexpression,首先要在debugger配置中使能该功能,如下图中1处所示。若要使用SWV功能,也需在debugger配置中使能相关选项,如下图中2处所示。
d9cf8044-00bb-11ed-ba43-dac502259ad0.png
要实现SWO输出,基于CubeMx进行配置时,要做如下操作:


d9ebd2bc-00bb-11ed-ba43-dac502259ad0.png  

然后在代码里需添加些许代码,在main文件前面加上:

#include"stdio.h"int __io_putchar(int ch){ITM_SendChar(ch);return(ch);}

另外,在用户代码区添加下面代码【针对CubeIDE而言,不同IDE写法略有不同】:

/* USER CODE BEGIN 4 */int _write(int file, char *ptr, int len){int DataIdx;for (DataIdx = 0; DataIdx < len; DataIdx++){ __io_putchar( *ptr++);}return len;}/* USER CODE END 4 */

【注:上面这个函数代码有些版本应该不需要添加了,在那个syscalls.c文件里已经有了该函数。不过它是弱定义,你再写一次也无妨。】


我这里定义了几个全局变量,通过Live ExpressionSWO 打印输出结果。

uint8_t countcir=0;

float Var1=0.0;

float Var2=0.0;


要通过SWO输出结果,在CubeIDE里面还需打开相关功能项,如下图所示:

d9fb45b2-00bb-11ed-ba43-dac502259ad0.png

编译完成后,点击小虫子图标进入调试状态并运行:


da10d3dc-00bb-11ed-ba43-dac502259ad0.png  

我们可以看到,下图右上角是live expression结果,图形下部分是基于SWO的printf输出。

da225ec2-00bb-11ed-ba43-dac502259ad0.png

如果我们要利用SWV实现变量数据的实时图像显示,还需要做些配置。打开IDE环境下window/SWV的相关功能项,即将下图中第1部分中SWV下面的SWV Data Trace Timeline Graph选上。然后进入调试状态,点击下图中第2部分的蜻蜓状的图标进入设置阶段,即下图中的第3部分。


这里我对变量countcirVar2进行实时监测,做适当的勾选和填写,并启用ITM port0

【注意图中星号所标记的地方】


da4797b4-00bb-11ed-ba43-dac502259ad0.png


配置完成确认后,再进入调试状态并运行,可以看到下面结果:

da600e98-00bb-11ed-ba43-dac502259ad0.png

上图中下半部分的红色正弦波是Var2的实时显示图形,橙色直线是countcir的实时变化图形。 顺便提醒下,我在上面的输出中使用到了浮点数,要想printf正常运行,有个地方我们还需要在工程属性那里做些配置,如下图示,勾选即可。

da77ab16-00bb-11ed-ba43-dac502259ad0.png  


下面简单介绍下使用STM32CubeIDE集成的串口终端软件基于UART做打印输出。平常我们基于UARTprintf时往往还得在PC端装个串口终端软件,如果使用CubeIDE就可以省去这一步了,无须额外安装类似工具软件了,它已经给我们集成了相关部件在里面。 当我们完成编译,进入调试状态后,可以参照下图所示步骤进行配置

da8eed80-00bb-11ed-ba43-dac502259ad0.png  

当然,相应的重定向代码还是要自行添加的,这点跟使用其它IDE是一样的。

CubeIDE为例,在main()前面添加下面代码:

/* USER CODE BEGIN PM */#ifdef __GNUC__/* With GCC, small printf(option LD Linker->Libraries->Small printfset to 'Yes') calls __io_putchar() */#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)#else#define PUTCHAR_PROTOTYPE intfputc(int ch, FILE *f)#endif/* __GNUC__ *//* USER CODE END PM */

然后在用户代码区添加下面代码:

/* USER CODE BEGIN 4 *//* @brief Retargets the C library printffunction to the USART.*/ PUTCHAR_PROTOTYPE{/* Place yourimplementation of fputc here */HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xFFFF);return ch;}/* USER CODE END 4 */

关于CubeIDE环境下的几个调试小工具就介绍到这里。大家根据自己的喜好等灵活选用。当然,STM32CubeIDE功能很丰富、很强大,更多功能有待你去探究挖掘。 最后,分享一个关于STM32CubeIDE培训视频资料的站点,在www.stmcu.com.cn的设计资源区,如下图所示:

daa2f230-00bb-11ed-ba43-dac502259ad0.png  

有兴趣的可以去看看,观看时建议选择超清效果来看,否则有些内容可能看不清。如果有人不知道哪里可以下载免费的STM32CubeIDE,点击左下方的“原文阅读”获取链接信息,它支持多个OS,你选择所需要的版本,比方windows版的。

dab5b726-00bb-11ed-ba43-dac502259ad0.png

好,就此打住。希望上面分享能对您有帮助,祝君好运!


审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • STM32
    +关注

    关注

    2239

    文章

    10665

    浏览量

    348518
  • 意法半导体
    +关注

    关注

    30

    文章

    2982

    浏览量

    107953
  • 调试工具
    +关注

    关注

    1

    文章

    42

    浏览量

    12553

原文标题:STM32CubeIDE几个调试工具使用演示

文章出处:【微信号:stmcu832,微信公众号:茶话MCU】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    STM32CubeIDE入门教程 STM32CubeIDE安装使用教程

    STM32CubeIDE是一个高级C / C ++开发平台,具有用于STM32微控制器和微处理器的外设配置,代码生成,代码编译和调试功能。它基于Eclipse® / CDT框架和GCC
    的头像 发表于 06-08 09:19 7470次阅读
    <b class='flag-5'>STM32CubeIDE</b>入门教程 <b class='flag-5'>STM32CubeIDE</b>安装使用教程

    C语言注释删除小工具的使用教程

    C语言注释删除小工具是什么?C语言注释删除小工具共有几个状态?
    发表于 10-18 06:06

    STM32CubeIDE使用入门的几个常见问题

    当然。可以说STM32cubeIde已经将stm32CubeMx作为一个模块嵌入其开发环境中了。我们在通过CubeIDE新建工程时,会自动调用stm32CubeMx进来,让用户进行图形
    的头像 发表于 11-20 14:49 7.4w次阅读
    <b class='flag-5'>STM32CubeIDE</b>使用入门的<b class='flag-5'>几个</b>常见问题

    STM32CubeIDE属于一站式工具介绍

    STM32CubeIDE属于一站式工具,本文带你体验它的强大
    的头像 发表于 03-01 13:19 7332次阅读

    STM32CubeIDE乃ST官方提供的免费且功能强大的集成开发工具

    STM32CubeIDE乃ST官方提供的免费且功能强大的集成开发工具,令STM32Cube生态系统更为丰富强劲。它基于Eclipse/CDT框架、GCC编译
    的头像 发表于 03-31 15:26 5243次阅读
    <b class='flag-5'>STM32CubeIDE</b>乃ST官方提供的免费且<b class='flag-5'>功能</b>强大的集成开发<b class='flag-5'>工具</b>

    STM32CubeIDE SWV功能介绍

    01 引言 STM32CubeIDE是ST官方推出的集成开发环境,集成了很多STM32调试与开发工具。本文主要介绍如何使用SWV功能来打印
    的头像 发表于 10-13 14:20 3219次阅读
    <b class='flag-5'>STM32CubeIDE</b> SWV<b class='flag-5'>功能</b>介绍

    STM32CubeIDE使用

    参考STM32CubeIDE属于一站式工具,本文带你体验它的强大第一个STM32CubeIDE项目STM32CubeIDE使用记录STM32Cube
    发表于 12-02 17:21 26次下载
    <b class='flag-5'>STM32CubeIDE</b>使用

    STM32CubeIDE初识

    STM32CubeIDE初识
    发表于 12-02 18:36 23次下载
    <b class='flag-5'>STM32CubeIDE</b>初识

    STM32CubeIDE安装-NSIS Error问题

    STM32CubeIDE安装-NSIS Error问题
    发表于 12-03 21:06 17次下载
    <b class='flag-5'>STM32CubeIDE</b>安装-NSIS Error问题

    STM32CubeIDE的MCU开发

    STM32开发环境是ARM公司的KEIL软件, 由于KEIL对于STM32大部分型号是收费的, 使用需要破解, 存在版权问题。 并且使用KEIL编译大型工程, 编译太慢了, 编译耗时长。STM32CubeIDE是ST公司推出的
    发表于 12-05 12:21 23次下载
    <b class='flag-5'>STM32CubeIDE</b>的MCU开发

    第一个STM32CubeIDE项目

    择NEW -> STM32 Project这里注意,我又使用WIndows下载了STM32CubeIDE,因为MAC总在要下载工具的地方停止。可以在Part Number栏直接输...
    发表于 12-29 19:29 8次下载
    第一个<b class='flag-5'>STM32CubeIDE</b>项目

    STM32CubeIDE支持几个调试小工具功能

    打开IDE环境下window/SWV的相关功能项,即将下图中第1部分中SWV下面的SWV Data Trace Timeline Graph选上。然后进入调试状态,点击下图中第2部分的蜻蜓状的图标进入设置阶段,即下图中的第3部分。
    的头像 发表于 07-11 09:58 1384次阅读

    基于STM32CubeIDE调试配置

    当我把这个地方取消勾选后,使用前面相同代码做验证调试,此时不再触发异常并返回0值结果。到此,也就解释了发生除以0操作时,为什么STM32CubeIDE会出现与MDK、IAR不同的调试结果。
    的头像 发表于 10-08 10:01 3047次阅读

    STM32CUBEIDE(1)----安装

    STM32CubeIDE集成了STM32CubeMX的STM32配置与项目创建功能,以便提供一体化工具体验,并节省安装与开发时间。在通过
    的头像 发表于 11-22 09:52 847次阅读
    <b class='flag-5'>STM32CUBEIDE</b>(1)----安装

    巧用 STM32CubeIDE 之编译警告

    巧用 STM32CubeIDE 之编译警告
    的头像 发表于 10-25 16:33 542次阅读
    巧用 <b class='flag-5'>STM32CubeIDE</b> 之编译警告