热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

STM32F429+Trace+JLink配置

文章完全参考Trace跟踪软甲提供的userManual,遇到问题详细阅读参考手册肯定能解决Trace提供了两种跟踪调试的方式:1、快照模式;2、流模

文章完全参考Trace跟踪软甲提供的user Manual, 遇到问题详细阅读参考手册肯定能解决

Trace提供了两种跟踪调试的方式:1、快照模式 ; 2、流模式

首先下载Trace跟踪调试器,因为是收费软件,但是可以下载适用版本

这里假设已经移植好了FreeRTOS,移植过程可以看之前的文章

接下来:

1、移植TraceRecorder

        复制安装的Trace下的文件夹到自己的工程,地址为:

  1.1 添加.c .h 文件

 将TraceRecoder下的c文件添加到工程,并且添加以下头文件路径:

 

1.2 添加streaming 端口文件

    Trace支持以下几种方式来传输实时数据:

我们这里使用JLink_RTT模式

因此还需添Jlink_RTT文件夹下的.c文件以及头文件路径(include文件夹内)

最终的文件结构如下:

2、修改宏定义

修改trcConfig.h:

根据你的芯片型号添加  #include "stm32f4xx.h",并去掉#error

#include "stm32f4xx.h"
//#error "Trace Recorder: Please include your processor's header file here and remove this line."

选择芯片内核:

#define TRC_CFG_HARDWARE_PORT TRC_HARDWARE_PORT_ARM_Cortex_M//default TRC_HARDWARE_PORT_NOT_SET

选择流模式:(默认为快照模式)

#define TRC_CFG_RECORDER_MODE TRC_RECORDER_MODE_STREAMING//TRC_RECORDER_MODE_SNAPSHOT

选择FreeRTOS版本:

#define TRC_CFG_FREERTOS_VERSION TRC_FREERTOS_VERSION_10_0_0

FreeRTOSConfig.h:

#define configUSE_TRACE_FACILITY 1 //默认0
#define configUSE_STATS_FORMATTING_FUNCTIONS 1 //添加

末尾添加:

/**添加以下代码,trace**/
/* Integrates the Tracealyzer recorder with FreeRTOS */
#if ( configUSE_TRACE_FACILITY == 1 )
#include "trcRecorder.h"
#endif

最后在main文件中添加:

vTraceEnable();添加在硬件初始化之后,任务开始之前

int main(void)
{BSP_init();//Hardware initvTraceEnable(TRC_START_AWAIT_HOST);// wait for host cmd APPTaskCreate();vTaskStartScheduler();while(1);
}
vTraceEnable(TRC_START_AWAIT_HOST);// wait for host cmd APPTaskCreate();vTaskStartScheduler();while(1);
}

 

3、配置J-Link

 

首先在keil中配置:

再在tracealyzer中配置:

最后在live stream中启动连接,即可启动trace



上传了配置好的工程文件,可以用来测试(比较):trace_FreeRTOS

 

 

 

 

 

 

 

 

 

 


推荐阅读
  • 如何自行分析定位SAP BSP错误
    The“BSPtag”Imentionedintheblogtitlemeansforexamplethetagchtmlb:configCelleratorbelowwhichi ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 本文介绍了九度OnlineJudge中的1002题目“Grading”的解决方法。该题目要求设计一个公平的评分过程,将每个考题分配给3个独立的专家,如果他们的评分不一致,则需要请一位裁判做出最终决定。文章详细描述了评分规则,并给出了解决该问题的程序。 ... [详细]
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
  • 开发笔记:实验7的文件读写操作
    本文介绍了使用C++的ofstream和ifstream类进行文件读写操作的方法,包括创建文件、写入文件和读取文件的过程。同时还介绍了如何判断文件是否成功打开和关闭文件的方法。通过本文的学习,读者可以了解如何在C++中进行文件读写操作。 ... [详细]
  • Java太阳系小游戏分析和源码详解
    本文介绍了一个基于Java的太阳系小游戏的分析和源码详解。通过对面向对象的知识的学习和实践,作者实现了太阳系各行星绕太阳转的效果。文章详细介绍了游戏的设计思路和源码结构,包括工具类、常量、图片加载、面板等。通过这个小游戏的制作,读者可以巩固和应用所学的知识,如类的继承、方法的重载与重写、多态和封装等。 ... [详细]
  • 本文介绍了使用kotlin实现动画效果的方法,包括上下移动、放大缩小、旋转等功能。通过代码示例演示了如何使用ObjectAnimator和AnimatorSet来实现动画效果,并提供了实现抖动效果的代码。同时还介绍了如何使用translationY和translationX来实现上下和左右移动的效果。最后还提供了一个anim_small.xml文件的代码示例,可以用来实现放大缩小的效果。 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • 阿,里,云,物,联网,net,core,客户端,czgl,aliiotclient, ... [详细]
  • 本文讨论了在Spring 3.1中,数据源未能自动连接到@Configuration类的错误原因,并提供了解决方法。作者发现了错误的原因,并在代码中手动定义了PersistenceAnnotationBeanPostProcessor。作者删除了该定义后,问题得到解决。此外,作者还指出了默认的PersistenceAnnotationBeanPostProcessor的注册方式,并提供了自定义该bean定义的方法。 ... [详细]
  • eclipse学习(第三章:ssh中的Hibernate)——11.Hibernate的缓存(2级缓存,get和load)
    本文介绍了eclipse学习中的第三章内容,主要讲解了ssh中的Hibernate的缓存,包括2级缓存和get方法、load方法的区别。文章还涉及了项目实践和相关知识点的讲解。 ... [详细]
  • 3.223.28周学习总结中的贪心作业收获及困惑
    本文是对3.223.28周学习总结中的贪心作业进行总结,作者在解题过程中参考了他人的代码,但前提是要先理解题目并有解题思路。作者分享了自己在贪心作业中的收获,同时提到了一道让他困惑的题目,即input details部分引发的疑惑。 ... [详细]
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
  • 本文讨论了clone的fork与pthread_create创建线程的不同之处。进程是一个指令执行流及其执行环境,其执行环境是一个系统资源的集合。在调用系统调用fork创建一个进程时,子进程只是完全复制父进程的资源,这样得到的子进程独立于父进程,具有良好的并发性。但是二者之间的通讯需要通过专门的通讯机制,另外通过fork创建子进程系统开销很大。因此,在某些情况下,使用clone或pthread_create创建线程可能更加高效。 ... [详细]
  • 本文讨论了在openwrt-17.01版本中,mt7628设备上初始化启动时eth0的mac地址总是随机生成的问题。每次随机生成的eth0的mac地址都会写到/sys/class/net/eth0/address目录下,而openwrt-17.01原版的SDK会根据随机生成的eth0的mac地址再生成eth0.1、eth0.2等,生成后的mac地址会保存在/etc/config/network下。 ... [详细]
author-avatar
讲述华哥传奇的生活_616
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有