在STM32CubeIDE中使用Tracealyzer图形化调试FreeRTOS

在STM32CubeIDE中使用Tracealyzer图形化调试FreeRTOS

  • 概述
    • 工作原理
    • 快照模式设置方法
      • 步骤1:安装软件
      • 步骤2:添加源代码
      • 步骤3:修改配置文件
      • 步骤4:修改配置文件2
      • 步骤5:修改配置文件3
      • 步骤6:修改配置文件4
      • 步骤7:添加头文件路径
      • 步骤8:添加启动代码
      • 步骤9:编译工程
      • 步骤10:配置插件
      • 步骤11:捕获数据

概述

Tracealyzer可以以图形化的方式跟踪记录FreeRTOS操作系统的工作相关信息。本文结合官方教程以及自己的实践,总结出了Tracealyzer在STM32CubeIDE开发环境中的使用方法。
网上很多同类教程是基于MDK(keil的),这里针对STM32CubeIDE进行了修改。

工作原理

Tracealyzer具有2种工作模式,快照模式snapshot mode和流模式streaming mode。在快照模式下,数据被存储到目标板的RAM中,当系统暂停时,可以读取数据。流模式下可以持续读取数据,时间可以长达几分钟或几个小时,但这需要某种高级的调试器支持如Jlink,或者是网络连接。
快照模式和流模式的设置基本上相同,流模式的设置仅有稍许不同。
FreeRTOS包含了超过100个跟踪hook,Tracelyzer正是利用这些hook进行数据的捕获和记录的,Tracelyzer同时还提供了自定义日志和事件的库

快照模式设置方法

步骤1:安装软件

  1. 下载并安装Tracelyzer软件,方法自行寻找。我这里使用的是4.6.6版本,10天试用版,可以从官方网站申请,但不对大陆IP开放。
  2. 在CubeIDE中,安装percepio插件,注意必须是for STM32CubeIDE版,否则会导致出错,如下图所示。

在这里插入图片描述

步骤2:添加源代码

安装完毕后,从软件help菜单,选择FreeRTOS Trace Recoder,打开源代码目录。

在这里插入图片描述
在cude工程中,新建一个Tracelyzer目录,把所有的文件都拷贝到该目录下面。
在这里插入图片描述

步骤3:修改配置文件

打开trcConfig.h文件,对文件内容进行如下修改

  1. 注释掉
#error "Trace Recorder: Please include your processor's header file here and remove this line."

修改为下图所示包含文件。
在这里插入图片描述
2. 将45行的

   #define TRC_CFG_HARDWARE_PORT TRC_HARDWARE_PORT_NOT_SET,

修改为:

    #define TRC_CFG_HARDWARE_PORT TRC_HARDWARE_PORT_ARM_Cortex_M

步骤4:修改配置文件2

打开trcKernelPortConfig.h文件,对文件内容进行如下修改

    #define TRC_CFG_FREERTOS_VERSION FREERTOS_VERSION_NOT_SET

修改为对应版本的FreeROTS版本号:

	#define TRC_CFG_FREERTOS_VERSION TRC_FREERTOS_VERSION_10_3_1
#define TRC_CFG_RECORDER_MODE TRC_RECORDER_MODE_STREAMING

修改为:

#define TRC_CFG_RECORDER_MODE TRC_RECORDER_MODE_SNAPSHOT

步骤5:修改配置文件3

打开 trcSnapshotConfig.h文件,将TRC_CFG_NTASK, TRC_CFG_NQUEUE等设置的足够大,如果不确定具体大小,可以在之后的调试中进行调整。

步骤6:修改配置文件4

打开CUDE系统配置,确认configUSE_TRACE_FACILITY为1。
在这里插入图片描述
打开FreeRTOSConfig.h文件,在文件的最后,添加如下代码:
#include "trcRecorder.h"如下所示:

#define USE_CUSTOM_SYSTICK_HANDLER_IMPLEMENTATION 0

/* USER CODE BEGIN Defines */
#include "trcRecorder.h"
/* Section where parameter definitions can be added (for instance, to override default ones in FreeRTOS.h) */
/* USER CODE END Defines */

#endif /* FREERTOS_CONFIG_H */

步骤7:添加头文件路径

添加对应的头文件路径
在这里插入图片描述

步骤8:添加启动代码

在main.c文件中,在硬件初始化后,FreeRTOS任务调度开始之前,添加下列语句:vTraceEnable(TRC_START),如下图所示。

  /* Configure the system clock */
  SystemClock_Config();

  /* USER CODE BEGIN SysInit */
  vTraceEnable(TRC_START);
  /* USER CODE END SysInit */

  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  MX_ETH_Init();
  MX_USART3_UART_Init();
  MX_USB_OTG_FS_PCD_Init();

步骤9:编译工程

编译整个工程

步骤10:配置插件

在IDE中,选择Percepio菜单的Preferences选项,进行配置
在这里插入图片描述
配置如下所示:
在这里插入图片描述

步骤11:捕获数据

运行程序,并在适当的时间暂停,选择Save Snapshot Trace选项,便可打开跟踪数据窗口。
在这里插入图片描述文章来源地址:https://www.uudwc.com/A/qRrDe/

原文地址:https://blog.csdn.net/missiler/article/details/128476202

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请联系站长进行投诉反馈,一经查实,立即删除!

h
上一篇2023年09月15日 00:16
下一篇 2023年09月15日 00:18