使用RealView MDK进行SW调试和实时跟踪

发布者:WanderlustGaze最新更新时间:2011-11-03 关键字:RealView  SW调试  实时跟踪 手机看文章 扫描二维码
随时随地手机看文章

一、目标调试阶段的配置

1.        调试器的选择

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


2.        调试目标初始化文件

按照路径KeilARMStartupST,将文件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的激励端口0在ITM 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的激励端口0与ITM 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   核查Timestamps为enabled.


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

选择Peripherals -> RTX Kernel


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


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

关键字:RealView  SW调试  实时跟踪 引用地址:使用RealView MDK进行SW调试和实时跟踪

上一篇:基于OV7620和ARM开发的图像采集系统
下一篇:ARM7 9 10的分类系列以及特别

推荐阅读最新更新时间:2024-03-16 12:45

RFID实时定位跟踪系统在精神卫生中心的应用
    第一节 项目背景      1 精神疾病背景     目前全国约有严重精神疾病患者1600万人,其中每年约有25万人死于自杀,精神疾病总负担已跃居各类疾病之首。专家们认为,目前我国精神病人的救治和社会生存状况还都处于较低水平,全社会应给予精神病人足够的人文关怀,从政府、社会和法律的层面对他们多一些尊重、关爱和善待,消除歧视,使更多精神病人得到良好的治疗与生活环境。     2 精神卫生中心背景     上海市嘉定区精神卫生中心位于嘉定区望新镇,是上海市二级精神卫生专科医院,担负着全区精神卫生的医疗、教学、科研、预防、康复、心理咨询和对外学术交流等任务。嘉定区疾病预防控制精神卫生分中心、嘉定区心理咨询门诊、区戒毒药物治疗与区
[网络通信]
S3C2440之LCD驱动代码模板(RealView MDK)
好记心不如烂笔头,为方便以后查看代码及代码重复利用,这里贴出S3C2440 LCD控制初始化代码。使用友善MINI2440开发板,LCD为320*240,开发环境为RealView MDK 4.22。 该源码结构简单明了,原始工程下载地址: 点击打开链接 寄存器宏定义: #define rGPCCON (*(volatile unsigned long *)0x56000020) #define rGPCUP (*(volatile unsigned long *)0x56000028) #define rGPDCON (*(volatile unsigned long *)0x56000030)
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • ARM裸机篇--按键中断
    先看看GPOI的输入实验:按键电路图:GPF1管教的功能:EINT1要使用GPF1作为EINT1的功能时,只要将GPFCON的3:2位配置成10就可以了!GPF1先配 ...
  • 网上下的--ARM入门笔记
    简单的介绍打今天起菜鸟的ARM笔记算是开张了,也算给我的这些笔记找个存的地方。为什么要发布出来?也许是大家感兴趣的,其实这些笔记之所 ...
  • 学习ARM开发(23)
    三个任务准备与运行结果下来看看创建任务和任运的栈空间怎么样的,以及运行输出。Made in china by UCSDN(caijunsheng)Lichee 1 0 0 ...
  • 学习ARM开发(22)
    关闭中断与打开中断中断是一种高效的对话机制,但有时并不想程序运行的过程中中断运行,比如正在打印东西,但程序突然中断了,又让另外一个 ...
  • 学习ARM开发(21)
    先要声明任务指针,因为后面需要使用。 任务指针 volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • 学习ARM开发(20)
  • 学习ARM开发(19)
  • 学习ARM开发(14)
  • 学习ARM开发(15)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved