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

这篇具有很好参考价值的文章主要介绍了在STM32CubeIDE中使用Tracealyzer图形化调试FreeRTOS。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

概述

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版,否则会导致出错,如下图所示。

tracealyzer,STM32单片机,stm32,单片机,嵌入式硬件

步骤2:添加源代码

安装完毕后,从软件help菜单,选择FreeRTOS Trace Recoder,打开源代码目录。
tracealyzer,STM32单片机,stm32,单片机,嵌入式硬件
tracealyzer,STM32单片机,stm32,单片机,嵌入式硬件
在cude工程中,新建一个Tracelyzer目录,把所有的文件都拷贝到该目录下面。
tracealyzer,STM32单片机,stm32,单片机,嵌入式硬件

步骤3:修改配置文件

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

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

修改为下图所示包含文件。
tracealyzer,STM32单片机,stm32,单片机,嵌入式硬件
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。
tracealyzer,STM32单片机,stm32,单片机,嵌入式硬件
打开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:添加头文件路径

添加对应的头文件路径
tracealyzer,STM32单片机,stm32,单片机,嵌入式硬件

步骤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选项,进行配置
tracealyzer,STM32单片机,stm32,单片机,嵌入式硬件
配置如下所示:
tracealyzer,STM32单片机,stm32,单片机,嵌入式硬件

步骤11:捕获数据

运行程序,并在适当的时间暂停,选择Save Snapshot Trace选项,便可打开跟踪数据窗口。
tracealyzer,STM32单片机,stm32,单片机,嵌入式硬件文章来源地址https://www.toymoban.com/news/detail-698246.html

到了这里,关于在STM32CubeIDE中使用Tracealyzer图形化调试FreeRTOS的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

领支付宝红包 赞助服务器费用

相关文章

  • stm32 使用CubeIDE 移植RTX5

     STM32 使用st的官方开发环境 cubeide (eclipse gcc)移植 cmsis rtos2 RTX5 实时操作系统 这套环境的主要优势是免费。cubeide免费使用。RTX5 免商业版税(已从原keil中剥离出来,现在完全开源免费)。 芯片:stm32f401rct6 内核:cortex m4f 指令集:armv7m 编译:gcc ide:CubeIDE(eclipse) CMSIS版

    2024年02月16日
    浏览(56)
  • STM32CubeIDE(MX)下载安装、汉化、使用

    首先配置JAVA环境 JAVA下载地址https://www.java.com/zh-CN/download/ JAVA安装: 1、打开.exe安装包,勾选更改目标文件夹,点击安装 2、选择安装路径,点击下一步 3、等待安装,安装完毕,点击关闭 确认JAVA已经安装: win+R----输入命令符cmd----输入Java -version----看到版本号证明安装完成

    2024年02月07日
    浏览(46)
  • STM32CubeIDE---HAL库PWM使用速记

    理论分析:HAL库函数之呼吸灯——PWM波 - 简书 (jianshu.com) 预分频系数 PSC 自动重装载值 ARR 捕获/比较寄存器值 CCR 频率计算:定时器频率 / (PSC+1) / (ARR+1) 占空比计算:CCRx / ARR 此外有效电平是可以设置的。 HAL_TIM_PWM_Start要放在定时器结构体初始化后、PWM设置前。 __HAL_TIM_SET_COM

    2024年02月15日
    浏览(36)
  • STM32CubeIDE学习笔记——使用HAL库PWM输出驱动舵机

    目录 PWM驱动简介 工程配置 代码编写 这里我采用的是STM32F103C8T6最小系统板,SG-90舵机实现功能。 舵机驱动角度和PWM占空比有关系,具体对应为50--0度  150--90度  250--180度,通过STM32的定时器功能输出PWM波来控制舵机进行转动。  时钟选择外部高速时钟 系统映射配置 时钟树设

    2024年02月13日
    浏览(38)
  • STM32 CubeIDE 使用 CMSIS-DAP烧录 (方法1--修改配置文件)

            STM32CubeIDE目前只支持ST-Link、J-Link.         到目前2023年12月,还没更新到直接支持CMSIS DAP. 我们需要稍作修改才能让它支持CMSIS-DAP。         本篇方法:修改配置文件。修改后,可以在CubeIDE中使用CMSIS DAP烧录,无需借助其它工具。         倘若尝试修改不成

    2024年01月17日
    浏览(44)
  • 【STM32CubeIDE】STM32CubeIDE_快速入门

    本文主要通过新建LED控制工程来简要介绍STM32CubeIDE的简单使用方法 双击桌面快捷方式或者通过Start目录打开软件 在弹出的界面中选择Workspace地址 本人理解此workspace是软件的工作空间,存放软件配置的一些文件 点击新建工程图标或者在菜单栏中选择新建工程 弹出加载界面等待

    2023年04月23日
    浏览(52)
  • 软件STM32cubeIDE下STM32F1xx使用定时器(TIM8)+DMA+PWM点亮灯带WS2812-基础样例

    好长时间不调试灯带ws2812了,最近项目上,要在STM32F1上进行点灯带ws2812,虽然自己之前做了很多了,但是人有个性质,一旦某个事情做完了,你不在去惦记它了,基本会完全抛在脑后。所以才体现记录的重要性,本次在做STM32F1上验证时,即使之前有经验的情况下,还是掉坑

    2024年02月01日
    浏览(60)
  • STM32CubeIDE 入门教程

    1.1 去ST 官网下载软件安装包:https://www.st.com/content/st_com/en.html  1.2软件安装:       2.1 双击打开软件,选择工作区路径,不要出现中文名称    2.2 选择直接创建STM32 工程,我们这里以STM32F103C8 为例驱动LED 灯。         2.3 参数配置时钟源选择:  2.4 时钟树配置: 2.5 配置

    2024年02月15日
    浏览(44)
  • 【STM32Cube开发记录】1-下载和安装STM32CubeIDE

    【STM32Cube开发记录】1-下载和安装STM32CubeIDE 【STM32Cube开发记录】2-STM32CubeProgrammer的使用 【STM32Cube开发记录】3-STM32CubeMX的使用 【STM32Cube开发记录】4-标准库 HAL库 LL库 【STM32Cube开发记录】5-寄存器和存储器映射 【STM32Cube开发记录】6-STM32核心功能 【STM32Cube开发记录】7-Debug调试功

    2024年01月17日
    浏览(43)
  • STM32 | CubeIDE 配置Include路径

    这个Matrix文件夹是我写代码的,c于.h文件 这样子在Cubeide 生成代码的时候,不会影响到自己编写的原有代码结构。 在这个时候需要关联Include才能正确识别; 点击工程选择Properties 点击C/C++ Build 点击Paths and Symbols Include选项卡中添加 ADD,你要包含的文件夹 如在Workspace中则对应点

    2024年02月15日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包