(计算机系统结构专业论文)基于arm7tdmi的jtag调试设计.pdf_第1页
(计算机系统结构专业论文)基于arm7tdmi的jtag调试设计.pdf_第2页
(计算机系统结构专业论文)基于arm7tdmi的jtag调试设计.pdf_第3页
(计算机系统结构专业论文)基于arm7tdmi的jtag调试设计.pdf_第4页
(计算机系统结构专业论文)基于arm7tdmi的jtag调试设计.pdf_第5页
已阅读5页,还剩72页未读 继续免费阅读

(计算机系统结构专业论文)基于arm7tdmi的jtag调试设计.pdf.pdf 免费下载

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

文档简介

摘要 嵌入式系统融合了计算机软硬件技术、通信技术和半导体微电子技术,根据应用要求,把相 应的计算机直接嵌入到应用系统中。 随着在军事、航空航天、工业控制、仪器仪表、汽车电子、通信和家用消费类等领域等领域 的广泛应用嵌入式系统的作用越来越重要。它的功能越米越强大,结构越来越复杂,所以造成 嵌入式系统的开发和调试越来越困难。 a r m 是a r m ( a d v a n c e dr i s cm a c h i n e s ) 公司所开发的一种微处理器软件技术,包括r i s c 处理器核心、调试和开发环境等软件它用于8 1 6 3 2 位嵌入式r 1 s c 处理器具有高性能、廉价、 低功耗的特点。a r m 包括了一系列微处理器系统芯片技术,其中a r m 7 1 0 系列主要应用于手持 式计算设备、数据通信和消费类电子产品,a r m 9 4 0 t 、9 2 0 t 系列主要应用于机顶盒产品、笔记本 电脑和打印机,s t r o n g a r m 应用于掌上电脑、p d a 产品,以及a r m 7 5 0 0 和a r m 7 5 0 0 f e 应用于 电视机顶盒和网络计算机。 a r m 系列徽处理器的调试和开发方式与传统微处理器的调试和开发方式有所不同,传统微处 理器的调试和开发采用在线仿真i c e ( i n - c i r c u i te m u l a t o r ) 方式,适用于引脚较少,功能较弱的微处 理器开发而a r m 系列处理器的芯片管脚较多微处理器的功能很强大,如果用i c e 方式开发 和调试,将会非常困难。 j t a g 即i e e e - 11 4 9 1 标准,只需5 根引脚就可以实现调试嵌入式系统的功能。它不但能测试 各种集成电路芯片,也能测试芯片内各类宏单元还能测试相应的印刷电路板。 由于a r m 系列处理器具有标准的j t a g 接口,所以a r m 系列处理器开发和调试可以采用 j t a g 调试技术。在实验室老师和同学们的帮助下,我利用a t m e l 公司的a t 9 i e b 4 0 开发板完 成了a r m 7 t d m i 处理器的j t a g 调试接口设计。 本文将详细介绍a r m 7 t d m i 处理器的j t a g 调试接口设计过程。第一章嵌入式系统开发承i 调试, 简单介绍了嵌入式系统的两种调试方式以及未来的发展趋势:第二章j t a g 边界扫描接口,主要介 绍j t a g 标准( i e e e - 1 1 4 9 1 标准) 、j t a g 边界扫描原理、j t a g 引脚信号、t a p 控制器、测试数据 寄存器、j t a g 指令、e m b e d d e d i c e 模块、a r m t t d m i 中的j t a g 调试接口。第三章a r m t t d m i 的j t a 6 调试方法一较系统介绍了j t a g 调试系统,a i 碰7 t d m i 处理器核和a t 9 1 r 4 0 8 0 7 微控制器以及j t a g 调试方法第四章a r m 7 t d m i 调试控制软件详细介绍了嵌入式集成开发环境、j t a g 初始化、。i t a g 调试功能的实现。第五章是总结以及对今后工作做的展望。 【关键词】嵌入式系统,2 t a g 调试,a r m 7 t d m i 处理器核嵌入式集成开发环境 a b s t r a c t t h ee m b e d d e d s y s t e m i n c o r p o r a t e s t h e t e c h n o l o g y o f c o m m u n i c a t i o n ,s e m i c o n d u c t o r , m i c r o e l e c t r o n i c s ,c o m p u t e rs o f t w a r ea n dh a r d w a r ea n de m b e d st h ec o r r e s p o n d i n gc o m p u t e ri n t o t h e a p p l i c a t i o ns y s t e m w i t ht h ew i d ea p p l i c a t i o ni nt h ef i e l do ft h em i l i t a r y , a v i a t i o na n di n d u s t r yc o n t r o l ,a u t o m o b i l e e l e c t r o n i c s ,c o m m u n i c a t i o n sa n dc o n s u m e r h o m ea p p l i a n c e s ,t h er o l eo fe m b e d d e ds y s t e mh a sb e e nm o r e i m p o r t a n t t h e f u n c t i o nh a sb e e ns t r o n g e r , t h ea r c h i t e c t u r eh a sb e e nm o r ec o m p l e x s ot h er e s e a r c h , d e v e l o p m e n ta n dd e b u g g i n g o fi th a sb e e nm o r ed i f f i c u l tt h a nb e f o r e a r mi st h e t e c h n o l o g y o f m i c r o p r o c e s s o rd e s i g n e db y a d v a n c e dr i s cm a c h i n e s c o m p a n y , i n c l u d i n gr i s cp r o c e s s o rc o r ea n ds o f t w a r eo fd e b u g g i n ga n dd e v e l o p p e re n v i o n m e n t i t i s u s e df o r8 1 6 3 2b i t se m b e d d e dr i s cp r o c e s s o r , l t ss t r o n g p o i n ti sh i g h - p e r f o r m a n c e ,l o w - p r i c ea n dl o w p o w e r c o n s u m e a r mh a sas e r i e so f t e c h l o g yo f m i c r o p r o c e s s o rc h i p a r m 7 1 0s e r i e si sm a i n l yu s e df o r h a n d - c o m p u t i n gd e v i c e ,d a t a c o m m u n i c a t i o n sa n dc o n s u m e re l e c t r o n i c s p r o d u c l a r m 9 4 0 t a n d a r m 9 2 0 ts e r i e sf o rt o p - b o xd e v i c e ,n o t e b o o kc o m p u t e ra n dp r i n t e r , s t r o n g a r a mf o rp a l mc o m p u t e ra n d p d a ,a r m 7 5 0 0a n da r _ m 7 5 0 0 f e f o rt v t o p - b o xa n dn e t w o r kc o m p u t e r t h e d e v e o p m e n t a n dd e b u g g i n gm e t h o d so f a p d v lm i c r o p r o c e s s o ra r ed i f f e r e n tf r o mc o n v e n t i o n a l m e t h o d ,w h i c ha d o p t s i n c i r c u i te m u l a t o r t h ec o n v e n t i o n a lm e t h o di ss u i tf o rt h ed e v e l o p m e n to f m i c r o p r o c e s s o r sw h i c hh a saf e wp i na n db e e nl e s sp o w e r f u l ,b u ta r m m i c r o p r o c e s s o rh a sm a n yp i n s a n dm o r e p o w e r f u l i f i ti sd e v e l o p e db y i c em e t h o d ,i ti sv e r yd i f f i c u l t j t a g i e e e 1 1 4 9 1s t a n d a r d ,r e a l i z e s t h ed e b u g f u n c t i o no n l y b y f i v e p i n s i tc a l l t e s ta 1 1k i n d so f i cc h i p s a n dm a c r oc e l l si nt h ec h i p ,t e s tt h er e s p o n d i n gp c b s b e c a u s ea r mm i c r o p r o c e s s o rh a st h es t a n d a r dj t a gd e b u gi n t e r f a c e ,t h e d e v e l o p m e n ta n d d e b u g g i n gc a nu s ej t a gd e b u gt e c h n o l o g y w i t ht h eh e l po f t e a c h e r sa n ds t u d e n b ,if i n i s h e dt h ed e s i g n o f t h eh o s tj t a gd e b u g g e rb a s e do n a t 9 1 e b 4 0e v a l u a t i o nb o a r d t h i st h e s i si n t r o d u c e si nd a t a i lt h ed e s i g no ft h eh o s tj t a g d e b u g g e ro f a r m m i c r o p r o c e s s o l t h e f i r s tc h a p t e ri sa b o u tt w od e b u g g i n gm e t h o d so fe m b e d d e ds y s t e ma n df u t u r ed i r e c t i o n t h es e c o n di s a b o u tj t a gs t a n d a r d 。j t a g b o u n d a r y s c a n t h e o r y , j t a gp i ns i g n a l ,t a pc o n t r o l l e r , t e s t d a t a r e g i s t e r s ,j t a gi n s t r u c t i o n ,e m b e d d e d i c em o d u l e ,a r m t t d m ij t a gd e b u gi n t e r f a c e t h et h i r di sa b o u t j t a gd e b u gs y s t e m ,a r m 7 t d m im i c r o p r o c e s s o rc o r e ,a t 9 1 r 4 0 8 0 7m i c r o c o n t r o l l e ra n dt h ej t a g d e b u g g i n gm e t h o d t h e f o u r t hi sa b o u te m b e d d e d d e ,j t a g i n i t i a l i z a t i o n ,a l l j t a gd e b u g g i n g f u n c t i o n s t h ef i f t hi sa b o u ts u m m a r ya n d p r o s p e c tf o rf u t u r er e s e a r c h k e yw o r d 】e m b e d d e ds y s t e m ,j t a gd e b u g g i n g ,a r m 7 t d m i ,e m b e d d e di d e 前言 嵌入式系统融合了计算机软腰件技术、通信技术和半导体微电子技术,根据应用要求,把相 应的计算机直接嵌入到应用系统中。 随着在军事、航空航天、:i :业控制、仪器仪表、汽车电子、通信 l j 家心消费类等领域等领域 的广泛应用,嵌入式系统的作用越来越重要。它的功能越来越强大,结构越来越复杂,所以造成 嵌入式系统的开发和调试越来越困难。 在嵌入式系统领域,利用a r m 系列处理器是其中非常重要的手段,a r m 是a r m ( a d v a n c e d i l i s cm a c h i n e s ) 公司所开发的一种微处理器软件技术,包括r i s c 处理器核心、调试和开发环境 等软件。它用于8 1 6 3 2 位嵌入式r i s c 处理器。具有高性能、廉价、低功耗的特点。a r m 广泛 应用于各类嵌入式设备中,包括了一系列微处理器系统芯片技术。其中a r m 7 1 0 系列主要应用于 手持式计算设备、数据通信和消费类电子产品,a r m 9 4 0 t 、9 2 0 t 系列主要应用于机顶盘产品、笔 记本电脑和打印机,s 廿o n g a r m 和x s c a l e 应用于掌上电脑、p d a 产品,以及a r m 7 5 0 0 和 a r m 7 5 0 0 f e 应用于电视机顶盘和网络计算机。 a r m 系列处理器的调试和开发方式与传统徽处理器的调试和开发方式右所不同传统微处理 器的调试和开发采用在线仿真i c e ( i n - c i r c u i t e m u l a t o r ) 方式。适用于引脚较少功能较弱的微处理 器开发而a r m 系列处理器的芯片管脚较多,微处理器的功能很强大,如果用i c e 方式调试和 开发,将会非常弱难, j t a g 即i e e e - 1 1 4 9 i 标准- 只需5 根引脚就可以实现调试嵌入式系统的功能。它不但能测试 各种集成电路芯片,也能测试芯片内各类宏单元,还能测试相应的印刷电路板。 j t a g 调试器,是通过a r m 芯片的j t a g 边界扫描口进行调试的设备及其软件,j t a g 仿真 器连接比较方便,通过现有的j t a g 边界扫描口与a r mc p u 核通信,属于完全非插入式f 即不使 用片上资源) 调试,它无需目标存储器,不占用目标系统的任何端口,而这些是驻留监控软件所必 需的另外由于j t a g 调试的目标程序是在目标板上执行,仿真更接近于目标硬件, j t a g 调试器为非侵入式、实时性的硬件仿真器,利用硬件完成并行口协议与j t a g 协议转换, 通过j t a g 接口编程芯片内部仿真模块( 嵌入式i c e , - r t ) 实时监测a r m 寄存器,程序在a r m 内 核全速运行。嵌入式i c e - r t 实时监测地址与数据总线并与预设值比较,在吻合时产生 b r e a k p o i n t 中断通知内核。这样在程序全速运行时可以在断点处停止可以设置条件断点、 条件观测断点。 由于a r m 系列处理器具有标准的j t a g 接口,所以a r m 系列处理器调试和开发可以采用 j t a g 调试和开发技术。我们需要研究和实现j t a g 的调试和开发方法非常必要和关键。 2 第一章嵌入式系统开发及调试 1 1 嵌入式系统现状及发展趋势 随着信息化、智能化、网络化的发展,嵌入式系统技术也将获得广阔的发展空问。美国蔫名 来来学家尼葛洛庞帝于1 9 9 9 年1 月访华时曾预言,4 5 年后嵌入式智能( 电脑) 工具将是p c 利 因特网之后的最伟大发明。 进入到2 0 世纪9 0 年代嵌入式技术全面展开,目前已成为通信和消费类产品的共同发展方 向在通信领域数字技术正在全面取代模拟技术。在个人消费类领域中,嵌入式产品将主要是 作为个人移动的数据处理和通信软件。由于嵌入式产品具有自然的人机交互界面,g u i 屏幕为中 心的多媒体界面给人以很大的亲和力 硬件方面,不仅有各大公司的微处理器芯片,还有用于学习和研发的各种配套开发包。目前 底层系统和硬件平台经过若干年的研究。已经相对比较成熟,实现各种功能的芯片应有尽有。而 且巨大的市场需求给我们提供了学习研发的资金和技术力量。 根据一个被普遍认可的定义。嵌入式系统是以应用为中心以计算机技术为基础,软件硬件 可剪裁,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。嵌入式 系统具有系统内核小、专用性强、系统精简、高实耐性的固化软件、需要专门的开发工具和环境。 嵌入式系统具有非常广阔的应用前景,其应用领域包括: 1 工业控制 基于嵌入式芯片的工业自动化设备具有很大的发展空间,目前已经有大量的8 、1 6 、 3 2 位嵌入式徽控制器应用在工业过程控创、数控机床、电力系统、电网安全、电网设备监 测、石油化工系统等领域。 2 交通管理 在车辆导航、流量控制、信息监测与汽车服务方面。嵌入式系统技术已经获得了广泛 的应用,内嵌g p s 模块、g s m 模块的移动定位终端已经在各种运输业获得了成功的使用。 3 信息家电 这将成为嵌入式系统最大的应用领域,冰箱、空调等的网络化、智能化将引领人们的 生活步入一个崭新的空间。即使不在家里,也可以通过电话线、网络进行远程控制。在这 些设备中,嵌入式系统将大有用武之地。 4 家庭智能管理系统 水、电、煤气表的远程自动抄表,安全防火、防盗系统其中嵌有的专用控制芯片将 代替传统的人工检查,井实现更高、更准确和更安全的性能。目前在服务领域中一些手 持设备已经体现出了嵌入式系统的优势, 5 p o s 网络及电子商务 公共交通无接触智能卡( c o i i 嘲i e 筠s m a r t c a r d ,c s c ) 发行系统、公共电话卡发行系 统、自动售货机、各种智能a t m 终端将全面走入人们的生活,到时手持一卡就可以行遍 天下。 6 。环境监测 环境监测包括水文资料实时监测、防洪体系及水土质量监测、堤坝安全、地震监测、 实时气象信息网、水源和空气污染监测在很多环境恶劣、地况复杂的地区嵌入式系统 将实现无入监测。 7 机器人 嵌入式芯片的发展将使机器人在微型化、高智能方面优势更加明显,同时会大幅度降 低机器人的价格,使其在工业领域和服务领域获得更广泛的应用。 除了以上这些应用领域,嵌入式系统还有其他方面的应用。可以毫不夸张地说,嵌入式系统 已经进入到现代社会人们生活的方方面面可以说是“无处不在”,尤其是在控制方面的应_ | _ i j 。 信息时代、数字时代使得嵌入式产品获得了巨大的发展机遇,为嵌入式市场展现了美好的前 景,同时也对嵌入式生产厂商提出了新的挑战。从中可以看出未来嵌入式系统的几大发展趋势: 1 嵌入式开发是一项系统工程,因此要求嵌入式系统厂商不仅耍提供嵌入式软硬件系统本 身,同时还需要提供强大的硬件开发工具和软件包支持。 2 网络化、信息化的要求随着因特网技术的成熟、带宽的提高而日益提高,使得以往单一功 能的设备如电话、手机、冰箱、微波炉等功能不再单一,结构更加复杂。 3 未来的嵌入式设备为了适应网络发展的要求,必然要求硬件上提供各种网络通信接口。 4 未来的嵌入式产品是软硬件紧密结合的设备,为了降低功耗和成本,需要设计者尽量精简 系统内核,只保留和系统功能紧密相关的软硬件,利用晟低的资源实现最适当的功能。 5 嵌入式设备能与用户亲密接触- 最重要的因素就是它能提供非常友好的用户界面、图像界 面和灵活的控制方式、使得人们感觉嵌入式设备就像是一个熟悉的老朋友。 1 2 嵌入式系统开发方法 嵌入式处理器是嵌入式系统的核心。是控制、辅助系统运行的硬件单元。a r m ( a d v 眦c e d r i s c m a c h i n e s ) 公司是全球领先的1 6 3 2 位r i s c 微处理器知识产权设计供应商。a r m 公司通过转让 高性能、低成本、低功耗的r i s c 微处理器、外围和系统芯片设计技术给合作伙伴,使他们能用这 些技术来生产各具特色的芯片。a r m 已成为移动通信、手持设备、多媒体数字消费嵌入式解决方 案的r i s c 标准。 a r m 7 t d m i 处理器是a r m 7 处理器系列成员之一,是目前应用最广的3 2 位高性能嵌入式 r i s c 处理器 嵌入式系统的开发通常采用“宿主机目标机”方式。- f f g e ,利用宿主机上丰富的资源及良好 的开发环境开发和调试目标机上的软件。然后,通过串行口或网络将交叉编译生成的目标代码传 输并装载到目标机上- 并用交叉编译器在监控程序或实时内核省i 作系统的支持下进行实时分析和 调度。最后,目标机在特定环境下运行。 在嵌入式系统的应用开发中,整个系统的开发过程将改变为如图1 - l 所示的过程。 图1 - 1 嵌入式系统的开发流程 4 可见,在应用嵌入式系统开发的过程中,因为对应于每一个处理器的硬件平台都是通用的、 固定的、成熟的。所以,在开发过程中减少了硬件系统错误的引入机会:同时,因为嵌入式操作 系统屏蔽掉地层硬件的很多复杂信息,使得开发者通过操作系统提供的a p i 函数就可以完成大部 分工作,大大地简化了开发过程,提高了系统的稳定性。 综上所述,嵌入式系统的开发可以说是把开发者从反复进行硬件平台的设计过程中解放山来, 从而可以把主要的精力放在编写特定的应用程序上。这个过程类似于在宿主机( 如p c 机) 上的某 个操作系统上开发应用程序。 用户选用a r m 处理器开发嵌入式系统时,选择合适的开发工具可以加快开发进度,节省开发 成本。因此一套岔有编辑软件、编译软件、汇编软件、链接软件、调试软件、工程管理及函数库 的集成开发环境( i d e ) 一般来说是必不可少的,至于嵌入式实时操作系统、评估板等其他开发工 具则可以根据应用软件规模和开发计划选用。 1 3 嵌入式系统的调试 调试是开发过程中必不可少的环节,通用的桌面操作系统与嵌入式系统在调试环境上存在明 显的差别。前者,调试器与被调试的程序往往是运行在同一台机器、相同的操作系统上的两个进 程调试器进程通过操作系统专门提供的调用接口( 旱期u n i x 系统的p t r a c e 调用、如今的进程 文件系统等) 控制、访问被调试进程。 后者( 又称为远程调试) 。为了向系统开发人员提供灵活、方便的调试界面调试器还是运行 于通用桌面操作系统的应用程序被调试的程序则运行于基于特定硬件平台的嵌入式系统( 目标 系统) 。这就带来以下问题: 调试器与被调试程序如何通信被调试程序产生异常如何及时通知调试器,调试器如何控制、 访问被调试程序。调试器如何识别有关被调试程序的多任务信息并控制某一特定任务,调试器如 何处理某些与目标硬件平台相关的信息( 如目标平台的寄存器信息、机器代码的反汇编等) 。 通常有两种远程调试的方案。 1 调试方案l 插桩( s t u b ) 这种方案是在目标操作系统和调试器内分别加入某些功能模块,二者互通信息来进行调试。 这一方案的实质是用软件接管目标系统的全部异常处理( e x c e p t i o nh a n d l e r ) 及部分中断处理。在 其中插入调试端i z l 通信模块与主机的调试器交互。该方案的主要特征有: 调试器与被调试程序的通信 调试器与目标操作系统通过指定通信端口( 串口、网卡、并口) ,遵循远程调试协议( 例 如;a n g e l ) 进行通信。 被调试程序产生异常及时通知调试器 目标操作系统的所有异常处理最终都要转向通信模块,告知调试器当前的异常号:调试 器据此向用户显示被调试程序产生了哪一类异常 调试器控制、访闯被调试程序 调试器的这类请求实际上都将转换成对被调试程序的地址空间或目标平台的菜些寄存器 的访问,目标操作系统接收到这样的请求可以直接处理。对于没有虚拟存储概念的简单 的嵌入式操作系统而言完成这些任务十分容易 调试器识别有关被调试程序的多任务信息并控制某一特定任务 由目标操作系统提供相关接口。目标系统根据调试器发送的关于多任务的请求,调用该 接口提供相应信息或针对某一特定任务进行控制。并返回信息给调试器。 调试器处理与目标硬件平台相关的信息 第2 条所述调试器应能根据异常号识别目标平台产生异常的类型也属于这一范畴。这类 工作完全可以由调试器独立完成。支持多种目标平台正是g n ug d b 的一大特色。 综上所述,这一方案需要目标操作系统提供支持远程调试协议的通信模块( 包括简单的殴备 驱动) 和多任务调试接口,并改写异常处理的有关部分。另外目标操作系统还需要定义一个设置 断点的函数:因为有的硬件平台提供能产生特定调试陷阱异常( d e b u gt r a p ) 的断点指令以支持调 试( 如x 8 6 的i n t3 ) ,而另些机器没有类似的指令,就用任意一条不能被解释执行的非法( 保 留) 指令代替。目标操作系统添加的这些模块统称为”插桩”( 见圈1 2 ) ,驻留于r o m 中! j ! | j 称为 r o mm o n i t o r 。通用擞作系统也有具备这类模块的:编译运行于a l p h a 、s p a r e 或p o w e r p c 平台的 l i n u x 内核时若将k g d b 开关打开,就相当于加入了插桩。 图1 2 ”插桩”示意图 运行予目标操作系统的被调试的应用程序要在入口处调用这个设置断点的函数以产生异常, 异常处理程序调用调试端口通信模块,等待主机( h o s t ) 上的调试器发送信息。双方建立连接后调 试器便等待用户发出调试命令。目标系统等待调试器根据用户命令生成的指令。如图i - 3 所示: 目标操作系坑奶船化i 至应用程芹 口 山 主两触发异常 七 异常处理程序祷人l 调试谴口通伯 目标平台 图1 - 3 主机与目标平台调试示意图 这一方案豹实质是用软件接管目标系统的全部异常处理( e x c e p t i o nh a n d l e r ) 及部分中断处理, 在其中插入调试端口通信模块,与主机的调试器交互。它只能在目标操作系统初始化,特别是调 试通信端口初始化完成后才起作用,所以一般只用于调试运行于目标操作系统之上的应用程序, 而不宜用来调试目标操作系统,特别是无法调试目标操作系统的启动过程。而且由于它必然要占 用目标平台的某个通信端口,该端口的通信程序就无法调试了。最关键的是它必须改动目标操作 系统,这一改动即使没有对操作系统在调试过程中的表现造成不利影响,至少也会导致目标系统 多了一个不用于正式发布的调试版。 2 调试方案2 片上调试( o nc h i pd e b u g g i n g ) 片上调试是在处理器内部嵌入额外的控镥4 模块,当满足了一定的触发条件时进入某种特殊状 态- 在该状态下被调试程序停止运行,主机的调试器可以通过处理器外部特设的通信接口访问 各种资源( 寄存器、存储器等) 并执行指令。为了实现主机通信端口与目标板调试通信接口各引 脚信号的匹配,二者往往通过一块简单的信号转换电路板连接( 如图i - 4 所示) 。 蓬 内嵌的控制模块以基于微码的监控器( m i c r o c o d em o n i t o r ) 或纯硬件资源的形式存在,包括 一些提供给用户的接口( 如断点寄存器等) 。具体产品有m o t o r o l ac p u l 6 、c p u 3 2 、c o l d f i r e 系列 的b d m ( b a c k g r o u n dd e b u gm o d e ) ,m o t o r o l ap o w e r p c5 x x 、8 x x 系列的e p b d m ( e m b e d d e d p o w e r p c b a c k g r o u n d d e b u g m o d e ) ,i b m 、t i 的j t a g ( j o i n t t e s t a c t i o n6 t o 岬,i e e e 标准) 等。 图l - 4 片上调试示意图 下面以m p c 8 6 0 的e p b d m 为例介绍片上调试方式。 e p b d m 的运作相当于用处理器内嵌的调试模块接管中断及异常处理。用户通过设置调试许可 寄存器( d e b u g e n a b l er e g i s t e r ) 来指定哪些中断或异常发生后处理器直接进入调试状态而不是操 作系统的处理程序。进入调试状态后内嵌调试模块向外部调试通信接口发出信号,通知一直在 通信接口监听的主机调试器,然后调试器便可通过调试模块使处理器执行任意系统指令( 相当于 特权态) 。所有指令均通过调试模块获取,所有m a d s t o r e 均直接访问内存,缓存( c a c h e ) 及存储 管理单元( m m u ) 均不可用;数据寄存器被映射为一个特殊寄存器d p d r ,通过m t s p r 和m f s p r 指令访问。调试器向处理器送r l i ( r e t u r nf r o mi n t e r r u p t ) 指令便结束调试状态,被调试程序继续运行。 与插桩方式的缺点相对应,o c d 不占用目标平台的通信端口,无需修改目标操作系统,能调 试目标操作系统的启动过程,大大方便了系统开发人员。随之丽来的缺点是软件工作量的增加: 调试器端除了需补充对目标操作系统多任务的识别、控制等模块,还要针对使用同一芯片的不同 开发板编写各类r o m 、r a m 的初始化程序。 基于a r m 的嵌入式系统的调试方式与传统微处理器的调试方式有所不同,传统微处理器的调 试采用在线仿真i c e ( i n - c i r c u i te m u l a t o o 适用于引脚较少功能较弱的微处理器调试,而a r m 的 引脚较多,微处理器的功能很强大,如果用i c e 调试调试,将会非常困难。所以基于a r m 的嵌 入式系统的调试方式采用远程片上调试方式。 使用集成开发环境开发基于a r m 的应用软件,包括编辑、编译、汇编、链接等工作全部在 p c 机上即可完成调试工作则需要配合其他的模块或产品方可完成。目前常见的调试方法有以下 几种: l 、指令集模拟器 部分集成开发环境提供了指令集模拟器,可方便用户在p c 机上完成一部分简单的调试工 作,但是由于指令集模拟器与真实的硬件环境相差很大,因此即使用户使用指令集模拟器调试 通过的程序也有可能无法在真实的硬件环境下运行,用户最终必须在硬件平台上完成整个应用 的开发。 2 、驻留监控软件 驻留监控软件( r e s i d e n tm o n i t o r s ) 是一段运行在目标板上的程序,集成开发环境中的调 试软件通过以太网口、并行端口、串行端口等通讯端口与驻留监控软件进行交互,由调试软件 发布命令通知驻留监控软件控制程序的执行、读写存储器、读写寄存器、设置断点等。 7 驻留监控软件是一种比较低廉有效的调试方式,不需要任何其他的硬件调试和仿真设备。 a r m 公司的a n g e l 就是该类软件,大部分嵌入式实时操作系统也是采_ j 该类软件进行调试, 不同的是在嵌入式实时操作系统中,驻留监控软件是作为操作系统的一个任务存在的。 驻留监控软件的不便之处在于它对硬件设备的要求比较高,一般在硬件稳定之后才能进行 应用软件的开发,同时它占用目标板上的一部分资源,而且不能对程序的全速运行进行完全仿 真,所以对一些要求严格的情况不是很适合。 3 、j t a g 仿真器 j t a g 仿真器也称为j t a g 调试器,是通过a r m 芯片的j t a g 边界扫描口进行调试的设 备。j t a g 仿真器比较便宜,连接比较方便,通过现有的j t a g 边界扫描口与a r mc p u 核通 信,属于完全非插入式( 即不使用片上资源) 调试,它无需目标存储器。不占用目标系统的任何 端口,而这些是驻留监控软件所必需的。另外,由于j t a g 调试的目标程序是在目标板上执行, 仿真更接近于目标硬件,因此,许多接口问题,如高频操作限制、a c 和d c 参数不匹配,电 线长度的限制等被最小化了。使用集成开发环境配合j t a g 仿真器进行开发是目前采用最多的 一种调试方式。 4 、在线仿真器 在线仿真器使用仿真头完全取代目标板上的c p u ,可以完全仿真a r m 芯片的行为,提供 更加深入的调试功能。但这类仿真器为了能够全速仿真时钟速度高于1 0 0 m h z 的处理器,通常 必绠采用极其复杂的设计和工艺因而其价格比较昂贵。在线仿真器通常用在a r m 的硬件开 发中,在软件的开发中较少使用,其价格高昂也是在线仿真器难以普及的因素。 所以,基于a r m 的嵌入式系统的调试方式采用远程j t a g 调试方式。 1 4 嵌入式系统调试技术的发展趋势 传统的嵌入式系统调试方法可概括为如下过程:设断点程序暂停观察程序状态 继续运行。被调试的如果是实时系统,即使调试器支持批处理命令避免了用户输入命令、观察结 果带来的延迟。它与目标系统之间的通信也完全可能错过对目标平台外设信号的响应。于是针 对某些调试器( 如g d b ) 提供的监视点( t r a c e p o i n t ) 这一特殊调试手段目标方的插桩在原有的 基础上被改进,称为代理( a g e n t ) 。调试时用户首先在调试器设鬣监视点,以源代码表达式的形式 指定感兴趣的对象名。为了减少代理解析表达式的工作,调试器将表达式转换为简单的字节码, 传送至代理程序运行后命中监视点、唤醒代理,代理根据字节码记录用户所需数据存入特定缓 冲区( 不仅仅是表达式的最终结果,还有中间结果) ,令程序继续运行;这一步骤无需与调试器通 信。当调试器再度得到控制时,就可以发出命令,向代理查询历次监视记录。较之于插桩,代理 增加了对接受到的字节码的分析模块,相应的目标代码体积只有大约3 k 字节;当然,监视记录缓 冲区也要占用目标平台的存储空间,不过缓冲区的大小可在代理生成时由用户决定。总之,这一 改进以有限的目标系统资源为代价,为实时监视提供了一个低成本的可行方案。 调试并不仅仅意味着设断点程序暂停观察程序状态继续这一过程,往往还需要 p r o f i l i n g 、跟踪( t r a c e ) 等多种手段,而现代微处理器的技术进步却为这些调试手段的实行带来了 困难。以跟踪为例,其目的无非是记录真实的程序运行流;可现代处理器指令缓存都集成于芯片 内( r i s c 处理器尤为如此) ,运行指令时”取指”这一操作大多在芯片内部针对指令缓存进行,芯 片外部总线上只能观察到多条指令的预取( p r e f e t c h ) ,预取的指令并不一定执行( 由于跳转等原因) : 另外,指令往往经过动态调度后在流水线中乱序执行,如何再现其原始顺序也是个问题。 解决方案大致有以下三种: 1 有的处理器除了正常运行外,还能以串行方式运行,所有的取指周期都可呈现于片外总 8 线( 相当于禁用缓存与流水线) 。这样一来,跟踪容易多了,处理器性能也大大降低了,根本不 适用于实时要求严格的系统。 2 编译器自动在指定的分支及函数出入口插入对特定内存区域的写指令( 与g p r o f 等p r o f i l i n g 工具采用的手段类似) ,它们都是不通过缓存而直接向内存写的,这就能反映于芯片外总线从而被 外接的逻辑分析仪记录,最终由主机端的调试工具分析并结合符号表重构程序流。这种方法虽被 广泛使用,但毕竟是干扰式的( i n t r u s i v e ) ,对系统性能也有影响。 3 像前文所述的片上调试那样,也有处理器在片内附加了跟踪电路,收集程序流运行时的” 不连贯”( d i s c o n t i n u i t i e s ) 信息( 分支和异常处理的跳转目的及源地址等) ,压缩后送至特定端口, 再由逻辑分析仪捕获送至主机端调试工具重构程序流。该方案对系统性能影响最小。 总之,处理器厂家提供集成于片内的调试电路为高档嵌入式系统开发提供各种非干扰式的调试 手段早已是大势所趋。 9 第二章j t a g 边界扫描接口 2 1j t a g 简介 调试内核是在目标机的固件中实现的。因此,为了在新硬件进行调试,调试内核需修改处理 器与内存的接口,随着时钟提速,这种接口的设计要求越来越高:特别当调试内核不能运行时, 开发人员就无法对目标机进行调试。 处理器设计者把调试内核用芯片电路来实现,它不但能避免上述问题,还能调试处理器的流 水线与c a c h e 的操作。随着嵌入式处理器结构越来越复杂,速度越来越快,片上调试的支持就显 得越来越重要。从而也促使产生了新的标准调试接口:背景调试模式b d m ( b a c k g r o u n dd e b u g m o d e ) 、j t a g 和n e x u s ( i e e e - 5 0 0 1i s t o ) 。 b d m 是m o t o r o l a 公司的专用调试接口,是第一个把调试功能的特殊硬件嵌入至处理器核内。 只需把处理器的几根调试引脚连接到专用连接器与调试工具上就可方便调试。这样的连接器叫做 n - w i r e 或w i g g l e r ,主要用来实现调试模块与c p u 之间的时序和通讯协议。 n e x u s 是嵌入式系统在汽车电子应用的需求所提出的标准接口,由m o t o r o l a 、i n f i n e o n 、h p 、 b o s c h 等公司在1 9 9 8 年联合提出的通用嵌入式处理器调试标准( g e p d i s ) 。这个团体的最初工作 名称是n e x u s 协会,目前以5 0 0 1 论坛著称它已经与i e e e i s t o 形成联盟。故该标准被命名为 i s t o 一5 0 0 1 通用嵌入式处理器调试标准,并在2 0 0 0 年得到批准。该标准引入了处理器调试的新概 念,如可扩性、兼容性与私有消息等( n e x u s 也使用了j t a g 作为最低兼容级别的标准协议) 。n e x u s 可用v e r i l o g 或v h d l 来编写,该标准正在不断发展之中,可参阅 h t t p :w w w i e e e - i s o o r g n e x u s 5 0 0 1 s t a n d a r d h t m l 。 j t a g 协议最初来自于p c 板测试,目前嵌入式处理器广泛使用了j t a g ,这是因为在印制电 路板p c b 上使用的j t a g 同样也能来调试处理器核内的寄存器、内存及i o 等。 j t a o ( j o i n t t e s t a c t i o ng r o u p ) 为联合测试行为组织的缩写。由于集成电路的集成度不断提高, 芯片的引脚不断增加;此外为了缩小体积常常采用表面贴装技术。因此,无法用常规的在线仿 真的方式j t a g 为此制定了边界扫描标准,只需5 根引脚就可以实现在线仿真的功能。该标准已 被批准为i e e e - 1 1 4 9 1 标准。它不但能测试各种集成电路芯片也能测试芯片内各类宏单元,还能 测试相应的印刷电路板a r m 架构处理器内含嵌入式在线仿真( e m b e d d e di c e ) 宏单元为j t a g 调试提供相应的接口。 同时为了能达到实时( r e a l - t i m e ) 跟踪调试的功能,a r m 架构处理器还内含嵌入式跟踪宏单 元,通过逻辑分析仪来实现实时跟踪调试的功能。a r m 架构的e m b e d d e di c e r t 就是指嵌入式在 线仿真及实时跟踪调试。 2 2j t a g 边界扫描原理 1 j t a g 调试接口的结构 j t a g 调试接口的结构如图2 - 1 所示。它由测试访问端口t a p ( t e s ta c e e s sp o r t ) 控制器、 旁路( b y p a s s ) 寄存器、指令寄存器和数据寄存器,以及与j t a g 接口兼容的a r m 架构处理器;处 理器的每个引脚都有一个移位寄存单元,称为边界扫描单元b s c ( b o u n d a r ys c a nc e l l ) ,它将j t a g 电路与处理器核逻辑电路联系起来,同时,隔离了处理器核逻辑电路与芯片引脚;把所有的边界 扫描单元构成了边界扫描寄存器b s r ,该寄存器电路仅在进行j t a g 测试时有效,在处理器核正常 工作时无效。 0 图2 - 1j t a g 边界扫描接口示意图 2 j 1 a g 边界扫描原理 i e e e 一1 1 4 9 标准,即”s t a n d a r d t e s t a c c e s s p o r t a n d b o u n d a r y - s c a

温馨提示

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

评论

0/150

提交评论