arm调试方案-某科技公司arm培训_第1页
arm调试方案-某科技公司arm培训_第2页
arm调试方案-某科技公司arm培训_第3页
arm调试方案-某科技公司arm培训_第4页
arm调试方案-某科技公司arm培训_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1 TMT H E A R C H I T E C T U R E F O R T H E D I G I T A L W O R L D ARM 调试方案调试方案 2 TM2122v01 ARM Debug Solutions 议程议程 n基本的调试需求基本的调试需求 n你需要什么样的功能? nARM公司的调试和开发工具。 n嵌入式核的调试嵌入式核的调试 n实现和利用JTAG的调试方案 n停止模式和监控模式 n嵌入式跟踪嵌入式跟踪 n使用ETM nARM 开发板开发板 3 TM3122v01 ARM Debug Solutions ? 基本的调试需求基本的调试需求 n运行控制运行控制 n设置

2、数据访问断点 n设置指令断点 n代码的单步执行 n状态控制状态控制 n处理器状态 n读写寄存器值 n系统状态 n系统内存访问 n下载代码 n执行历史执行历史 n执行跟踪信息 n内存访问历史 4 TM4122v01 ARM Debug Solutions ARM 调试系统组件调试系统组件 执行AXD调试器的主机 (ADS的一部分) 和 Multi-ICE server 协议转换器 (Multi-ICE) 跟踪接口单元 (MultiTrace) 开发板 (Integrator Core Module) Trace Port JTAG Port 并口 串口l/以太网 5 TM5122v01 ARM

3、Debug Solutions 议程议程 n基本的调试需求基本的调试需求 n你需要什么样的功能? nARM公司的调试和开发组成工具。 n嵌入式核调试嵌入式核调试 n实现和利用JTAG的调试方案 n停止模式和监控模式 n嵌入式跟踪嵌入式跟踪 n整体化和利用ETM nARM 开发板开发板 6 TM6122v01 ARM Debug Solutions 嵌入式核调试嵌入式核调试 5 线 JTAG n被调试的系统可以是最终的系统! n也可以用第三方的协议转换工具: nhttp:/ Data Address Control BREAKPT CPU ARM 调试器和Multi-ICE server (可以

4、运行在不同的机器上) TAP EmbeddedICE Logic-RT 7 TM7122v01 ARM Debug Solutions 嵌入式嵌入式ICE逻辑逻辑 n两个观察点单元两个观察点单元 n可以通过监控地址总线,数据总线和控制信号来探测观察点(watchpoint)和断 点。 n每个单元可以用来提供 n1 观察点, 或 n1个 ROM或RAM里的硬件断点,或 nRAM里的多个软件断点 n调试控制和状态寄存器调试控制和状态寄存器 n调试通讯通道调试通讯通道 n注意:注意:ARM10 nARM10家族的调试结构是不同的,虽然原理是一样的。 n一共包括8个观察点单元 n6 个在指令地址总线上

5、 n2个在数据地址总线上 n这个将在另外一个课题中讲解 8 TM8122v01 ARM Debug Solutions 观察点观察点 Control Addr Value Data Value Control Value Addr Mask Data Mask Control Mask A31:0 C o m p a r a t o r Watchpoint D31:0 0 xF000 0 x0 0 xffffffff Data write 0 xF000 Memory Location to be watched 一个观察点观察点就是一个 断点,这个断点在当 以某种方式访问特定 内存区域时被

6、触发 这个例子里,当向地 址0 xF000 写时,将 触发这个观察点 每一个观察点单元可 以设置成一个观察点观察点 ,而且只能设置一个 9 TM9122v01 ARM Debug Solutions 硬件断点硬件断点 0 x8000 ARM - 0 x3 Thumb - 0 x1 0 xffffffff Opcode fetch 0 x8000 Memory Breakpoint to be set here Control Addr Value Data Value Control Value Addr Mask Data Mask Control Mask A31:0 C o m p a

