- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
JTAG调试
JTAG仿真器原理 调试的基础是检测,而检测有“无损(non-intrusive)”和“无损(intrusive)”之分。理想的检测手段应该是不使被测对象的状态(包括时序)因此而造成任何改变,否则测到的数据就不准确了。可是,严格意义上的无损检测不可能实现,因此实际上是“测不准”的。人们所能做到的只是尽量减少对被测对象的状态改变,将误差减少到可以接受的程度。这还是比较容易理解的。不过原来看ARM资料的时候,调试手段一大堆,但是都没有深刻的印象,以致于以前还一直在怀疑,为什么下载的jflash-s3c2410,不能通过仿真器下载呢?现在想想,其实对于什么是调试器,什么是仿真器,调试的模型是什么都是非常模糊的,所以下决心首先从概念上理解调试模型。之后随着技术深入,可以逐步深入理解调试技术。 现代调试技术大致可以归为指令级仿真调试和硬件仿真调试两种。 1 指令级仿真调试 我想这个比较容易理解。指令集仿真调试属于纯软件仿真,比如ARM公司的ARMulator。因为有的时候嵌入式软件的开发需要在目标系统(硬件)并不存在的条件下进行,所以需要这种通过软件来模拟目标系统的CPU。现在有个开源项目skyeye,也是这样一个指令级仿真调试工具。这一系列的软件以数据结构来模拟目标机CPU中各个寄存器和其他资源,以及目标系统的有关资源(比如内存等),并且通过软件模拟,即逐条指令地解释执行目标机可执行映象中的程序。例如,“mov r1, #0”,就代表往寄存器r1的数据结构中写0,如此。模拟执行的速度当然慢一些,但是可以验证逻辑,在某些条件下是一种重要的手段。 2 硬件仿真调试 现在比较成熟的技术有如下四种: ??? ·Ad-hoc test ??? ·Scan-based test ??? ·Build-in-self test ??? ·Boundary-scan test 因为不是专业研究这个方向,对这四个测试技术的区别也没大有必要深究。现在重点来看第四种技术,Bounary-scan test,即边界扫描技术。ARM普遍采用了边界扫描技术,协议标准为IEEE 1149.1,简介原来的文章也谈到过了,就不必多说了。关于JTAG,它的作用主要有如下两个方面: 映象的下载。嵌入式系统软件的开发,在Host上完成目标映象之后,要在“裸机”上实现第一个程序的“自举”下载固化到flash中,就需要通过JTAG接口下载。当然,完成bootloader之后,也可以采用JTAG接口下载,另外也可以采用USB或者TFTP下载。后续的下载方式就多了。但是现在看来,“自举”下载方式还是比较单一的,ARM一般还得依赖于JTAG接口下载bootloader。 软件(以及硬件)的调试。更重要的是,目标系统的调试也要在宿主机的控制/辅助下进行,而JTAG接口为宿主机与目标系统之间的通信、控制提供了重要的手段。【但是需要注意的是,这并不是绝对的。通信手段倒是还可以借助于网络实现,调试也可以通过gdb远程串口调试。这里的意思是,它是当前采用的调试的一种重要的手段。】 现在可以分析基于JTAG技术的ARM Debug Architecture。下面给出一个结构图: ??·Debug Host ??·Protocol converter ??·Debug Target 也就是ARM Debug Architecture分为三层,这也可以认为是一个完整的调试系统。当然这是理论上的划分,在实际实现中也可以在形式上有所变通。下面先解释一下这三层结构。 ·Debug Host ??Host computer running ARM or third party toolkit. 这是调试系统的Host前端。也就是我们常见到的IDE的debugger,比如ARM提供的ADW(ARM Debugger for Windows,相应的unix版本为ADU,即ARM Debugger for Unix)。它所提供的功能是提供一个良好的图形交互界面,使用户可以方便的进行调试操作,也可以完成下载等。另外,它实际上完成调试命令的驱动部分。ARM制定了一个协议,就是ADP(Angel Debug Protocol),这是一个比较复杂的协议,分为三层,主要就是保证可靠稳定的与目标机进行通信。 · Protocol converter ??for example, multi-ICE。 这部分完成host端协议到jtag协议的转换。转换过程是双向的。这个在这里也不太容易说,可以通过后面仿真器来进行分析。 ·debug target ??? development system containing an ARM7TDMI processor ??? 也就是你的目标SoC。 有了这个模型作为基础,就可以对现有的调
有哪些信誉好的足球投注网站
文档评论(0)