在mdk中使用 event viewer功能 -凯发app
文章来源:米尔科技 发布日期:2021.1.19 浏览次数:28 次 |
event viewer可以在时间线上显示线程,中断,和异常情况,.他通过trace信息来展示时间轴信息,这些功能可以在 cortex-m3, m4, m7 设备上实现,但是他也需要仿真器设备来支持,例如 ulinkpro.
具体实现方法有如下两种 ,以stm32为例,
具体实现方法有如下两种 ,以stm32为例,
使能4位etm trace
在stm32系列微控制器上使能coresight etm trace 功能
连接ulink pro 通过到目标板,在连接到主机上
使能trace port 接口,相关的介绍在stm32f103xx reference manual 手册的trace pin assignment 章节。(steps listed below)步骤如下:
配置μvision去捕获etm trace 数据(步骤如下):
enable the trace port interface
使能trace port 接口
创建一个文档,例如下面的例子,输入下面的信息。
/*-------------------------------------------------------------------
** define the function to enable the trace port
**-----------------------------------------------------------------*/
func void enabletpiu(void) {
_wdword(0xe0042004, 0x000000e0); // set 4-pin tracing via dbgmcu_cr
}
/*-------------------------------------------------------------------
** invoke the function at debugger startup
**-----------------------------------------------------------------*/
enabletpiu();
/*-------------------------------------------------------------------
** execute upon software reset
**-----------------------------------------------------------------*/
func void onresetexec(void) {
enabletpiu();
}
traced[0..3]数据输出的引脚是pe3到pe6
trace时钟,traceck 是引脚pe2
默认情况下,这些引脚是不用赋值的,需要在 dbgmcu_cr 寄存器的trace_ioen 和 trace_mode位进行配置的。
使用命令 配置dbgmcu_cr 寄存器,格式如下
_wdword(0xe0042004, 0x000000e0);
特殊的函数 onresetexec() 在软件复位时执行,具体参考。
打开对话框 options for target — debug 在 the initialization file选择文件
配置μvision 捕获etm trace数据
使能use,选择ulink pro 调试器,点击settings 打开 target driver setup 对话框
点击trace 标签
选择trace enable 和etm trace enable.
可选的,使能unlimited trace 定位整个数据流历史记录,请确认使能这个选项,会增加功耗消耗,请使用电缆供电
设置 trace port 为sync trace port with 4-bit data, 这个设置一定要与创建的trace.ini 文件相匹配。
core clock 一定要与芯片设置的相匹配。
在下开始调试验证捕获的trace数据。
使能serial wire trace
在stm32f系列控制器上使能 serial wire trace
连接ulinkpro到目标板的接口上,再通过usb连接到电脑上。
使能 trace port接口,在stm32f103xx reference manual手册,pinout and debug port pins 和 trace pin assignment章节都有描述。
配置μvision捕获trace信息。
enable the trace port interface
使能trace port接口
创建文档,例如trace.ini, 输入如下代码:
/*-------------------------------------------------------------------
** define the function to enable the trace port
**-----------------------------------------------------------------*/
func void enabletpiu(void) {
_wdword(0xe0042004, 0x00000020); // set asynchronous communication via dbgmcu_cr
}
/*-------------------------------------------------------------------
** invoke the function at debugger startup
**-----------------------------------------------------------------*/
enabletpiu();
使用命令配置dbgmcu_cr 寄存器的trace_ioen 和trace_mode 位,命令如下:
_wdword(0xe0042004, 0x00000020);
打开对话框options for target — debug ,在initialization file中选择trace.ini 文件
配置μvision捕获trace数据
在对话框options for target — debug中
使能use,选择ulink pro cortex debugger,点击settings打开target driver setup 对话框。
enable swj and select sw.
使能swj和选择 sw
选择 trace 选项。
设置trace enable
设置trace port 为serial wire output - manchester 然后使能autodetect.
core clock 设置必须与芯片设置相同。
在下开始调试验证捕获的trace数据。
本文来自凯发app-凯发k8官网科技,原文地址:
http://www.myir-tech.com/resource/579.asp,转载请注明出处。