7、r a t o r Breakpoint D31:0 当内核试图执行内存里 一个特定地址的指令时 ,将会触发一个硬件断硬件断 点点 这个例子里,当要执行 从地址0 x8000索取的指 令时,将会触发一个硬硬 件断点件断点 硬件断点硬件断点可以在RAM或 ROM里设置 每个观察点单元可以被 用来设置一个硬件断点硬件断点 ,而且只能一个 10 TM10122v01 ARM Debug Solutions 软件断点软件断点 Memory 0 xffffffff 0 xeeeeeeee 0 x0 Opcode fetchControl Addr Value Data Value Control Val

8、ue Addr Mask Data Mask Control Mask A31:0 C o m p a r a t o r Breakpoint D31:0 1. Read and store opcode 2. Write “special” value 一个软件断点软件断点是当一个特定 的指令从任何地址被预取时 触发的一个断点 这个例子表明了观察点单元 的配置 这对所有的软件断 点都是一样的 为了设置一个断点,可以使 用Multi-ICE在特定的地方写 一个特别的指令这些只能 在RAM里在操作 每一个观察点单元可以用来 设置无数的软件断点软件断点. (The “special” value

9、) 11 TM11122v01 ARM Debug Solutions 命中一个断点命中一个断点 n停止模式调试停止模式调试 n由标准的 EmbeddedICE & EmbeddedICE-RT支持 n内核进入调试状态和停止状态 n内核与系统的其余部分分离 n发出DBGACK信号 ( 调试器通过JTAG而检测到) n没有中断处理,除非调试器重新启动执行代码 n处理器和系统的状态可以通过扫描内核的指令来察看和修改,紧接着执行它 们 n监控模式调试监控模式调试 n只由增强功能的 EmbeddedICE-RT支持 n在ARM9E, ARM10 和稍后的ARM7TDMI版本上有 n内核通过一个异常中断

10、而进入常驻软件监控程序 n可以连续处理中断 n处理器和系统的状态可以通过监控程序的调试命令来察看和修改 12 TM12122v01 ARM Debug Solutions 读系统状态读系统状态 (在停止模式在停止模式) 从地址0 x8000 向后读 10 个字 MOV r0, #0 x8000 LDMIA r0!, r1-r10 - system speed STMIA r0, r1-r10 - debug speed TDI TCK Databus ARMxD TCK registers Debug speed Databus ARMxD TDO r1-r10 1 3 MCLK regist

11、ers System speed Databus ARMxD 2 F DE 13 TM13122v01 ARM Debug Solutions Debugger RMHost (RealMonitor.dll) 主机主机 RMTarget Application Code + Data 目标板目标板 经过经过DCC传送的传送的 实时监控协议实时监控协议 监控模式调试监控模式调试 n主机 - 在AXD 和 Multi-ICE之间的控制器 n实时监控协议 n非常简单的协议 n快速 没有出错检查 n允许后台命令 n实际目标板 n小的调试监控程序 (2.0V时工作时工作 n在3.3V时,启动电流是40

12、0mA , 一般操作时是 120mA nMulti-ICE 2.1 出售时跟随一个适当的电源 nMulti-ICE用用20-针针 连接器连接器 n多个接地点 n灵活的时钟配置 n可以与不同的时钟速度设备同步 n 长 JTAG 电缆 n也可以仅仅利用5 个信号来调试 n请小心停止系统时钟请小心停止系统时钟 n复位考虑复位考虑. 24 TM24122v01 ARM Debug Solutions TCK, TDI, TMS, TDO协议转换 接口 TCK, . nTRST nRESET ARM Reset Circuit 复位复位 nSRST nTRST nnTRST 和 nSRST 必须通过一个

13、上拉电阻来连接 nMulti-ICE 在 nTRST 有开放的连接 25 TM25122v01 ARM Debug Solutions 测验测验 1) EmbeddedICE 逻辑一共包括多少个观察点单元? 2) ROM上可以设置多少个断点? 3) 利用DCC semihosting比一般的 semihosting有什么优势? 4) 为了激活ARM的调试功能,DBGEN 的信号应该怎么连接? 5) 为什么Multi-ICE需要半字访问内存? 6) EmbeddedICE-RT 提供了哪些额外的调试功能? 26 TM26122v01 ARM Debug Solutions 议程议程 n基本调试需

