再上一篇:15.6 调试时访问寄存器
上一篇:15.7 内核的其它调试特性
主页
下一篇:16.2 跟踪组件:数据观察点与跟踪(DWT)
再下一篇:16.3 跟踪组件:仪器化跟踪宏单元(ITM)
文章列表

第16章

《Cortex-M3 权威指南》,嵌入式处理器开发教程。

调试组件

简介

跟踪组件:数据观察点与跟踪(DWT)

跟踪组件:仪器化跟踪宏单元(ITM)

跟踪组件:嵌入式跟踪宏单元(ETM)

跟踪组件:跟踪端口接口单元(TPIU)

闪存地址重载与断点单元(FPB)

AHB访问端口

ROM表


16.1 简介

在 CM3的大礼包中有很多调试组件,使用它们可以执行各种调试功能:断点、数据观察点、闪
存地址重载以及各种跟踪等。如果您是一位软件开发人员,则也许永远无需了解调试组w件的细节, 因为它们通常只是由调试器及其周边工具使用的。
本章对每种调试组件做一个基本的介绍,如果需要了解它们的更详细信息,如编程模型,则请 参阅《Cortex-M3 Technical Reference Manual(Ref1)》。
所有的调试及跟踪组件,以及 FPB,都可以经由 CM3的私有外设总线来编程。在大多数情况下, 只有调试主机才会编程这些组件。强烈反对应用程序尝试访问调试组件(除了对 ITM 中 stimulus 端口寄存器的访问),这样做很容易与调试器发生冲突。

16.1.1 Cortex-M3的跟踪系统

如前所述,CM3的跟踪系统是基于 CoreSight架构的,跟踪数据被打成数据包,并且它们的长 度可变。跟踪组件使用高级跟踪总线(ATB)来发送这些数据包给 TPIU,TPIU 则把它们格式化, 转换成符合“跟踪总线接口协议”的数据包。格式化后的数据包发到片外,可以使用跟踪端口分析 仪(TPA)之类的设备捕获它们。整个数据流动的路线如图 16.1所示:

图 16.1 Cortex-M3的消化系统模式图
从上图可见,在 CM3 中可以有 3 种跟踪源:ETM, ITM 和 DWT。其中,ETM 是一个可选组件, 因此有些 CM3 芯片中没有配。在操作中,每个跟踪源都被赋予一个 7 位的 ID 号(ATID),随着它
所发出的数据包一起送出。这样,在从归并的数据流中还原各原始的数据流时,就可以使用 ATID 来作为识别的手段。与其它标准的 CoreSight 组件不同的是,CM3 的调试组件内建了归并 ATB 数 据流的逻辑;而在标准的 CoreSight系统中,ATB数据包归并器是一个独立的功能块,并且被称为 “ATB funnel”。
在使用跟踪系统之前,必须把 DEMCR.TRCENA 置位(回顾表 15.2,或者参阅表 D.37)。在这 之前,跟踪系统是处于除能状态的。在正常的操作中,如果不需要跟踪,则通过清零 TRCENA 来除 能一些与跟踪有关的逻辑,可以降低系统的功耗。