(计算机应用技术专业论文)基于sopc的通用在线仿真器的设计与实现.pdf_第1页
(计算机应用技术专业论文)基于sopc的通用在线仿真器的设计与实现.pdf_第2页
(计算机应用技术专业论文)基于sopc的通用在线仿真器的设计与实现.pdf_第3页
(计算机应用技术专业论文)基于sopc的通用在线仿真器的设计与实现.pdf_第4页
(计算机应用技术专业论文)基于sopc的通用在线仿真器的设计与实现.pdf_第5页
已阅读5页,还剩56页未读 继续免费阅读

(计算机应用技术专业论文)基于sopc的通用在线仿真器的设计与实现.pdf.pdf 免费下载

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

文档简介

中文摘要 中文摘要 在线仿真器( i c e ) 是嵌入式微处理器开发系统的重要组成部分,是嵌入式系 统开发的强大工具。虽然i c e 发展有2 0 余年的历史,从i n t e l 公司的i c e - 3 0 ”i 到现在普遍使用的在线调试器,仿真器已经经历了从完全替代嵌入式芯片进行仿 真到采用片上调试逻辑仿真的过程,取得了丰硕的成果。但对通用仿真调试器的 研究,即一套i c e 设备可以完成多种嵌入式芯片仿真,仍然是一种较前沿的工作。 国外的通用仿真器产品虽然技术较为成熟,并且稳定可靠,但价格却非常昂贵, 难以适应国内绝大多数中小企业的实际需求。而限于资金投入和市场的原因,国 内很少有通用在线仿真器方面的研究成果。 本文在分析和研究国内外i c e 技术、通用i c e 理论基础和国外通用i c e 产品 的基础上,设计了一种通用i c e 结构模型,并详细介绍了采用该模型的通用i c e 的设计实现过程。该在线仿真器具有下载、断点、单步运行、连续运行、读写内 存区域、对寄存器和i o 端口操作等基本仿真功能,并全部由f p g a 来实现;对不 同的m c u 只需下载相应调试i p c o r e 到f p g a 中即可对其进行仿真调试,理论上 可以仿真任意的m c u 。文中,首先对嵌入式开发系统和在线仿真器进行了全面的 介绍。然后对s o c 开发技术以及硬软件协同开发平台q u a r t u r s i i 进行介绍。 再后,分析了a r m 7 t d m i 处理器的i c e 片上调试逻辑。第六章开始提出了通用 在线仿真器的体系结构,并叙述了a r m 7 t d m i 调试i p c o r e 的设计开发过程、s o p c 软件的开发过程及p c 集成环境的开发过程。该设计不仅应用了s o p c 实现技术, 还采用以太网实现宿主与i c e 通信,并在i c e 和目标机间专设串行通道提供回显。 最后,介绍了本通用仿真器的特色和创新点,以及工作完成情况,并对将来的工 作提出了一些建议。 本仿真器在设计过程中有两大特色,一是强调仿真器的通用性,二是利用了 s o p c 技术来实现了整个系统。 关键词:在线仿真器,q u a r t u s l i ,知识产权核,a r m 7 t d m i ,j t a g ,n i o s a b s t r a c t a b s t r a c t i c e ( i n - c i r c u i te m u l a t o r s ) i sa l li m p o r t a n tc o m p o n e n tf o rt h ed e s i g n i n go fe m b e d d e ds y s t e m s i ti sa l s oas t r o n gt o o lf o rd e v e l o p i n ge m b e d d e ds y s t e m s a l t h o u g hi c eh a sah i s t o r yo fa b o u t2 0 y e a r s ,f r o mi n t e l si c e - 3 0 ”it oi n - c i r c u i td e b u g e r0 c d ) w i d e l yu s e dn o w a d a y s ,i c eh a sp a s s e d ap r o c e s s i o no ft o t a l l yr e p l a c e m e n to ft h em c ut oa p p l i c a t i o no fo n - c h i pd e b u gl o g i c b u tt h e r e s e a r c ho ft h eg e n e r i ci c e ,w h i c hm e a l o n ed e v i c et oe m u l a t es e v e r a lm c u s , s t i l lc o m e st oa l i t t l eh - o n t - l i n ew o r k t h eg e n e r i ci c ep r o d u c t sf r o ma b r o a da r ef i n et e c h n i c a la n dr e l i a b l eb u t e x p e n s i v e a st h er e a s o no f f e n da n dm a r k e t , i ti sr a r e l yt os e et h er e s e a r c hr e p o r ti ni n t e r n a l i nt h i st h e s i s ,w ei n t r o d u c et h et h e o r yb a s e m e n ta n dw h o l ep r o c e s s i o no ft h eg e n e r i ci c ei n d e t a i l s t h eg e n e r i ci c eh a st h ef o l l o w i n gb a s i cp e r f o r m a n c e :d o w n l o a d ,b r e a k p o i n t , s t e p ,r u n , r e a d a n dw r i t em e m o r y , o p e r s t et h er e g i s t e r sa n di op o r t s a l lt h e s ep e r f o r m a n c e sa r ed o n eb yo n ep i e c e o ff p o a f o rav a r i e t yo fm c u s , t h eo n l yt h i n gy o us h o u l dd oi sd o w n l o a d i n gt h er e l a t e di p c o r et o t h a tf p g a s ot h e o r e t i c a l l y , i ti sa b l et oe m u l a t ee v e r ym c ut h a th a sa ni p c o r e i nt h i st h e s i s , f i r s t o fa u ,w ei n t r o d u c e dt h es y s t e mo fd e v e l o p m e n ta n di c e t h e n ,w es t u d i e dap l a t f o r mo fc o - d e s i g n f o rs o p c , w h i c hi so u a r t u r s l lw r i t t e nb ya l t e r ai n c a f t e rt h a t , w ea n a l y s e dt h eo c dp a r to f a r m 7 t d m im c u f r o mc h a p t e r6 w em e n t i o n e dt h es t r u c t u r eo fag e n e r i ci c ea n dt h e d e v e l o p m e n t so fa r m t t d m id e b u g g i n gi p c o r e ,s o p cr e l a t e ds o f t w a r ea n di d eo nap c t h i s d e s i g nu s e dn o to n l ys o p ct e c h n o l o g y , b u ta l s oe t h e m e tf o rc o m m u n i c a t i o nb e t w e e nh o s ta n di c e a d d i t i o n a l l y , w eu s e dar s 2 3 2t os h o wt h er e s u l t sb e t w e e ni c ea n dt a r g e tb o a r d f i n a l l y , w e s u g g e s t e dt h ec r e a t i v ep o i n t so ft h i st h e s i sa n dt e l l e dt h ed i f f e r e n c e sa m o n go t h e rg e n e r i ci c e s t h e r ea r et w oi m p o r t a n tc h a r a c t e r i s t i c sf o rt h i si c e o n ei sa l l - p 邺;t h eo t h e ri st h e a p p l i c a t i o n o f s o p c t e c h n o l o g y k e y w o r d s :i c e ,q u a r t n s h ,i p c u r e ,u r m t t d m i ,j t a g ,n i o s 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工 作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地 方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含 为获得电子科技大学或其它教育机构的学位或证书而使用过的材料。 与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明 确的说明并表示谢意。 签名:垒蛔日期:沙7 年f 月7 目 关于论文使用授权的说明 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁 盘,允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文 的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或 扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此规定) 签名: 导师签名:二狃 日期:川年月f 7 日 第一章引言 第一章引言 嵌入式系统是以应用为中心,以计算机技术为基础,软、硬件可剪裁的专用 计算机系统。它是一个技术密集,资金密集,高度分散,不断创新的知识集成系 统。上世纪9 0 年代以来,以计算机技术、通信技术和软件技术为核心的信息技术 取得了迅猛的发展,嵌入式平台和集成技术开发从在人们的印象中多应用在工业 控制领域以及智能机器人,发展到移动通讯以及智能家电、网络家电等越来越广 泛的领域。各种装备与设备上嵌入式计算与系统的广泛应用大大地推动了行业的 渗透性应用,同时带来的巨大经济利益将吸引更多的厂商投入其中。随着这个领 域的发展,更多的计算机工程师投入到嵌入式系统开发中,对开发调试工具的要 求也在一步步的加强和完善【”。一个典型的嵌入式开发模式如图1 - 1 所示。 1 1 课题背景 图1 - 1 典型的嵌入式开发模式 嵌入式系统已经深入到人们生活的方方面面,其设计与结构也越来越复杂。 这给从事嵌入式开发的工程师提出了更高的要求,因此,具有一个强有力的嵌入 式开发平台就显得越来越重要了。 1 1 1 集成开发环境 嵌入式系统的集成开发环境,般要完成源码的录入、编译、操作系统的配 置、程序的下载调试等功能,本文的研究重点是程序的调试部分。 调试是发现开发中的错误并修改错误的过程。调试器是帮助工程师发现并排 除错误的工具,给工程师提供从不同角度观察系统执行情况的能力。同时,好的 调试器也是“读”程序的好帮手,工程师通过调试系统时提供的各种功能和运行时的 状态信息可以更深刻地理解系统性能。可以说调试器的优劣是衡量集成开发环境 好坏的重要标准【2 j 。 电子科技大学硕士学位论文 1 1 1 1 调试器的分类 从调试器参与调试的时机来看,可划分为静态调试器和动态调试器两类。静 态调试器的典型做法是在源程序中需要收集信息的位置插入跟踪语句,然后重新 编译、执行程序,程序执行完毕后,用调试器分析执行时跟踪语句保留下来的信 息,将分析的结果给开发人员作判断用。动态调试器仅称源代码调试器或符号调 试器1 ,则是在程序运行的过程中动态地监控程序运行,并提供给开发人员控制被 调试程序的运行和访问被调试程序信息的手段。这一类调试器最本质的特征是提 供有设置断点和单步跟踪程序运行等能力,被调试程序运行时遇到断点后便停下 来,调试器给开发人员提供可从不同的角度观察程序运行情况的能力,以方便找 到出错原因,进而修改程序。现在有些调试器这两种特点兼而有之。 1 1 1 2 调试器应遵循的一般原则 。 h e i s n b e r g 原则:调试器应尽量减少对被调试器对象的影响。特别是对于动态 调试器来说,出于其直接介入了被调度对象的运行,就必须考虑这种介入是否对 被调试程序有所干扰;如果产生了干扰,其反映的被调试对象的信息肯定就不完 全真实。对于实时系统中的程序调试,如何尽可能的减少调试器对被调试对象的 影响,则是这类调试器设计要考虑的主要问题。 反映被调试程序执行的实际情况:对于调试器设计而言,程序执行代码的实 际位置与源代码行应准确的对应,特别是编译器选用了代码优化功能,这个原则 更必须予以重视,因为代码优化之后,源代码行与目标代码指令序列的对应关系 遭到破坏,从而也就打乱了目标代码调试信息中的对应关系。一般在调试程序时, 可要求编译器不使用优化选项,调试完成后再打开优化。 尽可能的给出有关被调试对象的上下文信息:调试器应提供给程序员从不角 度和层次观察调试对象状态和行为的功能。一般而言,调试器至少应具有断点设 置和查看、单步跟踪程序执行流程、以及程序在断点处停下来时对各种寄存器和 内存内容的访问、显示栈中函数的调用关系等等功能。对于多进程和多线程的调 试器,还得具有查看进程或线程之间的通信关系、以及它们各自的状态信息等等。 1 1 1 3 嵌入式系统开发环境中调试器的特点 具有跨平台的交叉调试功能;与嵌入式系统开发环境的编译器一样,被调试 程序的运行平台与调试器本身的运行平台往往是不一致的。 一般应具有远程调试的功能:嵌入式系统中对程序的调试往往通过串口通信, 2 第一章引言 网络通信等方式来完成调试器与运行目标程序的嵌入式设备的交互。这就使得被 调试程序中应有实现这种交互的功能模块。 优先采用仿真环境:如果有某类嵌入式设备的仿真环境的话,相应的应用程 序的调试一般先考虑在仿真环境下调试,以减少调试代价。 1 1 2 在线仿真器 在线仿真器( i n c i r c u i te m u l a t o r s ,i c e ) 是嵌入式系统领域中用得最多的调试 器之一,它是一个用来设计其它计算机系统的计算机,它代替了物理目标机上的 处理器或m c u ,其表现与被代替的目标处理器完全一样,但它允许用户查看处理 器内部的数据或代码并控制c p u 的运行。 从传统设计而言,i c e 对目标机处理系统的代替完全是物理上的替代,用户通 常要将目标机上的处理器物理的完全拔出,然后将i c e 的仿真探测器接口插入目 标机的c p u 插槽。在整个开发期间,目标机的c p u 就将完全被i c e 的仿真探测 器盒物理上的替代,因而目标机系统上的任何操作也将由用户通过i c e 主机的接 口完全监视和控制。当开发结束后,目标机软件硬件已经达到所预期的功能时, 将不再需要在线仿仿真器的调试功能,因此也就可以去除在线仿真器而将目标机 上原来的处理器重新插回。 由于在线仿真器独特的技术实现途径它完全代替了目标机上原来的处 理器,因此i c e 对目标机的访问是非干扰性的( n o n i n t r u s i v e a c c e s s ) ,也即在线仿 真器能够在不消耗目标系统上的任何资源的情况下( 例如:不消耗目标系统的堆 栈空间和内存空间、不影响目标系统的上的代码执行等) 查看目标机系统的内部 信息。正由于i c e 的这一特点,因此它除能提供普通调试器的基本功能外( 包括 检查和更改寄存器、内存单元,以及i o 等) 之外,还能提供一般调试器所不能提 供的调试手段。 但如果要求嵌入式系统开发者针对每一种m c u 都购买一款昂贵的仿真器,这 是非常浪费资源的。因此一个性能优秀、价格便宜的通用仿真器会给开发者带来 极大的方便。 1 1 3 嵌入式系统 目前常见的嵌入式系统,其硬件平台是由处理器、存储系统、外围设备等部 分通过电路板搭接而成,其中嵌入式处理器是整个系统中最复杂、最重要、最核 3 电子科技大学硕士学位论文 心、技术含量最多的部件。它与普通台式计算机的微处理器设计在基本原理上是 相似的,但是工作稳定性更高,功耗更小,对环境( 如温度、适度、电磁场、振 动等) 的适应能力强,体积更小,且集成的功能也较多。 现在的嵌入式领域应用着各种各样的嵌入式处理器,从8 位甚至4 位的单片 机、到6 4 位的高级处理器都有需求,其中8 位处理器由于价格便宜,能满足一些 主流的应用需求( 如电视遥控器) ,它们的市场占有率比较大;3 2 位的嵌入式处理 器能满足现在多数智能设备联网和执行复杂应用的需要,而成为当前嵌入式系统 领域的主流产品。3 2 位嵌入式处理器主要有5 种典型的微处理器体系结构,它们 分别是:a r m 、p o w c r p c 、x 8 6 、m i p s 和e i a ,除此以外还有s h ,c o l d f i r e ,m c o r e 等体系结构的3 2 位嵌入式处理器1 3 j 。 1 2 研究目标 1 2 1 研究内容 本课题所研究的内容,是上述嵌入式开发模式中的调试部分。从整体来看, 调试涉及了集成开发环境,在线仿真器及嵌入式处理器,为了让嵌入式开发中的 调试部分更加一体化、通用化,本课题拟在设计出一种通用的在线仿真器,配合 相应开发的调试环境,达到对多种嵌入式处理器的仿真调试,可以极大的方便嵌 入式开发。 本课题要研究的技术方向和领域有: 1 s o p c 设计:用于开发出通用仿真器,这种新的开发技术是未来嵌入式系 统集成的趋势。仿真器的硬件、软件都将基于这种设计而开发完成。 2 i c 设计、仿真和f p g a 验证:基于v c r i l o g 硬件描述语言的集成电路设计, 用于在s o p c 中开发出实现具体调试功能的 p c o r e 。 3 j i a g 调试原理:目前大部分嵌入式处理器均采用j t a g 扫描链来对自身 进行调试,仿真器正是利用这些扫描链以控制调试过程。 4 b d m 调试原理:m o t o r o l a 公司创造的处理器调试方式,在p o w e rp c 、 c o l d f i r e 等系列嵌入式处理器上采用。 5 a r m t t d m i 结构:一种流行的3 2 位嵌入式处理器,本课题选用该处理器 以验证开发出的通用仿真器及相应调试环境。 6 a l t e r a q u a r t u s i i 集成开发环境:s o p c 开发的集成开发环境,涉及i p c o r e 4 第一章引言 的配置、编译,操作系统、网络协议栈的集成开发,程序的下载调试等等。 7 通用i c e 及其设计实现:考查国内外通用i c e 方面的发展状况,研究自 主开发通用的仿真器的可行性及实现方法。 1 2 2 工作目标 d 设计一种基于s o p c 的通用i c e 结构模型 2 ) 基于该模型,开发出一个完整的、基于s o p c 技术的通用在线仿真器; 开发出一个运行于w i n d o w s x p 下简单的、图形界面的配套调试环境; 4 ) 在a r m 7 t d m i 嵌入式处理器上验证仿真器所具有的基本功能,并对性能 做简单测试。, 1 2 3 特色与创新 本文设计了一个通用仿真器的体系结构,利用各种i p c o r e 集成到s o p c 设计 中,并自主开发了仿真器的i p c o r e ;整个设计主要体现了通用性,可以非常方便的 通过下载仿真器i p c o r e 来对不同的嵌入式芯片进行仿真。 1 3 国内外研究现状 对i c e 的研究已经有2 0 余年的历史,国内外厂商开发出了大量的成熟产品, 像最早的i n t e l 公司的i c e 3 0 ”i ,国内深圳英倍特公司的e a s y i c e 等。这些产品 身上体现了仿真器技术的进步与发展,从过去完全的替代式仿真到现在的片上调 试逻辑技术。 国外对通用仿真器技术进行了较深入的研究,开发出了一些产品,比较有名 的像b d l 2 0 0 0 和t r a c e 3 2 等吲。它们都可以在不改变硬件设备的情况下通过下 载针对专门嵌入式芯片的调试“核”来达到对不同嵌入式芯片的仿真要求。出于商业 考虑,这些产品都未公开下载的内容,只是给出了其使用和配置方法。 目前,国内生产的部分i c e 产品可以对某一系列的嵌入式芯片进行仿真,比 如北京博创公司的u p - i c e 2 0 0 仿真器,可以支持a r m 7 和a r m 9 系列嵌入式芯片 1 2 3 l 。但从本质上来说,这些仿真器都不具有对所有带o c d 功能的嵌入式芯片仿真 的可能。 5 电子科技大学硕士学位论文 1 4 本文章节安排 第一章引言,概述了研究背景及研究目标。 第二章在线仿真器及调试接口,介绍在线仿真器的概念及发展,并讲述了 o c d 技术出现后的几个调试接口。 第三章数字芯片设计与综合,讲述i c 的设计与综合的部分技术以及s o p c 的设计方法。 第四章q u a r t u s l i ,介绍a l t e r a 的i c 设计综合工具o u a r t u s l i 。 第五章a r m 7 t d m i ,简要介绍了a r m 7 t d m i 芯片的结构,重点讲述了该芯 片的片上调试逻辑部分。 第六章通用仿真器的设计与实现,提出了一个基于s o p c 的通用仿真器的体 系结构,并结合a r m 7 t d m i 仿真逻辑的实际开发过程介绍了一个具体的仿真器 i p c o r e 的制作流程。 第七章结束语。 6 第二章在线仿真器及调试接口 第二章在线仿真器及调试接口 随着现代的微处理器封装越来越表贴化,仿真器探头的实现也就越来越困难 了,但是如果不能对微处理器实现探测,也就不能知道微处理器上正在执行的一 切操作细节信息,从而也就不能实现测试与调试的目的。另一方面,据统计数据 表明,9 5 的调试过程中用户仅仅使用了简单断点,单步以及访问处理器资源内存 和外设等一些运行控制方面的基本调试手段。因此,一个自然的发展趋势是将实 时跟踪和运行控制分开来实现,而将运行控制放在c p u 核内由个专门的调试控 制模块来实现,并用一个专用的串口信号接口开放给用户,用户可以通过c p u 内 核的调试控制模块来实现停止继续c p u 的运行,并访问目标机上的各种资源( 包 括寄存器内存和外设) ,这就是片上调试技术( o n - c h i pd e b u g 简称o c d ) 。在o c d 接口中使用串行信号接口以减少调试接口的引脚数目,而不必像在线仿真探测器 接口或逻辑分析仪那样要用到上百根线路去连接目标机。 摩托罗拉公司最早认识到o c d 技术这个发展趋势,并率先在6 8 3 x x 和6 8 h c l 6 处理器上创造了b d m ( b a c k g r o u n dd e b u gm o d e ) 调试接口。随后,摩托罗拉公司 在它的c o l d f i r e 、p o w e r p c 等系列处理器中都使用了b d m 调试接口技术。而m i p s , i n t e l ,t i ,i b m 和a r m 等实现了基于j t a g ( j i o n tt e s ta c n t :c s sg r o u p ) 标准的串 行调试接口。 2 1 在线仿真器 2 1 1 最早的i c e 在线仿真器是开发系统最重要的硬件组成部分,是开发软件和硬件最有效的 手段之一。在线仿真器的最原始概念诞生于i n t e l 公司的i c e - 3 0 ”。i ,这是一种专 用于位片式处理机仿真的仿真器。i n t e l 公司以i c e - 8 0 首次在8 位徽处理机领域 里提出了在线仿真的概念,i c e 8 0 支持微处理器8 0 8 0 微型计算机应用系统的仿真 调试。 该结构的优点是:结构简单,价格低廉。 该结构的缺点是:系统软件随目标处理器的不同而需要改写,并且不是所有 的存储器都能使用。 7 电子科技大学硕士学位论文 图2 - 1i c e - 8 0 仿真器结构 仿真器有它自身的控制程序,它驻留在仿真器的固件内。i c e - 8 0 仿真器硬件 本身也是一台完整的微型计算机系统,其中包含了一个8 0 8 0 c p u ,它一方面能仿 真运行用户程序,另一方面要执行仿真器固件,控制仿真器的自身操作。i c e - 8 0 的数据通道如图2 1 所示。 开发系统与仿真器之间通过控制模块交换控制和数据信息。开发系统里的仿 真软件把仿真启动时的初始参数设置在控制模块里,通过控制模块再传给仿真器。 仿真运行停止时,仿真器把仿真的数据传送给控制模块,以使开发系统能够知道 仿真结果。 2 1 2 在线仿真器的结构 在线仿真器的结构因微处理器和微控制器的结构不同而略有变化。其典型结 构如图2 - 2 所示:基本模块包括仿真存储器、断点控制器、存储映象控制器、数据 交换、控制单元和地址数据缓冲;目标处理器模块包括目标处理器和时钟发生器; 主机用于人机信息交互、程序输入、编辑、存储、显示当前被调试系统的信息和 控制调试过程。依靠这一结构,可以用相同的基本模块仿真不同型号的微处理器 或微控制器, 2 1 3 在线仿真器的功能 图2 - 2 在线仿真器的基本模块 在线仿真器一般应该具有以下几种功能 1 断点功能 8 第二章在线仿真器及调试接口 在线仿真器的一个重要功能是设置断点。在用户程序执行时,它能触发有条 件的间断,停止程序执行以便分析。断点功能对调试用户程序是极其有用的,用 户在所希望的程序点插入一个断点,使程序一直执行到断点处,通过检查处理器 的寄存器或i o 端口,来查看执行的用户程序是否正确。当不需要断点时,即可将 其删除,使程序正常执行。 2 单步执行功能 在线仿真器在接上目标系统并进行仿真时,可以使仿真单步执行,即程序每 执行一步( 一步可以是一条指令,也可以是多条指令) ,即停止程序执行,并显示 执行后的寄存器内容与状态信息。单步执行功能有助于检查数据总线、地址总线、 状态标志和控制线的状态。通过对处理器状态的每一步检查,用户可以检测下列 各类程序错误,如不正确的转移,不正确的编址和错误的操作码等等。 3 连续执行功能 在线仿真器从当前地址开始执行,直到遇到断点时停止,并显示断点前程序 运行的信息,供用户分析。 4 跟踪( 耵认c e ) 功能 跟踪功能是在线仿真器最为重要的一个功能。在线仿真器能捕捉到每一个时 钟周期数据总线、地址总线和控制总线的数据并存储,供用户进行分析。通过在 线仿真器的跟踪功能,我们可以知道一段程序执行的连续过程,在适当的程序点 插入断点后,就可以看到当前状态是怎样形成的,这是调试用户程序非常有效的 一个手段。 5 资源出借功能 在线仿真器能设定仿真时用户系统能向开发系统“借出”的存储器资源与i 0 资源。从用户程序来看,这些借用的资源如同目标系统本身所有的一样。用户在 开发初期把开发系统的部分资源借到用户样机的存储器空间中去,借助于这部分 资源可完成对其它部分的调试。而在开发后期,开发系统收回自己的资源,完全 在用户的环境中调试。 6 对存储器、寄存器及i 0 端口操作功能 这是在线仿真器必备的功能,也是调试程序所必须的功能。用户通过检查和 修改处理器的存储单元、寄存器和! o 端口的内容,来分析判断程序运行是否正确 以及控制程序的下一步运行。 9 电子科技大学硕士学位论文 2 1 4 在线仿真器的种类 1 e i c e ( e m b e d d e di n c i r c u i te m u l a t o r ,嵌入式在线仿真器) 随着微处理器品种的增多和速度的提高,微处理器内部结构越来越复杂,功 能也越来越强大。许多新型微处理器中包含仿真器不可见的高速缓存,内部时钟 速率一般比总线速率高出好几倍,可以超过1 0 0 m h z ,再用外接在线仿真器替代 的传统功能( 如运行、停止、单步、跟踪、查看寄存器、读写目标存储器) 嵌入 到处理器芯片内部。这样做的好处是巨大的,例如可以降低在线仿真器的成本、 减少引脚。将在线仿真器嵌入到处理器内部的方法有两种:一种是使用边界扫描 ( b o u n d a r ys c a n ) 技术,在线仿真器通过微处理器芯片内部的j t a g ( j o t a t t e s t a c t i o n g r o u p ) 边界扫描口与c p u 通信,对其进行仿真,基于j t a g 技术的在 线仿真器最少使用5 个处理器的引脚,4 个寄存器和几路f o 口逻辑电路,因此价 格比较便宜,连接比较方便,属于完全非插入式( 即不使用片上资源) 调试,它 无需目标存储器,不占用目标系统的任何端口;另外一种是处理器内部提供后台 调试模式b d m ,并增加一个可插入后台模式指令激活后台处理的串行口作为在线 仿真接口,在定义的执行点上,由在线仿真器将后台调试指令覆盖在原代码上, 控制目标处理器的运行与停止。 2 m l c e ( m u l t ii n c i r c u i te m u l a t o r s ,多在线仿真器) 随着多机系统的发展,为了支持多机系统的应用开发,提出了多在线仿真器 的概念。多在线仿真器是能同时仿真多个目标处理器的在线仿真系统。目标处理 器可以是微处理器,也可以是单片机。如i n t e l 公司的i c e - 8 5 ,它支持多在线仿 真,能仿真两个目标处理器。 3 独立型在线仿真器( s t a n d - a l o n ei n c i r c u i te m u l a t o r ) 早期的在线仿真器是开发系统中的一个专用功能部件,现在它已经独立出来 变成独立型在线仿真器。第一个问世的独立型在线仿真器是a p p f i e d m i c r o s y s t e m s 公司的e m 系列和e s 系列。现在独立在线仿真器有很多,如i n t e l 公司的i c e - 6 9 , m i c e t e k 公司的m i c e 仿真器等等。独立型在线仿真器通过标准的r s 2 3 2 接口 与p c 机相连,在相应的仿真开发软件支持下,就可以构成一个高性能的开发系统。 随着个人计算机的普及,独立型在线仿真器成为仿真器的发展方向之一。 2 1 5 在线仿真器技术现状 到今天为止,在线仿真器发展大约有2 0 余年的历史,总的说来生产商的规模 1 0 第二章在线仿真器及调试接口 都不是很大。根据仿真器使用的技术来划分,仿真器的设计大约可以分成以下几 个时期: 1 7 0 年代末期到8 0 年代中期 这个时期采用的技术主要是仿真开发系统。这种技术主要在仿真器的初级阶 段使用。由于当时没有好的仿真芯片,在线仿真器被设计成了一个双平台的系统, 并根据用户的要求在监控系统和用户系统中切换。这种仿真系统性能完全依赖于 设计者的水平,实际的最终性能厂家之间相差很大。不过总的说来需要占用一定 的用户咨源,并且设计复杂。现在基本上已经淘汰,只是使用在一些开发学习系 统中。 2 8 0 年代末期到9 0 年代末期 这个时期主要采用的是b o n d o u t 技术:一般来说,人们常说的专用仿真芯片 其实就是b o n d o u t 。这种仿真芯片一般也是一种单片机,但是内部具有特殊的配合 仿真的时序。当进入仿真状态后,可以冻结内部的时序运行,可以查修改在静止 时单片机内部的资源。使用b o n d o u t 技术制作的在线仿真器具有时序运行准确, 设计制作成本低等优点。但由于该芯片一般由单片机生产厂家提供,因此只能仿 真该厂商指定的单片机,仿真的品种很少。 3 2 0 0 0 年至今 2 0 0 0 年至今主要采用h o o k s 技术和嵌入式仿真技术。h o o k s 是p h i l i p s 公司拥有的一项仿真技术,主要解决不同品种单片机的仿真问题。使用该专利技 术就可以仿真所有具有h o o k s 特性的单片机,即使该单片机是不同厂家制造的。 使用h o o k s 技术制造的仿真器可以兼容仿真不同厂家的多种单片机,而且仿真 的电气性能非常接近于真实的单片机。 但是,h o o k s 技术对仿真器的制造厂家的技术要求特别高。不同的仿真器生 产厂家虽然都得到h o o k s 技术的授权,但是即使到了今天,也不是每个仿真器 厂家都能生产h o o k s 仿真器,而且生产出来性能也差异很大。 2 1 6 采用o n - c h i pd e b u g 技术的i c e 嵌入式仿真技术是随着芯片技术的发展而产生的,现在很多单片机生产厂商 在芯片内部嵌入了仿真功能,一般通过j t a g 接口或b d m 接口进行控制。为了降 低成本和增加可靠性,内嵌的仿真部分一般功能相对简单。这些片上调试技术通 过在芯片的硬件逻辑中加入调试模块,从而能够降低成本,实现传统的在线仿真 1 l 电子科技大学硕士学位论文 器和逻辑分析仪器的功能,并在一定的条件下实现实时跟踪和分析,进行软件代 码的优化。后文将详细介绍基于o c d 技术的嵌入式芯片接口。 2 2j t l a g 接口标准 2 2 1j t a g 接口 随着手持式电子设备的迅猛发展,手机、掌上电脑、电子书和数码相机等正 在快步走进人们的日常生活。这一类电子产品同属于嵌入式系统的范畴,都是以 高性能的微处理器为核心扩展相应的存储器和功能电路,运行小巧的操作系统和 相应的应用程序,实现电子设备的各种功能。由于是手持设备,因而要求体积小、 重量轻、耗电少。这些特点决定了设备内部的印制板的尺寸比常规电子设备小得 多,而且元器件密度大,双面贴装。这给设计人员带来了若干问题,如操作系统 代码和应用程序的写入,板上芯片的测试等。下面简要说明嵌入式系统中如何通 过j t a g 接口进行系统芯片编程调试。 在嵌入式系统开发和产品生产过程中,对系统程序存储器编程主要使用三种 编程方法:通过编程器编程、使用板上编程器编程和在系统编程【9 l 。通过编程器编 程这是在e p r o m 、e e p r o m 、g a l 等芯片流行时常用的传统编程方法,即在可 编程芯片焊装到电路板之前,使用专门的编程器对芯片进行代码或数据的写入, 然后将已编程的芯片安装到电路板上。使用编程器进行编程特别适合于d i p 封装 的芯片,如果是其它类型的封装,则必须使用相应的适配器。这种方法的缺点是 需要手工进行待编程芯片的插入、锁定等工作,容易造成芯片方向错误、引脚错 位等,导致编程效率降低。 。使用板上编程器编程( o b p ) 方法是在电路板上所有芯片已经焊装完毕后, 再对板上的可编程芯片进行编程。通过专用电缆将电路板与外部计算机连接,由 计算机的应用程序进行板上可编程芯片的代码或数据写入。芯片擦除、编程所需 要的电源、控制信号、地址、数据和相关命令都由板外的编程控制器提供。在进 行板上编程时,需要通过专门的辅助电路关断目标板上的电源或将其外部接口信 号设置为高阻状态,以免与编程时的地址、数据和控制信号发生冲突在板上编 程可以克服芯片引脚错位、方向插反等问题,避免烧毁芯片、编程错误,保证了 芯片编程的高成功率和可靠性。另一个优点就是及时软件升级,可以做到在产品 出厂时系统使用最新版本的固化软件,这对于日新月异的手持电子设备而言是必 第二章在线仿真器及调试接口 须的。这种方法的缺点是需要在电路板上设计编程用的接口、隔离等辅助电路, 在编程时通过跳线或f e t 开关进行编程与正常工作的状态转换。这样会增加每个 电路板芯片的数量,造成产品成本的增加。 在系统编程( i s p ) 1 9 1 方法直接利用系统中带有j t a g 接口的器件如c p u 、 f p g a ,c p l d 等,执行对系统程序存储器芯片内容的擦除和编程操作。一般而言, 高档微处理器均带有j t a g 接口,系统程序存储器的数据总线、地址总线和控制信 号直接接在微处理器上。编程时,使用p c 机内插卡或并行接口通过专用电缆将系 统电路板与p c 机联系起来,在p c 机上运行相关程序,将编程数据及控制信号 传送到j t a g 接口的芯片,利用相应指令从微处理器的引脚按照j t a g 芯片的编程 时序输出到f l a s h 存储器。这种编程方法的条件是系统中必须存在带有j t a g 接 口或与之兼容的芯片如微处理器。优点是系统板上不需要增加其它与编程有关的 辅助电路,减小了电路板的尺寸,避免了对微小封装芯片的手工处理,特别适用 于电路板尺寸有严格限制的手持设备。 正如上节所述,在现代电子应用系统中,印刷电路板越来越复杂,多层板的设计 越来越普遍,大量使用各种表贴元件和b g a ( b a l lg r i da r r a y ) 封装元件,元器件 的管脚数和管脚密度不断提高,使用万用表、示波器测试芯片的传统“探针”方法已 不能满足要求。在这种背景下,早在2 0 世纪8 0 年代,联合测试行动组( j o i n t t e s t a c t i o ng r o u p ,简称j t a g ) 起草了边界扫描测试( b o u n d a r ys c a nt e s t i n g ,简 写b s t ) 规范,后来在1 9 9 0 年被批准为i e e e 标准1 1 4 9 1 规定,简称j t a g 标准。 边界扫描测试有两大优点:一个是方便芯片的故障定位,迅速准确地测试两 个芯片管脚的连接是否可靠,提高测试检验效率;另一个是,具有jt a g 接口的 芯片,内置一些预先定义好的功能模式,通过边界扫描通道来使芯片处于某个特 定的功能模式,以提高系统控制的灵活性和方便系统设计。 现在,所有复杂的i c 芯片几乎都具有j t a g 控制接口,j t a g 控制逻辑简单方 便,易于实现。 2 2 2 1j t a g 边界扫描的工作原理 边界扫描测试是通过在芯片的每个的脚附加一个边界扫描单元( b s c , b o u n d a r ys c a nc e l l ) 以及一些附加的测试控制逻辑实现的。b s c 主要是由寄存器 组成的,每个f o 管脚都有一个b s c ,每个b s c 有两个数据通道:一个是测试数 电子科技大学硕士学位论文 据通道, o u t p u t ) : 数据输出 测试数据输入t d i ( t e s td a t ai n p u t ) 、测试数据输出t d o ( t e s td a t a 另一个是正常数据通道,正常数据输入n d i ( n o r m a ld a t ai n p u t ) 、正常 图2 3j t a g 边界扫描单元 在正常工作状态,输入和输出数据可以自由通过每个b s c ,正常工作数据从 n d i 进,从n d o 出。在测试状态,可以选择数据流动的通道:对于输入的i c ( 集 成电路,i n t e g r a t e dc k c u i t ) 管脚,可以选择从n d i 或从t d i 输入数据;对于输出 的i c 管脚,可以选择从b s c 输出数据至n d o ,也可以选择从b s c 输出数据至 t d o 。 图2 4 是边界扫描测试应用的示意图。为了测试两个j t a g 设备的连接,首先 将j t a g 设备1 某个输出测试脚的b s c 置为高或低电平,输出至t d o ,然后,让 j t a g 设备2 的输入测试脚来捕获从管脚输入的t d i 值,再通过测试数据通道将捕 获到的数据输出至t d o ,对比测试结果,即可快速准确的判断这两脚是否连接可 靠。 串行数 姑暂l j f a g 设备l獭试逑接缱 j t a g - 垃符2 2 2 2 2j t a g 电路结构 图2 _ 4j t a g 扫描测试应用 1 4 第二章在线仿真器及调试接口 j t a g 控制器的电路结构如图2 - 5 所示。j t a g 控制器主要由三个部分组成:测 试端口控制器( i 甜,t e s t a c c e s sp o r t ) 、指令寄存器( 包括指令译码器) 和数 搬寄存精 图2 - 5 边界扫描测试的内部电路结构 据寄存器。 1 t a p 控制器 这是边界扫描测试核心控制器,有以下5 个控制信号: 1 ) t c k :边界扫描时钟; t m s :j t a g 测试模式选择; 3 ) t d i :串行边界扫描输入数据; t d o :串行边界扫描输出数据; 5 ) t r s t :j t a g 测试逻辑复位,低电平有效,当t r s t 输入为低电平时,芯 片进入正常工作状态,j t a g 测试逻辑无效。 2 指令寄存器 若执行数据寄存器边界扫描测试,则指令寄存器负责提供地址和控制信号去 选择某个特定的数据寄存器;也可以通过指令寄存器执行边界扫描测试,这时, t a p 输出的s e ie c t 信号选择指令寄存器的输出去驱动t d o 。 电子科技大学硕士学位论文 3 数据寄存器 i e e e 标准1 1 4 9 1 规定,必须具有的两个数据寄存器是边界扫描寄存器 ( b o u n d a r ys c a nr e g i s t e r ) 和旁通( b y p a s s ) 寄存器。其它的寄存器是可选的。由 指令寄存器选择某个特定的数据寄存器作为边界扫描测试寄存器,当一个扫描路 径选定后,其它的路径处于高阻态。边界扫描寄存器是由围绕i c 管脚的一系列的 边界扫描单元b s c 组成的,正是由它来实现测试管脚信号的输入、输出;旁通寄 存器只由

温馨提示

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

评论

0/150

提交评论