14、求基本调试需求 n你需要什么样的功能? nARM公司的调试和开发集成工具。 n嵌入式核调试嵌入式核调试 n实现和利用JTAG的调试方案 n停止模式和监控模式 n嵌入式跟踪嵌入式跟踪 n整体化和利用ETM nARM 开发板开发板 27 TM27122v01 ARM Debug Solutions ETM的机制的机制 (嵌入式跟踪宏单元嵌入式跟踪宏单元) n为什么需要实时跟踪功能?为什么需要实时跟踪功能? n实时系统不允许停止! n传统的调试 (断点和单步执行) 不能满足 n必须利用捕获的实际代码运行来调试 n为什么不用其它的调试工具而用为什么不用其它的调试工具而用ETM? nEmbeddedIC

15、E-RT为调试通讯通道提供了低的带宽 n只适用于程序状态信息 n外部的指令需要写到通讯通道里 n独立的处理器比嵌入式处理器容易调试独立的处理器比嵌入式处理器容易调试 n一个独立的处理器,或者: n用外部的ICE单元代替处理器,或者 n用逻辑分析仪探测处理器的信号 n当用嵌入式ARM内核时两个都不可能时怎么办啊? 28 TM28122v01 ARM Debug Solutions 16 bit wide RAM 8 bit wide ROM 20 bit Address 16 bit Data 带嵌入式处理器的典型带嵌入式处理器的典型ASIC Serial Ports ARM Dat a Add

16、res s Display Control Timer 32 bit wide Internal Memory External Bus Interface 29 TM29122v01 ARM Debug Solutions 问题问题 n没有外部可见的片上没有外部可见的片上ASIC 总线总线 n带缓存的处理器 (例如, ARM920T) 带有与设备内部相连的核/缓存总线 nICE 版本必须在全速系统速度下运行版本必须在全速系统速度下运行 n随着处理器速度的增加,ICE越来越难 n同时必须提供ICE 工具 (例如,触发器) n实时跟踪需要确定的实时跟踪需要确定的高带宽的接口高带宽的接口 n需要地

17、址总线,数据总线和控制信号 n对于 ARM7TDMI ,有80多个 引脚 n很多很多 ASICs 使用相同的处理器核使用相同的处理器核 nICE必须为每一个 ASIC定做 30 TM30122v01 ARM Debug Solutions ARM 实时跟踪实时跟踪 n嵌入式跟踪单元 (ETM) n实时指令跟踪 n实时数据访问跟踪 n包含 ICE功能 (触发和过滤逻辑) nMultiTrace 跟踪端口分析器 (TPA) n深度缓冲器捕获跟踪 n跟踪调试工具 n通过JTAG/Multi-ICE 配置ETM跟踪 n从ETM/MultiTrace里接收压缩的跟踪数据 n利用拷贝原代码映象来对ETM跟

18、踪 5 ARM core ETM RAMROM TAP controller Trace Trigger / Filter 9,13,21 线 跟踪接口 5 线 JTAG 接口 串口/以太网口 并口 运行跟踪调试工具的主机 (ADS的附件) 31 TM31122v01 ARM Debug Solutions ETM 结构结构 TRACECLK 3 (ETM v1) 4 (ETM v2) PIPESTAT 2:0 (ETM v1) PIPESTAT 3:0 (ETM v2) ARM Core 到和来自ARM的数据 可综合的可综合的 ETM 块块 n = 4, 8 or 16 跟踪端口 (9, 1

19、3 or 21引脚) nETM 监控器和简要的监控器和简要的ARM 总线信号总线信号 JTAG 接口 Trigger & Filter Logic Pipeline Status Generation Trace Packet Capture n TRACEPKTn-1:0 TRACESYNC (ETMv1 only)FIFO TAP Controller 5 到ARM的控制 来自ARM的控制 来自ARM的地址 确定的 ETM-ARM 接口 (只在ETM v2) 32 TM32122v01 ARM Debug Solutions 跟踪端口说明跟踪端口说明 nTRACECLK: 与处理器时钟有相

