网站公告列表

  没有公告

加入收藏
设为首页
联系站长
您现在的位置: 超前科技开发网 >> 文章中心 >> 嵌入式开发 >> ARM处理器 >> ARM入门相关 >> 文章正文
  [图文]使用RealView MDK进行SWD调试和SWV实时跟踪           ★★★ 【字体:
使用RealView MDK进行SWD调试和SWV实时跟踪
作者:佚名    文章来源:本站原创    点击数:    更新时间:2008-8-2    
全功能JLINK V6 ARM仿真器(优惠中).
LPC2378开发板(支持USB下载程序).
LPC2368开发板(LPC2364/LPC2368).
LM3S6916开发板.
LM3S8962开发板(支持串口下载程序).
LPC2148开发板(可播放MP3).
KEIL ULINK2仿真器(优惠中)

CORTEX M3有两个调试端口,即JTAGSWKeil ULINK2 USB-JATG接口适配器支持这两种调试接口。

本文描述了如何配置和使用SW接口来获取各种调试信息。

一、目标调试阶段的配置

1. 调试器的选择

选择μVision->Debug ->Options for Target –>Debug,并选择ULINK Cortex Debugger调试器。

图片点击可在新窗口打开查看


图片点击可在新窗口打开查看

2. 调试目标初始化文件

按照路径\Keil\ARM\Startup\ST,将文件STM32DBG.ini拷贝到工程文件夹中。选择μVision->Debug -> Options for Target –>Debug,同时在Initialization File选项中选择该文件

图片点击可在新窗口打开查看


3. Cortex-M 目标设备调试驱动配置

选择Options for Target – Debug – Settings设置SWJ,端口选择SW

图片点击可在新窗口打开查看


4. Trace功能的配置

Trace功能包括:Core Clock, Trace Port 以及定义TraceEvents

图片点击可在新窗口打开查看


二、实时跟踪

1. μVision的状态栏信息

μVision的状态栏中显示了实时跟踪的状态信息。

图片点击可在新窗口打开查看


2. 实时跟踪窗口

调试时选择Peripherals – Trace

图片点击可在新窗口打开查看


1) Trace Records窗口

该窗口显示了所有被捕获的跟踪记录,每一个跟踪记录都包含了详细的信息。可以选择Peripherals - Trace – Records来查看。

图片点击可在新窗口打开查看


2) Exception Trace 窗口

该窗口显示了异常和中断的统计信息,这些信息是基于Trace Records中所捕获的跟踪记录的。可以选择Peripherals - Trace - Exceptions来查看。

图片点击可在新窗口打开查看


3) Event Counters窗口

这个窗口显示了特殊事件计数器的值,计数值是基于Trace Records中所捕获的跟踪记录的。

图片点击可在新窗口打开查看


3. ITM Viewer窗口

可以通过ITM的激励端口0ITM Viewer窗口上输出ASCII Hex格式的数据,目前只有ITM 端口0可以在ITM Viewer窗口显示。要使用ITM Viewer窗口来显示调试跟踪的输出信息,需要进行以下的操作。

l 在源代码中添加ITM激励端口寄存器的定义。

#define ITM_Port8(n)
									(*((volatile unsigned char *)(0xE0000000+4*n)))

#define ITM_Port16(n)
									(*((volatile unsigned short*)(0xE0000000+4*n)))

#define ITM_Port32(n)
									(*((volatile unsigned long *)(0xE0000000+4*n)))

#define DEMCR
									(*((volatile unsigned long *)(0xE000EDFC)))

#define TRCENA
									0x01000000

l 在源代码中添加fputc函数,它向ITM的激励端口0寄存器写数据。如果有了fputc函数,则可以用printf函数做为调试输出。ITM的激励端口0ITM Viewer窗口固定连接。

struct __FILE { int handle; /* Add whatever you need here */ };

FILE __stdout;

FILE __stdin;

int fputc(int ch, FILE *f) {

if (DEMCR & TRCENA) {

while (ITM_Port32(0) == 0);

ITM_Port8(0) = ch;


									}

return(ch);

}

l 在源代码中添加printf函数来显示调试跟踪信息。

printf("Serial Wire Output Debug Trace message");
									

l Cortex-M Target Driver Setup窗口中使能ITM激励端口0

图片点击可在新窗口打开查看


l 在目标调试期,打开ITM Viewer窗口

选择μVision-> View -> Serial Window -> ITM Viewer

图片点击可在新窗口打开查看


完成这些步骤以后,可以在目标调试期通过ITM Viewer窗口查看到调试跟踪信息,例如显示AD转换的结果。

图片点击可在新窗口打开查看


ITM Viewer的功能类似串口打印调试信息,使用ITM更简单,而且不需要串口以及相关驱动程序。

4. Logic Analyzer 窗口

在调试的时候,可以通过逻辑分析器观测至多4个变量值的变化。执行以下步骤来使用逻辑分析器。

l Cortex-M Target Driver Setup窗口使能Timestamps并选择合适的Prescaler值。

图片点击可在新窗口打开查看


要想在逻辑分析器的窗口中观测到精确的时间值,必须使能Timestamps

l 添加准备观测的变量到逻辑分析器中

l 在调试过程中观测变量值的变化

图片点击可在新窗口打开查看


5. RTX Kernel Event Viewer 窗口

当运行RTX系统时,RTX Kernel Event Viewer 窗口中显示了任务的切换过程,任务切换信息通过专门的ITM激励端口31来传输。

执行以下步骤来使能RTX Kernel Event Viewer

l Cortex-M Target Driver Setup窗口使能ITM 激励端口31

图片点击可在新窗口打开查看


l 选择Trace Enable,设置正确的Core Clock

图片点击可在新窗口打开查看


l 核查Timestampsenabled.

图片点击可在新窗口打开查看


l 目标调试过程中打开RTX Kernel窗口

选择Peripherals > RTX Kernel

图片点击可在新窗口打开查看


l RTX内核窗口选择Event Viewer标签

图片点击可在新窗口打开查看


在窗口中更新了每个任务转换过程。选择in或者out按钮放大或缩小窗口。点击all按钮可以显示所有事件记录。

欢迎进入超前MCU技术论坛对 使用RealView MDK进行SWD调试和SWV实时跟踪进行讨论!

文章录入:armopen    责任编辑:armopen 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
    RealView MDK中如何指定子程
    使用RealView MDK与ULINK烧写
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    Copyright 2003-2006 www.mcu123.com© All Rights Reserved
    版权所有 © 超前科技开发网
    粤ICP备05005262号