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

ARM的调试结构

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

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

该用户从未签到

2#
发表于 2016-10-24 13:59 | 只看该作者
学习中,谢谢分享
- h$ [6 ]; E" M7 ]2 |; Y: g0 O
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-10-12 17:28 , Processed in 0.156250 second(s), 23 queries , Gzip On.

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

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

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