20、同的频率与处理器时钟有相同的频率 nPIPESTAT (流水线状态流水线状态) 表明表明: n程序流 n是否有一个相关联的TRACEPKT nETM 状态 nTRACEPKT (跟踪包跟踪包) 可能包含以下一个或多个特征: n数据地址 n数据值 n指令地址 nTRACESYNC (只在只在ETM v1有有): n用来在ETM和TPA之间进行同步 * 可以参考可以参考ETM规范得到更多的信息规范得到更多的信息 n = 4, 8 or 16 跟踪端口 (9, 13 or 21 引脚) TRACECLK PIPESTAT 2:0 (ETM v1) PIPESTAT 3:0 (ETM v2) TRAC

21、EPKTn-1:0 TRACESYNC (ETMv1 only) 33 TM33122v01 ARM Debug Solutions 指令跟踪指令跟踪 n与指令跟踪有关的跟踪端口部分与指令跟踪有关的跟踪端口部分: nPIPESTAT 表明内核的流水线状态 (例如,一个指令是否被执行) nTRACEPKT 当需要时,包含一个跳转目标地址 n以上两条和代码映象相结合,就可以进行调试了 n指令跟踪能够被高度压缩指令跟踪能够被高度压缩 n典型地,一个 9-位的跟踪端口可以处理只有指令的跟踪 nETM v1 最好的情形: 3位的跟踪信息来跟踪32位的代码 nETM v2 最好的情形: 4位的跟踪信息来跟

22、踪64位的代码 n可以用过滤和触发器:可以用过滤和触发器: n只对内存地址和/或区域进行跟踪 n只有在特定的ETM顺序状态,计数器等才进行跟踪 n技术注解:技术注解:TraceEnable (一个一个 ETM 内部信号内部信号) 可以激发指令跟踪。它是由触发可以激发指令跟踪。它是由触发 器器/过滤器事件和资源控制的。过滤器事件和资源控制的。 34 TM34122v01 ARM Debug Solutions 数据跟踪数据跟踪 n与数据跟踪有关的跟踪端口部分与数据跟踪有关的跟踪端口部分: nTRACEPKT 包含数据地址或数据值 n只有数据地址改变的位被广播 (目的是节省带宽) n每一次跟踪运行

23、都可以配置每一次跟踪运行都可以配置 ETM: n数据地址或数据值(或两个都有) n读或写(或两个都有) n需要一个高的带宽跟踪所有数据需要一个高的带宽跟踪所有数据(有程序相关有程序相关) n一个带有45个字节FIFO的13-位跟踪端口可以跟踪大部分数据传输 n如果想跟踪更多数据访问则需要一个21-位的跟踪端口 n过滤器和触发器对保持跟踪数据的管理很重要过滤器和触发器对保持跟踪数据的管理很重要 n如果在跟踪信息里有一个 FIFO 溢出标记,那么就表示有部分的跟踪信息被丢掉 n推荐使用可编程的过滤器和触发逻辑 n技术注解:技术注解:ViewData (一个一个ETM的内部信号的内部信号) 激发了数

24、据跟踪激发了数据跟踪(如果如果TraceEnable 是假时被忽略掉是假时被忽略掉). 它是由触发器它是由触发器/过滤事件和资源控制的。过滤事件和资源控制的。 35 TM35122v01 ARM Debug Solutions 跟踪例子跟踪例子 0 x1010 MOV r0, #3 0 x1014 SUBS r0, r0, #1 0 x1018 BNE 0 x1014 0 x101C LDR r1, #0 x4000 . 0 x4000 0 x4321 data IE IE IE r0=2 IE IE IE IN ID . r0=1 r0=0 0 x101C LDR r1, #0 x4000r

