本帖最后由 kaiyueperfect 于 2016-3-10 17:42 编辑
Event Viewer可以在时间线上显示线程,中断,和异常情况,.他通过TRACE信息来展示时间轴信息,这些功能可以在 Cortex-M3, M4, M7 设备上实现,但是他也需要仿真器设备来支持,例如 ULINKpro.
具体实现方法有如下两种 ,以STM32为例,
使能4位ETM Trace 在STM32系列微控制器上使能CoreSight ETM trace 功能 使能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位进行配置的。 _WDWORD(0xE0042004, 0x000000E0); 打开对话框 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 一定要与芯片设置的相匹配。 使能Serial Wire Trace在STM32F系列控制器上使能 Serial Wire Trace 使能 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 设置必须与芯片设置相同。
|