




已阅读5页,还剩72页未读, 继续免费阅读
(计算机应用技术专业论文)基于操作系统的远程调试器的设计与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于操作系统的远程调试器的设计与实现基于操作系统的远程调试器的设计与实现中文摘要嵌入式软件的特殊性使得其开发过程比传统的通用计算机软件要复杂得多,而调试作为嵌入式系统开发中的关键环节,扮演着十分重要的角色。目前,国内在嵌入式调试技术方面所做的研究工作较少,一般嵌入式开发调试工具都使用国外产品,因此,深入研究嵌入式调试技术并研发自己的开发调试工具具有重要意义。本文针对国内外市场发展迅速、前景较好的h c s l 2 微处理器,使用基于操作系统的远程调试代理方式,设计并实现了一套基于p c o s i i 的嵌入式调试系统。本文首先简要介绍了嵌入式系统的概念,特点和国内外流行调试工具,接着,在对现有的远程调试技术和调试环境的设计方法进行分析的基础上,给出了本文调试系统的总体设计。在此基础上,作者结合g c o s i i 的特点,设计并实现了t t c o s i i 下的目标机调试代理。调试代理作为一个独立的应用进程运行于操作系统中,在对某个应用程序进行调试的同时也不会影响操作系统下其他任务的运行,从而实现了任务级的调试。接着,按模块讨论了宿主机端集成调试软件的实现,包括总体设计,通信的设计,写入功能的实现,以及具体调试功能的实现。最后,给出了基于操作系统的开发环境搭建过程以及该环境下应用程序的开发实例。关键词:嵌入式,远程调试,t t c o s i i ,调试代理作者:龚兰兰指导老师:钱培德a b s t r a c td e s i g na n di m p l e m e n t a t i o no f r e m o t ed e b u g g e ru n d e ro sd e s i g na n di m p l e m e n t a t i o no fr e m o t ed e b u g g e ru n d e ro sa b s t r a c tt h ed e v e l o p m e n to fe m b e d d e ds o f t w a r ei sm u c hm o r ec o m p l i c a t e dt h a nt h et r a d i t i o n a lg e n e r a ls o f t w a r e sa sar e s u l to fi t ss p e c i a l i t y a sac r i t i c a lp r o c e s si nt h ee m b e d d e dd e v e l o p m e n t , d e b u g g i n gp l a y sav e r yi m p o r t a n tr o l e c u r r e n t l y , t h e r e sl i t t l ed o m e s t i cr e s e a r c hi nt h ea r e ao fe m b e d d e dd e b u g g i n g t h ed e v e l o p i n ga n dd e b u g g i n gt o o l sa r ep r o v i d e db yf o r e i g nc o m p a n i e sg e n e r a l l ys oi tm a k e sg r e a ts e n s et os t u d yt h ee m b e d d e dd e b u g g i n gt e c h n o l o g ya n dd e v e l o pt h et o o l so fo u r s e l v e s a i m i n ga th c s12c p u sw h i c ha r er a p i d l ye n l a r g e di nt h en a t i o n a lm a r k e ta n dh a sag o o dp r o s p e c t , w ed e s i g na n di m p l e m e n ta ne m b e d d e dd e b u g g i n gs y s t e mb a s e do n1 t c o s - i ir t o s ,u s i n gt h er e m o t ed e b u g g i n ga g e n tm e t h o d f i r s t l y , t h ep a p e rg i v e sag e n e r a li n t r o d u c t i o na b o u tt h ec o n c e p t i o na n dt h ef e a t u r e so fe m b e d d e ds y s t e m , a n dt h ed e b u g g i n gt o o l sp o p u l a ra th o m ea n da b r o a d s e c o n d l y ,b a s e do nt h ea n a l y s i so ft h ed e b u g g i n gm e t h o d sa n dt h ed e s i g no fad e b u g g i n gs y s t e m ,w ep r e s e n tt h ew h o l es t r u c t u r eo fo u rr e m o t ed e b u g g i n gs y s t e m t h e n , t h ep a p e rg i v e sad e s i g na n di m p l e m e n t a t i o no ft h ed e b u g g i n ga g e n tu n d e r t c o s - i ii nt h et a r g e t a sa na p p l i c a t i o n ,t h ed e b u g g i n ga g e n tr u n si n d e p e n d e n t l yi no s w h e nt h ea g e n ti sd e b u g g i n ga na p p l i c a t i o n ,o t h e ra p p l i c a t i o n si nt h eo sw i l ln o tb ei m p a c t e d ,j u s tr u n sa sn o r m a l ,w h i c hr e a l i z e st h et a s k l e v e ld e b u g g i n g a n dt h e n , t h ep a p e rd i s c u s s e st h er e a l i z a t i o no fi n t e g r a t e dd e b u g g i n gs o f t w a r eo nh o s tb ym o d u l e s ,i n c l u d i n gt h eg e n e r a li n f r u s t r u c t u r e ,c o m m u n i c a t i o nr e a l i z a t i o n ,d o w n l o a d i n gc o d e sa n dd e b u g g i n gc o d e s f i n a l l y , t h ep a p e rd e s c r i b e st h ep r o c e s so fb u i l i n ga ni d eb a s e do nt h eo p e r a t i n gs y s t e ma n dg i v et h ee x m p l e sa p p l i c a t i o n sd e v e l o p m e n tu n d e rt h i se n v i r o n m e n t k e y w o r d s :e m b e d d e d ,r e m o t ed e b u g g i n g ,p c o s i i ,d e b u g g i n ga g e n tw r i t t e nb yg o n gl a n l a ns u p e r v i s e db yq i a np e i d e苏州大学学位论文独创性声明及使用授权声明学位论文独创性声明本人郑重声明:所提交的学位论文是本人在导师的指导下,独立进行研究工作所取得的成果。除文中已经注明引用的内容外,本论文不含其他个人或集体已经发表或撰写过的研究成果,也不含为获得苏州大学或其它教育机构的学位证书而使用过的材料。对本文的研究作出重要贡献的个人和集体,均已在文中以明确方式标明。本人承担本声明的法律责任。研究生签名:叁兰羔日期:上型扛厶学位论文使用授权声明苏州大学、中国科学技术信息研究所、国家图书馆、清华大学论文合作部、中国社科院文献信息情报中心有权保留本人所送交学位论文的复印件和电子文档,可以采用影印、缩印或其他复制手段保存论文。本人电子文档的内容和纸质论文的内容相一致。除在保密期内的保密论文外,允许论文被查阅和借阅,可以公布( 包括刊登) 论文的全部或部分内容。论文的公布( 包括刊登) 授权苏州大学学位办办理。研究生签名:日期:导师签名:釉期:a 望弓乙号基于操作系统的远程调试器的设计与实现第一章绪论1 1 嵌入式系统概述1 1 1 嵌入式系统概念第一章绪论嵌入式系统被定义为以应用为中心,以计算机技术为基础,软硬件可裁剪,适用于应用系统,对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统【1 】o嵌入式系统包括硬件和软件两部分,硬件包括处理器微处理器,存储器及外设器件和i o 端口,图形控制器等。软件部分包括操作系统软件和应用程序软件。应用程序控制着系统的运作和行为,而操作系统控制着应用程序与硬件的交互以及对应用程序的管理【2 1 。嵌入式计算机在应用数量上远超通用计算机,事实上,每台通用计算机的外部设备中就包含了多个嵌入式微处理器,键盘、鼠标、硬盘、显卡、网卡、声卡等均由嵌入式处理器控制。在制造工业,过程控制,通讯,仪器,仪表,汽车,船舶,航空,航天,消费类电子产品等领域随处可见嵌入式计算机的身影。1 1 2 嵌入式系统特点与通用计算机不同,嵌入式系统的硬件和软件都必须高效设计,量体裁衣,去除冗余,与具体应用紧密结合在一起。因此,相对于通用计算机,嵌入式系统具备以下特点:面向具体应用,通常具有低功耗,集成度高等特点,有利于嵌入式系统小型化,便于移动。与具体应用有机结合,它的升级换代也是和具体产品同步进行,因此,嵌入式产品一旦进入市场,通常会具有较长的生命周期。软件要求固态化存储,为了提高执行速度和系统可靠性,嵌入式系统软件一般都固化在存储器芯片或单片机本身。第一章绪论基于操作系统的远程调试器的设计与实现软件代码高质量,高可靠性,高实时性。在大多数应用中,存储空间有限,要求非常高的程序编写质量和编译工具质量,以减少程序二进制代码长度。同时,嵌入式系统任务执行大多存在实时性要求,要求程序编写代码提高执行速度。1 2 远程调试调试是程序开发流程中必不可少的环节,其主要作用就是帮助研发人员跟踪代码的执行,发现并纠正运行过程中遇到的潜在错误与漏洞,有效的提高开发效率。嵌入式系统自身的特点决定了其开发调试过程与通用计算机系统截然不同,需要涉及宿主机和目标机两方面的内容,即用户在宿主机端调试运行于目标机端的代码,这种调试称为远程调试【3 1 。一个远程调试系统通常由宿主机上的本地调试器、目标机上的调试服务器、远程调试协议三部分组成【4 】。远程调试器通过接管被调试程序的中断或者异常处理过程,使得当中断或者异常发生时,远程调试器将获得整个系统的控制权,进而获取当前的调试信息( 如寄存器值、地址空间、程序运行状态等信息) ,并通过底层通信功能与用户进行调试命令和调试信息的交互。另外,对于带有操作系统的应用程序的调试,还需要了解系统级调试和任务级调试【5 】嘲这两个概念。系统级调试是指将整个目标系统作为被调试对象的调试。在系统级调试下,当发生一个调试事件( 调试异常或收到主机端调试命令) 时,整个目标系统被挂起,处于完全静止的状态,系统调试代理完全占有c p u ,直到调试人员发出恢复程序执行的命令。在系统级调试方式下,调试代理不能感知操作系统的存在。系统级调试的主要优点是:能够调试o s 一级的内容,包括o s 本身、i s r ,d r i v e r s等等,也能够对任务进行调试。系统级调试的主要缺点是:多任务环境下调试一个简单的任务,整个t a r g e t 都将被一个调试者独占,调试的代价会很高。任务级调试是一种能够对被调试任务进行调试,而不影响其它任务运行的调试技术。任务级调试是相对于系统级调试而言的,当开发应用程序时( 这时候假设基本系统是正确的,不需要调试) ,则只需将被调试的应用程序停下来,而不用将整个系统停止下来,这样,被调试的应用程序停止了,而没有调试的应用程序仍然可以继续运行。这种调试方式的一个重要特点是,一个任务因触发调试事件而被停止时,2基于操作系统的远程调试器的设计与实现第一章绪论其他任务仍然能够继续运行。任务级调试的优点是能够单独对系统中的单个或者一组任务进行调试,不影响o s 和其他正在运行的任务。任务级调试的缺点是对o s 一级的内容无法进行调试。1 3 现有的调试工具随着网络和通信技术的快速发展,嵌入式系统软、硬件技术有了很大的提升,使得嵌入式系统软件的规模已经不再局限于原先的裸机程序和简单应用程序。目前形成的嵌入式应用模式带有明显的计算机工程的特点,即基于嵌入式系统软硬件平台,以网络、通信为主的嵌入式非底层应用。所以,构建功能完善的嵌入式开发调试环境已经逐渐成为嵌入式领域的一个新兴课题。国外许多厂商都推出了自己的集成开发环境,其中包括支持多种目标机的调试器,如w i n d r i v e r 公司的调试器s i n g l e s t e p ,e n e a 公司的调试器o s ei l l u m i n a t o r ,a c c e l e r a t e dt e c h n o l o g y 公司的在线调试器x r a y ,a r m 公司的r e a l v i e w 和m e t r o w e r k s 的c o d e w a r r i o r 等。另外还有开放源代码组织f s f 开发的g n u 调试器g d b 7 1 。国内主要使用国外引进的集成开发环境,自主研发的成果较少,与国际先进水平相比尚存一定差距。也有一些厂商开发出了适合特定嵌入式操作系统的调试器,如科银京成公司的l a m b d a g d b 等。随着嵌入式软件的日益复杂,应用程序也由无操作系统概念的简单程序发展到在操作系统支持下运行的多任务程序,调试应用程序的过程中,用户不光希望知道寄存器、内存等基本信息,还希望调试环境能针对被调试程序中的任务提供特殊的任务级调试功能,比如绑定特定任务调试,对指定任务进行挂起、恢复操作等 6 1 。在嵌入式开发工具领域,w l n d r x i v e r 公司的调试环境t o r n a d o 和操作系统v x w o r k s 在技术上处于领先地位,提供了绑定单个任务调试的功能,并借此占据了大部分市场【5 1 。t o r n a d o 和c o d e w a r r i o r 是目前市场上影响力较大的嵌入式集成开发环境,其调试功能完善、性能稳定,但都属于商业级软件,价格昂贵,操作界面国外化,不具通用性【引。国外研发嵌入式集成开发环境的另一重要分支是g n u 组织。他们通过i n t e r n e t3第一章绪论基于操作系统的远程调试器的设计与实现向全世界免费提供各种相关的研究成果甚至源代码。现在已有很多基于l i n u x 平台的嵌入式集成开发环境和工具。虽然这当中有一部分是免费和开源的,其调试功能也很强大,但是由于基于l i n u x 平台,普通用户和开发人员难以上手,这无形中提高了入门门槛,限制了其在国内的推广和应用。作为国内较为成熟的嵌入式开发工具,l a m b d a o d b 调试环境在原来的( l a m b d a g d b l 3 ) 只支持系统调试和静态加载的基础上实现了任务调试和动态加载功能( l a r n b d a g d b 2 0 、) 。另外也有一些其它的调试工具实现了对操作系统下的应用程序的调试,但是它们一般都是借助g d b 的调试功能,在g d b 的基础上进行相应的定制,独立研发自己的调试器的例子还比较少,而且它们大多只适用于目标机上是l i n u x 系统或者是自己开发的某种特殊的嵌入式操作系统,适用范围较小。1 4 课题实现的目标和意义调试器是软件开发工具中不可或缺的一部分。随着计算机技术和软件技术的发展,嵌入式设备日趋复杂,越来越多的嵌入式软件需要有操作系统的支持。从而,嵌入式操作系统下的调试也越来越成为必要。目前现有的调试器大多数都是针对无操作系统支持的应用程序的开发,而且都需要特定的硬件调试接口,如b d m ,j t a g 等。本文实现的目标是,按照调试代理的方式,实现在嵌入式实时操作系统 t c o s - i i下的无硬件连接器( 仅需要串口通信) 的远程调试,通过软件的形式获取调试信息并将其返回给宿主机。研究基于操作系统的嵌入式调试系统具有如下的使用价值和现实意义:针对越来越多的嵌入式软件对操作系统的需求,本文设计的基于uc o s i i实时操作系统的远程调试器,不仅能够实现对操作系统下的应用程序的任务级调试,同时也为需要l ac o s i i 操作系统支持,尤其是需要具备实时性服务的嵌入式软件的开发提供了有力的支持。本文设计的调试系统,宿主机和目标机的通信只需要普通的串口即可,无需要额外的硬件连接器,从而降低了开发和调试的硬件需求,减少了成本,方便了开发人员的使用。为研发类似的嵌入式产品提供一定的借鉴和经验。本文详细介绍了整个系统4基于操作系统的远程调试器的设计与实现第一章绪论的开发流程及技术细节。文中给出了人机交互调试界面的开发,目标机调试代理程序的编写以及远程调试协议的实现。1 5 本文工作内容和结构安排1 5 1 工作内容f r e e s c a l eh c s l 2 系列m c u 是f r e e s c a l e 公司最近推出的新型的c p u l 2 系列微控制器,性价比很高,是c p u l 2 系列微控制器的发展趋势。而a c o s i i 作为体积小、可移植、可裁减的实时操作系统内核也在嵌入式领域得以广泛应用。因此,将t t c o s i i 在h c s l 2 微处理器上的应用将同时为嵌入式系统提供高性能的软、硬件环境。事实上,i 上c o s i i 和h c s l 2 的软硬件结合已经在工业控制领域得到应用( 如用于汽车控制【1 0 1 ) ,并取得了良好的效果。本文以“基于1 6 3 2 位m c u 的嵌入式i d e 的开发项目为背景,以h c s l 2 系列m c u 之一的m c 9 s 1 2 u f 3 2 作为目标平台,选用t t c o s i i 实时操作系统作为目标系统,以调试代理方式实现基于操作系统的远程调试功能。主要工作内容包括:( 1 ) 对相关技术进行分析,对r t c o s i i 实时操作系统到h c s l 2 处理器的移植;设计了基于i t c o s i i 的远程调试系统。( 2 ) 设计并实现了目标机端基于操作系统下的调试代理。主要包括:串行通信功能的实现;中断模块;程序的擦除、写入;控制被调试进程的运行,如设置断点,单步继续执行等;进程的访问,即被调试进程的内存寄存器的读写,进程状态的查询等。( 3 ) 开发了宿主机端的用户调试界面,使得用户通过串口可以实现应用程序到目标机的下载,以及与目标机调试代理进行调试数据的交互。( 4 ) 构建了一种带有操作系统的用户开发环境,使得用户可以自由地对操作系统根据需要进行适当的修改,并可以开发多任务应用程序。1 5 2 论文结构第一章首先概述了嵌入式系统的相关知识,其次简单介绍了远程调试的基本概5第一章绪论基于操作系统的远程调试器的设计与实现念。在讨论了当前国内外嵌入式开发调试工具发展状况的基础上,提出了本文的研究目标和实现意义。第二章在分析了相关技术的基础上,给出了本文调试系统的总体设计。在比较了几种常见的操作系统的基础上,做出了以t t c o s i i 作为目标操作系统的选择;接着,介绍了现有的远程调试技术以及调试环境的设计方法,最后给出了本文调试系统的总体设计方案、技术要点和目标平台的介绍。第三章给出了远程调试代理的总体设计,并按模块阐述了调试代理的实现思路与方法。其中,首先分析了一般调试代理的工作原理,给出了调试代理的总体设计,随后详细介绍了每个模块的具体实现方法,最后给出了调试实例。第四章阐述了宿主机端调试平台的具体实现。内容包括总体设计,通信的设计,写入功能的实现,以及具体调试功能的实现。第五章给出了基于操作系统的开发环境的搭建过程以及该环境下应用程序的开发。第六章对全文进行了总结,就进一步研究的问题进行讨论。6基于操作系统的远程调试器的设计与实现第二章总体设计方案及关技术第二章总体设计方案及相关技术在基于操作系统的远程调试器的设计中,作者选用了i - t c o s - i i 实时操作系统作为目标操作系统,在相应的硬件支持下实现了远程调试的功能。本章给出了对相关技术的介绍,以及本文调试系统的总体设计。2 1 目标操作系统的选择2 1 1 嵌入式操作系统嵌入式操作系统指的是运行在各种嵌入式处理器之上,可为各种嵌入式应用程序提供基本的操作系统功能,具有统一的系统调用接口的操作系统【1 1 1 。由于嵌入式应用的各种功能需求有着巨大的差异,但嵌入式的系统资源有限,再加上体积、功耗、效率上的限制,嵌入式操作系统一般都要求具有功能可裁减的特性。如果操作系统能使计算机及时响应外部事件的请求,并能及时控制所有实时设备与实时任务的协调运行,且能在一个规定的时间内完成对事件的处理,那么这种操作系统就称作实时操作系统( r e a lt i m eo p e r a t i o ns y s t e m ,r t o s ) 0 2 1 。由于嵌入式系统主要是对设备和装置进行控制的,在这些应用场合中,系统是否能及时快速地响应外部事件,常常是对系统的第一要求,因此嵌入式系统使用的操作系统大多是实时操作系统( r t o s ) 。2 1 2 现有的嵌入式实时操作系统目前比较常见的实时操作系统( r t o s ) 有:w i n d r i v e r 公司的v x w o r k s 、p s o s ,微软的w i n d o w sc e ,q n x 公司的q n x ,但是使用这些商用r t o s 是需要支付高昂的费用,针对这种情况,一些组织和个人也开发了一些免费的、源码开放的r t o s ,其中比较有名的是g c l i n u x 、r t l i n u x 和g c o s i i 。下面简单介绍几种具有代表性的r t o s 。1 w i n d o w sc e7第二章总体设计方案及相关技术基于操作系统的远程调试器的设计与实现w i n d o w sc e 与w i n d o w s 系列有较好的兼容性,是一种主要针对小容量、移动式、智能化设备的实时嵌入式操作系统,为建立设备的动态应用程序和服务,提供了功能丰富的操作平台。它能在多种处理器体系结构上运行,而通常适用于那些对内存占用空间具有一定限制的设备。从技术角度上讲,w i n d o w sc e 作为嵌入式操作系统有很多的缺陷:没有开放源代码,使应用开发人员很难实现产品的定制;在效率、功耗方面的表现并不出色;和w i n d o w s 一样占用过的系统内存,应用程序庞大;使用厂商需要支付版权许可费。2 嵌入式l i n u x这是嵌入式操作系统的一个新成员,其最大的特点是源代码公开并且遵循g p l协议。由于其源代码的公开,人们可以任意修改嵌入式l i n u x 源码以满足自己的应用。嵌入式l i n u x 的特点具体如下:有大量的应用软件和开发工具可用;优秀的网络功能;有庞大的开发人员群体;稳定,内核精悍,运行所需资源少,十分适合嵌入式应用;和普通l i n u x 一样,支持的硬件数量庞大。运行嵌入式l i n u x 的一个缺点是在嵌入式l i n u x 体系上需要添加实时软件模块。由于这些实时软件模块是在内核空间运行的,因此错误的代码可能会破坏操作系统从而影响整个系统的可靠性,这对于实时应用将是一个非常严重的弱点。3 i _ t c o s i ig c o s i i 是著名的源代码公开的实时内核,是专为嵌入式应用设计的,可用于8 位,1 6 位,3 2 位单片机和数字信号处理器( d s p ) 。它是在原版本o c o s 的基础上做了重大改进与升级,经过近十年的使用和实践,已经有了许多成功应用该实时内核的实例。由于g c o s i i 仅是一个实时内核,这就意味着它不像其他实时操作系统那样提供给用户的只是一些a p i 函数接口,还有很多工作需要用户自己去完成。表2 1 【1 2 】给出了三种r t o s 基本内容的比较情况。由比较可以看出,i _ t c o s i i不仅具备了r t o s 的功能,互操作性强,用户定制开发灵活,而且占用体积非常小。8基于操作系统的远程调试器的设计与实现第二章总体设计方案及关技术表2 1 三种r t o s 基本内容的比较r t o s 名称嵌入式l i n u xw i n d o w sc ei t c o s - i i核心一般占5 0 0k b 的内核从几十k b 到r o m 和2 5 0 k b 的5 0 0 k b ,整个嵌入式r a m 。整个w i n d o w s大小环境最小才l o o k bc e 包括硬件抽象层,只需要几k b 的r a m 和r o m左右,并且以后还k e r n e l ,g d i ,u s e r 、将越来越小文件系统和数据库,大约共1 5 m b用户可以方便的开发定制,可以自由用户开发定制不方便,用户的开发定制更灵活,不受任可开发定制受m i c r o s o f t 公司限制卸载用户模块,不何限制受限较多比较强,w w d m v sc e互操作性互操作很强可通过o e m 的许可协互操作很强议使用于其它设备不仅适应于x 8 6 芯片,并且可以支持通用性3 0 多种c p u 和多种适用于多种c p u 和硬i _ t c o s i l 已经移植到了几乎所有硬件平台,开发和件平台知名的c p u 上使用都很容易实时性很好比较好很好由于l i n u x 内核结构应用领域较广,由于g c o s i i 是一个非常容易学及功能上的优势,w i n d o w sc e 是为新一习、结构简单、功能完备和实时嵌入式l i n u x 应用领代非传统的p c 设备而性很强的r t d s ,它不仅适合于广适用领域大嵌入式系统开发人员的学习,域非常广泛,特别设计的,这些设备包括还很适合开发那些对系统要求不适用于进行信息家掌上电脑,手持电脑是很苛刻的,而r a m 和r o m 有限电的开发以及车载电脑等的小型嵌入式系统设备2 1 3l ic o s i i 简介i t c o s i i 是j e a nj l a b r o s s e 在1 9 9 0 年前后开发的一个实时操作系统内核【1 3 1 。g c o s i i 的目标是实现一个基于优先级调度的抢占式的实时内核,并在这个内核之上提供最基本的系统服务,例如信号量、邮箱、消息队列、内存管理、中断管理等。g c o s i i 是一个完整的、可移植、可固化、可裁剪的占先式实时多任务内核。i 且c o s i i 绝大部分的代码是用a n s i 的c 语言编写的,包含一小部分汇编代码,使之可供不同架构的微处理器使用。它具有执行效率高,占用空间小,实时性能优良,可扩展性强的特点。应用系统在实时内核的统一管理下协调工作,能够高效地实现任务切换、任务调度、任务间通信、同步、互斥、实时时钟管理、中断管理等功能。i 工c o s i i 已经在世界范围内得到广泛应用,包括很多领域,如手机、路由器、9第二章总体设计方案及相关技术基于操作系统的远程调试器的设计与实现集线器、不间断电源、飞行器、医疗设备及工业控制上。p c o s i i 可以管理和调度约6 4 个任务,由于i i c o s i i 是可剥夺型的,在任务调度过程中要处理可能发生的竞争,每个任务都要有自己的栈空间,故任务越多,r a m 的空间需求就越大。而大部分以c p u l 2 为核心的微控制器的r a m 空间范围在8 k b 12 k b 之间,这类微控制器主要应用于工业控制,有较好的抗干扰特性,所以考虑到r a m 空间和使用环境,这类微控制器特别需要像t t c o s i i 这样的r t o s ( 实时操作系统) ,也特别适合运行这样的r t o s 。综合来看,t t c o s i i 作为嵌入式r t o s ,不仅结构简单、功能完备,便于移植和维护,而且具备实时操作系统的所有功能,可以满足嵌入式系统的实时性需求。同时,其小巧的体积对于系统资源紧张的嵌入式系统来说也非常适合。因此,在本文的设计中,选择了将肛c o s i i 移植到m c 9 s 1 2 u f 3 2 上作为目标操作系统。具体的移植过程,许多资料都有相关介绍【1 2 】【1 4 】【1 5 1 ,本文就不再具体描述。2 2 远程调试技术从调试技术实现的途径及其应用两个角度,可以将远程调试分为以下几种方式【1 6 】:在线仿真、片上调试、模拟调试、r o m 监控以及调试代理。其中在线仿真和片上调试属于硬件调试,而r o m 监控与调试代理属于软件调试。本文讨论的基于嵌入式操作系统的调试选用调试代理方式。下文将一一阐述以上五种调试方式。2 2 1 在线仿真在线仿真是一种利用在线仿真器( 1 1 1 c i r c u i te m u l a t o r ,i c e ) 替代目标机上物理微处理器的调试方式。它不仅能够产生控制目标机外围电路所需要的信号且接收外部输入信号,还可以允许用户查看c p u 内部的数据或代码信息并控制c p u 的运行l l 。一个i c e 通常由仿真探头和仿真主板组成。仿真探头通过一条电缆与仿真主板相连,里面包含了一颗功能与被代替微处理器完全相同的c p u ,该c p u 能够执行被代替微处理器的所有指令,只是为了调试进行了特殊处理,其内部的某些信号被连接到了芯片的引脚上,使得外部逻辑可以通过这些引脚监控c p u 内部的状态【l 卅。尽管i c e 具有很多的优点,如不消耗目标机系统资源、支持硬件断点调试、实1 0基于操作系统的远程调试器的设计与实现第二章总体设计方案及关技术时性强等,但是存在价格昂贵、通用性不强、可扩展性差等缺陷,使得在线仿真方式的应用受到了极大限制。2 2 2 片上调试由于现代微处理器的封装越来越表贴化( 贴近电路板表面) ,仿真探头的实现也越来越困难。另外,根据统计:在大约9 5 的调试过程中,用户仅仅使用了简单断点、单步以及访问微处理器资源、内存和外设等一些运行控制方面的基本调试手段。因此,一个很自然的发展趋势就是将实时跟踪和运行控制分开,将运行控制放到目标机系统的微处理器核内,由一个专门的调试控制逻辑模块来实现,并用一个专用的串行信号接口开放给用户,用户可以通过微处理器核内的调试控制逻辑模块来停止或者继续c p u 的运行,并访问目标机上的各种资源。这种放弃实时跟踪功能,但是提供了大多数i c e 特性的调试方式就是片上调试( o n c h i pd e b u g g i n g ,o c d ) 1 9 】【2 0 1 。常见的片上调试串行接口有以下三种:j t a g 瞄】瞄】、o n c e 和b d m l 2 1 2 4 1 | 2 5 1 。虽然片上调试功能强大,但它要求微处理器具有片上调试功能( 现在有的微处理器就不支持片上调试功能) ,并且实现起来非常复杂,通用性和可移植性较差。2 2 3 模拟调试通常使用的模拟调试方式是指令集的模拟,它相当于在宿主机上虚拟了一台目标机。该目标机可以和宿主机使用不同类型的c p u 。利用指令集模拟方式进行的调试是一种完全由软件模拟的调试方法,根本不需要硬件板卡的支持,就连输入输出等设备也都是软件模拟的。而实际上软件模拟的结果有时与真实板卡还是有一些差别,硬件的信号、延迟以及对资源的竞争用纯软件的方法根本无法模拟。2 2 4r o m 监控r o m 监控是指一段驻留在目标机r o m 中的小程序,它可以在开发过程中辅助测试与调试用户所编写的嵌入式程序。采用r o m 监控方式进行调试需要在目标机上运行r o m 监控和被调试程序,宿主机的调试器通过远程调试协议与目标机上的第二章总体设计方案及相关技术基于操作系统的远程调试器的设计与实现r o m 监控建立通信连接。当c p u 复位时,将首先执行r o m 监控程序。在执行完一些必要的初始化后,r o m 监控一般将等待来自宿主机的连接信息,以建立调试会话。r o m 监控能完成被调试程序的下载、目标机内存和寄存器的读写、设置简单断点以及单步运行等功能。r o m 监控方式不需要专门的调试硬件支持,明显提高了程序调试效率,降低了调试难度。但该调试方式也同时具有较多缺点:r o m 监控程序开发难度较大;要求目标芯片必须有一定的r o m 空间;不便于调试有时间特性的程序。2 2 5 调试代理调试代理( d e b u g g i n ga g e n t ) 也是一小段驻留在目标机上的代码,可分为调试桩( d e b u g g i n gs t u b ) 和调试服务器( d e b u g g i n gs e r v e r ) i 两类【2 6 1 。采用这种调试方式进行程序调试时也需要在目标机上运行调试代理和被调试程序,宿主机的调试器和目标机的调试代理也使用远程调试协议进行通信。与r o m 监控调试方式不同的是,r o m 监控程序是驻留在目标机的r o m 中的,普通用户无法改写,系统复位时首先执行r o m 监控,然后下载被调试程序进行调试,而调试代理并不是固化在目标机上的,需要先通过某种工具将它们下载到目标机中。由于调试桩往往是被设计用来独立运行于目标机上的,不需要操作系统软件环境的支持,因此它必须与被调试程序一起配合运行,一般用于裸机程序即底层程序的调试;而调试服务器通常作为目标机系统上的一个应用实例运行,只能用于基于操作系统的应用程序调试。以典型的g n u 调试器g d b 为例,当使用g d b 调试底层程序时,需要使用g d b 的调试桩g d b s 劬,而使用g d b 调试基于操作系统的应用程序时,需要使用g d b 的调试服务器g d b s e r v e r t 2 7 j 。调试代理的职责就是在目标机上实现由宿主机上的调试器发送过来的调试命令,并将结果返回,以配合宿主机的调试器完成调试【1 8 j 。2 3 调试环境的设计方法一个远程调试系统由主机调试器、目标机上的调试器、调试协议3 大部分组成。主机调试器主要实现对源文件、目标文件和调试信息等的访问处理,接收用户输入1 2基于操作系统的远程调试器的设计与实现第二章总体设计方案及关技术的调试命令,并将调试请求包发送给目标机调试器,同时接收它返回的调试信息,以获取目标程序的当前运行状态。目标机上的调试器负责接收并解析调试命令,监控目标程序的运行状态,将目标程序状态信息返回主机端。调试协议则规定了调试命令和调试信息的数据格式及通信过程【2 8 1 。任何远程调试环境的建立都必须包含以上三个部分。目前,已有很多组织和个人开发出各式各样的调试环境,虽然它们各自的功能不同,适用的对象也不同,但大体上都可以总结为以下几种设计模式:1 使用现有的g d b 调试器作为宿主机调试器,目标机调试器按照调试代理的方式执行调试功能。在上一节里已经提到,调试代理一般又分为两种,可以按照s t u b的方式实现1 7 1 1 6 】【2 9 】,也可以以s e r v e r 的形式存在口7 】1 3 0 1 3 1 1 。使用g d b 调试器的远程调试环境,调试协议一般采用g d b 的远程串行通信协议。2 主机端使用g d b 调试器和j t a g 调试软件,目标机通过j t a g 接口采用j t a g在线调试方式,主机和目标机之间通过j t a g 协议转换器进行协议转换口8 】【3 2 】【3 3 】。主机通过串行端口、并行端口或以太网接口等与协议转换器连接,协议转换器分析从主机端口接收到的数据,并转换为符合j t a g 接口标准协议的数据送给调试目标机,实现调试功能。图2 - lj t a g 调试系统结构3 也有一些调试环境,主机端调试器是在g d b 的基础上进行进一步开发【3 4 1 ,或者是自主开发的调试器【1 1 】,目标机采用代理调试或r o m 监控【3 5 1 1 3 6 等方式,调试协议使用b d m 协议吲或者某种特殊的协议【1 1 】。总的来说,在大多数调试环境下,主机端都直接使用g d b 或者在g d b 基础上进一步开发的调试器,也有少数单独开发的自主调试器;而对于目标机来说,绝大多数都使用调试代理的模式,而且主要是s t u b 的模式;宿主机和目标机之间的通信协议,常用的有串行通信协议( r s p ) ,b d m 协议和j t a g 协议三种,根据不同的硬件条件和其它特性,开发人员往往选择其中一种作为自己的调试协议。1 3第二章总体设计方案及相关技术基于操作系统的远程调试器的设计与实现2 4 本文的总体设计方案和技术要点2 4 1 总体设计方案本文的调试系统中,将采用独立开发的宿主机调试器,以调试代理( s e r v e r ) 的方式实现目标机调试器,并采用串行通信方式实现宿主机和目标机双方的信息交互。整个调试系统的结构如下:图2 2 调试系统结构其中,p c 端的调试器需要具备以下功能:源码的显示;与目标机进行串行通信;应用程序的写入;断点的设置和取消,寄存器、内存等信息的查看,代码高亮显示,单步继续执行。而目标机调试代理则要能够与p c 机进行串行通信,接受p c 机端的命令,对任务进行识别、控制,做出相应的处理,并将调试信息返回。2 4 2 技术要点1 调试代理的设计本文的目标机调试代理采用s e r v e r 的模式,作为操作系统下的一个独立进程执行调试工作,看上去和o s 中运行的其它任务没有任何区别。因此,对用户应用程序的调试,就可以看成是操作系统下一个应用程序对另一个应用程序的控制。只不过,调试代理是一个系统中本来就已经存在的应用程序。但是,本文采用的目标操作系统t t c o s i i 本身并没有这样的一个任务,因此,需要将这样一个调试任务加到t t c o s i i 下。而且,在本文的调试系统中,当调试代理对某个应用程序进行调试时,只需将1 4基于操作系统的远程调试器的设计与实现第二章总体设计方案及关技术被调试的应用程序停下来,而不会让整个系统停止下来,这样,被调试的应用程序停止了,而没有调试的应用程序仍然可以继续运行,从而实现了任务级的调试。由此可见,任务级调试的一个重要特点是,一个任务因触发调试事件而被停止时,其他任务仍然能够继续运行。2 应用程序的下载开发一个操作系统下的应用程序( a p p ) ,通常都要将其和o s 捆绑以后一起下载到目标机( t a r g e t ) 中去,然后启动o s 和a p p 运行。这种将应用程序下载到目标机的方式成为静态下载。静态下载的缺点显而易见:灵活性差,每次新的a p p 加载都必须捆绑o s ,效率非常低,尤其是在大型的目标机上。唯一的优点就是实现起来非常简单,如果t a r g e t 启动之初就有需要加载的a p p ,则一般会使用这种下载方式。本文实现的程序下载,无需将o s 和a p p 捆绑下载,可以分别单独下载到t a r g e t 。对于已经运行于t a r g e t 上的o s 来说,不需要停止它的运行再重新下载,而只要直接下载新的a p p 即可,这种下载称为动态下载。动态下载的优点是:灵活性好,每次只加载新增的a p p ,效率高,并且下载过程可以不影响o s 和其他已有a p p 的运行。2 4 3 开发平台简介h c s l 2 是最近推出的新型的c p u l 2 系列微控制器( m c u ) ,性价比很高,是c p u l 2 系列m c u 的发展趋势。h c s l 2 系列微控制器是基于速度更快的c p u l 2 内核的微控制器系列,具备片上纠错能力,并与m 6 8 h c l l 和m 6 8 h c l 2 结构编码兼容,便于移植。与h c l 2 相比,h c s l 2 系列采用m o t o r o l a 第三代f l a s h ,容量为3 2 k - - 5 1 2 k b ,具有在线编程能力和保密机制。h c s l 2 系列r a m 和e e p r o m 容量总体上高于h c l 2 系列,且串行接口丰富。h c s l 2 系列微控制器型号有很多种,在这些不同型号的m c u 中,资源各不相同,即使是同一种型号的微控制器,也有多种封装形式,其i o 口数目也不相同。m c 9 s 1 2 u f 3 2 是h c s l 2 系列中的一款。本文的调试系统就是在m c 9 s 1 2 u f 3 2 开发平台上实现的。m c 9 s 1 2 u f 3 2 片内有3 2 k b 的f l a s h 、3 5 k b 的r a m ,片内集成了高速的u s b 2 0第二章总体设计方案及相关技术基于操作系统的远程调试器的设计与实现模块,通信速率为4 8 0 m b s ,总线频率最高达3 0 m h z 。u f 3 2 有多媒体卡( m m c ) v 2 1 、数码加密卡( s d ) 接口v 1 0 ,对这类卡可直接读写;有s m ( s m a r tm e d i a ) 接口;m s ( m e m o r ys t i c k ) 接口;a t a p i 接口等【9 1 。有1 0 0 引脚和6 4 引脚两种封装,1 0 0 引脚的封装最多可以有8 1 个i o 引脚。可制作多功能硬盘,与m p 3 、数码相机结合,应用前景广阔。2 5 小结本章主
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版影视制作公司演员及工作人员劳动合同
- 2025版建筑外墙真石漆专业施工与维护一体化合同
- 2025二手集资房继承权买卖合同模板
- 2025年度挖掘机买卖及项目施工配合合同
- 2025版风力发电机组施工协议书模板(含塔架安装)
- 2025第五章国际工程设计咨询服务贸易协议
- 2025年度船舶电气设备安装与维护合同
- 2025董事聘任合同书:企业转型与战略调整合同
- 2025年餐饮行业后厨及餐厅清洁承包合同
- 2025版钢结构工程合同终止协议范本
- GB/T 22237-2008表面活性剂表面张力的测定
- 股指期权风险管理
- 常用急救药品的剂量与用法课件
- 《电业安全工作规程》
- 塔吊基础-专项施工方案
- 《工贸行业重大安全生产事故隐患判定标准》解读课件
- 第二届中国管理培训生项目现状与发展调研报告
- 发证机关所在地区代码表
- 过去分词公开课--完整版PPT课件
- 书法的章法布局(完整版)
- GB∕T 10429-2021 单级向心涡轮液力变矩器 型式和基本参数
评论
0/150
提交评论