25、1ID 0 x1018 BNE 0 x1014 0 x1010 SUBS r0, r0, #1 0 x1018 BNE 0 x1014 0 x1014 SUBS r0, r0, #1 0 x1018 BNE 0 x1014 0 x1014 SUBS r0, r0, #1 0 x1010 MOV r0, #3 Corresponding Instruction none none none none none none none TRACEPKT branch not takenIN CommentPIPESTAT r0=0IE direct branch takenIE r0=1IE dire

26、ct branch takenIE r0=2IE r0=3IE 假设数据跟踪是激活的(ViewData 被声明了) n基本指令和直接跳转的基本指令和直接跳转的ETM跟踪跟踪 由PIPESTAT=IE 或 IN来解码直接跳转直接跳转 36 TM36122v01 ARM Debug Solutions 指令跟踪局限指令跟踪局限 n调试器需要一个代码的拷贝来做参考调试器需要一个代码的拷贝来做参考 n自动修改代码部分将不能和ETM一起工作 n调试器必须知道代码映象的地址映射调试器必须知道代码映象的地址映射 n代码必须在连接时的地址执行 n带有固定代码地址的虚拟内存配置是可以的 n现在不支持动态重定位代

27、码 n请注意请注意“覆盖覆盖” (例如:把代码调入片上例如:把代码调入片上RAM) n如果有很多代码段运行在相同的地址,跟踪不能区分哪一部分在运行。这个例子 里,跟踪解压是不可能的。 n解决办法是给内存区域命名 (见下一页) 37 TM37122v01 ARM Debug Solutions 重叠和命名重叠和命名 n硬件的命名将每一个段都映射到相同的实际存储器上 n用不同的“别名”连接每一个重叠的段执行 nPC值标识了哪一个段在执行 A A A A A A A B C B B B B A B C C C C C A B C 外部外部ROM 片上片上 RAM (命名的命名的) 注意: 必须用命名

28、 的方法设计存储 器系统 A A A 16K 片上 RAM 0 16K 32K 48K 64K 16K RAM A13:0 A14A15 ARM Decoder A31:16 SEL IGNORED 38 TM38122v01 ARM Debug Solutions 控制跟踪控制跟踪 nETM里的资源是可以被过滤和控制的:里的资源是可以被过滤和控制的: n要跟踪的指令 n要跟踪的数据访问 n外部跟踪端口分析器的触发 nETM的资源由以下部分组成:的资源由以下部分组成: n8 个数据比较器 n8 对全范围地址比较器 n16个地址解码器 n4 个16-位计数器 n1 个3-状态序列器 n对于ASI

29、C: 最多 4用户输入,4个用户输出 n一个事件可以由任何两个资源逻辑组成:例如一个事件可以由任何两个资源逻辑组成:例如 “within address range 1 AND data value equals 0 xFFFFFFFF” n不同的不同的ETM 实现有不同数量的触发资源实现有不同数量的触发资源 n可以看技术文档得到更详细的资料 39 TM39122v01 ARM Debug Solutions 哪一个哪一个ETM? n根据你的ARM内核来选择 ETM7, ETM9, 或者 ETM10 n选择小的,中等的或大的模式 n选择跟踪端口的宽度 (4/8/16) n如果高的吞吐率(数据跟

30、踪)很重要的时候,可以选择更宽的端口 n可以考虑与其它引脚的多路复用技术(例如GPIO) n调试时可以使用大的宽的,产品时可以使用简单的,窄的ETM n使用ATPG 和插入扫描来对产品进行测试 nETM 提供了验证环境套件 n下一页将总结配置和数据的大小 40 TM40122v01 ARM Debug Solutions ETM 配置配置 4 / 8 /164 / 8 /164 / 8Port width 4518 or 209 or 10FIFO Depth 60k35k25kGate count 大的大的中等的中等的小的小的ETM v1 (ETM7,9) 603015FIFO Depth

31、4 / 8 /164 / 8 /164 / 8 /16Port width 75k50k35kGate count 大的大的中等的中等的小的小的ETM v2 (ETM10) 1684 841 1682Addr Comparators 大的大的中等的中等的小的小的功能功能 Range Comparators Addr Decoders Counters Ext. Outputs 124 014 820Data Comparators Sequencers011 Ext. Inputs244 41 TM41122v01 ARM Debug Solutions 实现跟踪实现跟踪 (1) n所有需要的

