找回密码
 注册
关于网站域名变更的通知
查看: 423|回复: 1
打印 上一主题 下一主题

ARM的调试结构

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2016-10-22 15:20 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
嵌入式系统的调试如果使用如逻辑分析仪一类的测试仪器,则可能从外部监事嵌入式系统运行调试的方法,而无法准确地反应系统内部的实际运行状态。功能强大的嵌入式调试工具支持单步执行、设置断点等功能,可以从内部运行观察系统。8 ~: t9 T7 D; Z6 R
当要调试的系统是一个运行于PC机上的程序时,所有用户接口模式已准备好,并且调试器本身是运行于这台机器上的另一个软件。设置断点时,调用调试器来代替目标程序的指令。要记住原始指令,以便程序的执行越过断点时恢复这条指令。通常编译器有编译选项以产生扩展调试信息,如符号表。使用符号表,用户就可在源代码级调试程序,用源代码中的名字对变量寻址而不是用存储器地址。源代码级调试非常有用,与目标级代码调试非常有用,与目标级调试相比,它只需要对机器环境有较少了解。
; O4 \  ~) L; m3 M; I) t% }9 z1.
( ^0 ]1 c& m: p" F! F嵌入式调试  A& i+ Z# \  L0 t  a) n; r
如果系统是嵌入式的,则调试变得更加困难。由于系统使用的是交叉开发环境,因此调试工具必须是在远程主机即宿主机上运行,并通过某种通信方式与目标机器连接。如果代码存放在ROM中,由于不能进行写操作,因此指令不能简单地由调试工具调用。4 F4 Z/ x  r4 y) u( m! D
采用在线仿真器ICE是一个标准的嵌入式解决方案,在线仿真器使用仿真头完全取代目标板上的处理器,可完全仿真ARM芯片的行为,提供更加深入的调试功能。仿真器上的处理器可以是一个相同的芯片,也可以是一个有很多引脚的变型芯片。4 S1 v/ F/ a4 X
2.
" I/ v( k! i8 a3 n  J" |( d# C调试处理器核" b, y5 x% Y1 e; ^5 Z
ICE方法是依赖于系统中确实有能够去除并由ICE代替的处理器芯片。显然,如果处理器是一个复杂系统芯片上许多IP核中的一个,那么这一点就是不可能的。尽管使用软件模型仿真在物理实现前可去除许多设计错误,但通常在仿真时运行整个软件系统是不可能的,并且精确地描述所有实时约束也是困难的。由此看来,对整个硬件和软件系统进行调试时很有必要的。/ ^) x/ o  s; W4 I2 Z. P2 h
3.
% D, o- N  J; ~  ]ARM调试硬件- ~8 f. ^- t3 `0 b1 ^
为了提供与ICE相似的调试工具,对于运行在ROM和RAM中的代码,用户必须能够设计断点和观察点,检查并修改处理器核系统的状态,观察处理器在感兴趣点活动的轨迹,而且所有这些都应有着良好用户界面的PC系统上方方便做到。ARM系统使用的跟踪机制与其他调试系统不同,它很好地解决了断点、观察点及状态监控的资源。
& Q& f& g+ Y* {. x8 o7 m7 r/ ^目标系统与主机之间通过扩展JTAG测试端口的功能来实现通信。为了方便板级测试,大多数芯片都有JTAG测试引脚。通过这些引脚测试不需要额外的专用引脚,节省了芯片的宝贵资源,以备将来使用。JTAG扫描链用于访问断点及观察点寄存器,并向处理器施加指令来访问处理器及系统的状态。- F& e8 a9 {) E6 h& c8 B' T# h) W3 U! K
实现断点设置及观察点寄存器的硬件代价非常小,一般是产品能够接受的。主机系统运行标准的ARM开发工具,并通过一个串行口和/或并行口与目标系统通信。在主机串行与目标的JTAG端口之间有专用的协议实现通信。
0 ?7 H% Y, V( i# P5 B9 x除了断点和观察点事件,当系统级事件发生时,也可能希望处理器停止。9 E1 S+ r9 Q1 M+ B
4.EmbeddedICE! ]5 ^$ Z7 G+ u4 D3 ~0 Z- _# e
ARM的EmbeddedICE调试结构是一种基于JTAG的ARM内核调试通道,提供了传统的在线仿真系统的大部分功能,可调式一个复杂系统中的ARM核。
9 a8 A( W; O& B; T4 q) F5 uEmbeddedICE是基于JTAG测试端口的扩展,引入了附加的断点和观测点寄存器,这些数据寄存器可通过专用JTAG指令来访问,一个跟踪缓冲器也可用相似的方法访问。ARM核周围的扫描路径可将指令加入ARM流水线,并且不会干扰系统的其他部分。这些指令可访问及修改ARM和系统的状态。ARM的EmbeddedICE具有典型的ICE功能,如条件断点、单步运行。由于这些功能的实现是基于片上JTAG测试访问端口进行测试,芯片不需要增加额外的引脚,同时也避免使用笨重的、不可靠的探针接插设备完成调试,而且芯片中的调试模块与外部的系统时序分开,它可以芯片内部的独立时钟速度直接运行。
6 E: P( S4 `. g; K: ZEmbeddedICE模块包括两个观察点寄存器和控制与状态寄存器。当地址、数据和控制信号与观察点寄存器的编程数据相匹配时,也就是触发条件满足时,观察点寄存器可以中止处理器。由于比较是在屏蔽控制下进行的,因此当ROM或RAM中的一条指令执行时,任何一个观察点寄存器均可配置为能够中止处理器的断点寄存器。

该用户从未签到

2#
发表于 2016-10-24 13:59 | 只看该作者
学习中,谢谢分享
/ Z/ {# V3 P* `+ f: y& O
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-24 04:11 , Processed in 0.156250 second(s), 24 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表