设为首页收藏本站
查看: 18205|回复: 0

[MDK-ARM] 在MDK中使用 Event Viewer功能

[复制链接]

137

主题

46

回帖

5014

积分

管理员

积分
5014
kaiyueperfect 发表于 2016-3-10 17:42:35 | 显示全部楼层 |阅读模式
本帖最后由 kaiyueperfect 于 2016-3-10 17:42 编辑

Event Viewer可以在时间线上显示线程,中断,和异常情况,.他通过TRACE信息来展示时间轴信息,这些功能可以在 Cortex-M3, M4, M7 设备上实现,但是他也需要仿真器设备来支持,例如 ULINKpro.


具体实现方法有如下两种 ,以STM32为例,
使能4ETM Trace
STM32系列微控制器上使能CoreSight ETM trace 功能
   连接ULink Pro Cortex Debug+ETM通过到目标板,在连接到主机上
  使能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]数据输出的引脚是PE3PE6
Trace时钟,TRACECK 是引脚PE2
默认情况下,这些引脚是不用赋值的,需要在 DBGMCU_CR 寄存器的TRACE_IOEN 和 TRACE_MODE位进行配置的。
使用命令 _WDWORD 配置DBGMCU_CR 寄存器,格式如下
_WDWORD(0xE0042004, 0x000000E0);
特殊的函数 OnResetExec() 在软件复位时执行,具体参考TPUI Initialization after RESET (Cortex-M)
打开对话框 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 一定要与芯片设置的相匹配。
μVision window下开始调试验证捕获的trace数据。
使能Serial Wire Trace
STM32F系列控制器上使能 Serial Wire Trace
连接ULINKpro到目标板的Cortex Debug接口上,再通过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();
使用_WDWORD命令配置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 设置必须与芯片设置相同。
   在μVision window下开始调试验证捕获的trace数据。

回复

使用道具 举报

您需要登录后才可以回帖 登录

本版积分规则

Archiver|手机版|小黑屋|米尔科技论坛   

GMT+8, 2024-5-4 03:05 , Processed in 0.050249 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表