32、信号连接到所有需要的信号连接到ARM 核核 n没有缓存的内核与地址/数据总线和控制信号相连 n有缓存的内核输出内核信号到宏单元边缘 (例如: ARM920T 版本1) nASIC上提供跟踪端口上提供跟踪端口 n经过基座上输出的最高频率是多少? nASIC上要支持多个ARM内核吗? n考虑跟踪端口与别的引脚多路复用吗? n最终产品中去除以减少引脚数量吗? nARM 跟踪捕获和跟踪捕获和JTAG的标准连接器的标准连接器 n38-路的 AMP MICTOR 连接器 (高密度) ARM7TDMI ARM7TDMI-S ARM720T rev3 ARM7EJ ARM9TDMI ARM9E-S/9EJ-S

33、 ARM920T rev1/922T ARM966E-S ARM946E-S ARM926EJ-S ETM7ETM9 ARM1020E ETM10 42 TM42122v01 ARM Debug Solutions 实现跟踪实现跟踪 (2) n对对 ARM7 和和 ARM9 内核内核: nCPU 时钟应该自由运行 (利用 nWAIT, 而不是时钟延长), 但不是至关重要的 nFIFO FULL 信号可以被用来停止处理器信号可以被用来停止处理器 n但是如果FIFO 满了时,将影响实时性能 nETM设计的目标不是低功耗设计的目标不是低功耗 n在正常运行操作(没有跟踪)模式下,ETM不应该被时钟驱动

34、 ETM CLK PWRDOWN (通过JTAG控制) ARM CLKJTAG n更多更详细的信息请看:更多更详细的信息请看: ETM 规范 ETM7/9/10 技术参考手册 (TRMs) ETMEN 43 TM43122v01 ARM Debug Solutions 跟踪捕获跟踪捕获 n需要一个外部的跟踪端口分析仪需要一个外部的跟踪端口分析仪(TPA)来捕获来捕获 ETM 的输出的输出 nTPAs 可以在触发事件之前,发生时或之后来跟踪 nTPAs 带有很深的跟踪捕获缓冲器 nTPA 的缓冲器通过很高速度的上行连接(通常是以太网)来把数据返回给主机 PC n当前可选择的当前可选择的TPA :

35、 nMulti-Trace* nAgilent 逻辑分析仪 (需要 Multi-ICE 或者 Agilent JTAG 探测器) nAgilent ARM(E5904B)的跟踪端口分析仪 http:/ nTektronix 逻辑分析仪* nhttp:/ * 需要需要 Multi-ICE 2.0 或或 更新的更新的 nLauterbach 也提供跟踪工具、仿真器、调试器也提供跟踪工具、仿真器、调试器 nhttp:/ 44 TM44122v01 ARM Debug Solutions ARM MultiTrace n与与 Multi-ICE (2.0+)连接一起工作连接一起工作 n通过以太网跟踪,

36、通过JTAG口控制运行 n支持 9, 13 和 21 引脚的跟踪端口,频率可高达 200 MHz n1.0V - 3.3V目标电压 n支持将跟踪时钟速率降低一半,在上升和下降沿捕获数据 n也可以从第三方那获得跟踪分析仪方案也可以从第三方那获得跟踪分析仪方案 n访问:访问: Multi ICE PC Target Board JTAG Multi Trace LAN 45 TM45122v01 ARM Debug Solutions 跟踪调试工具概况跟踪调试工具概况 nADS 1.1/1.2- TDT 1.1.1 作为附加工具加到作为附加工具加到 AXD里里 n有额外的用户接口功能来支持跟踪 n通过JTAG配置 ETM n收集跟踪信息 n解码跟踪信息 46 TM46122v01 ARM Debug Solutions 跟踪配置跟踪配置 nETM 寄存器设置的寄存器设置的 GUI 接口接口 n对所有可能的跟踪和触发ETM配置进行全权访问 n适合于已实现的资源对话窗口 n存储存储/恢复恢复 触

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论