




已阅读5页,还剩45页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘要 g a r f i e l d 芯片是一款基于a r m 7 t d m i 处理器核和面向手持终端的s o c ,现在用于g a r f i e l d 芯片 软件开发的工具主要有指令集模拟器a r m u l a t o r 和在线仿真器m u l t i i c e ,而a r m 公司常用的调试 工具还包括驻留监控软件a n g e l ,本课题主要目的是分析和实现a n g e l 驻留监控程序,从而开发一 个低廉有效的软件调试系统,用于g a r f i e l d 芯片的应用程序开发。 这个调试系统采用宿主机目标机结构,宿主机上运行的是a r m 公司的a x d ( a r me x t e n d e d d e b u g g e r ) 调试器, 目标机上运行的是基于g a r f i e l d 芯片的a n g e l 程序。a x d 与a n g e l 通过a d p 协 议进行通信。a n g e l 接收或发送的每个数据包都要经过3 层协议:数据提供层、通道层和设备层。 该调试系统实现以下功能:支持交叉开发,能从宿主机加载程序到目标系统,能对程序调试,对r a i 设取消程序断点,单步运行,自由运行,查看系统状态( 查看寄存器内容、查看m e m o r y 内容) ,修 改寄存器内容,修改m e m o r y 内容等等。 本文首先介绍g a r f i e l d 芯片和调试系统硬件框架,接着分析a n g e l 通信结构和a d p 协议。最后 依据g a r f i e l d 芯片的特点,设计基于g a r f i e l d 芯片的a n g e l 程序。 使用a n g e l 驻留监控程序来开发应用程序,不需要任何其他的硬件调试和仿真设备,可以减少 软件开发成本,具有很大的工程应用价值。 关键词 系统芯片软件调试通用异步收发器 东南大学硕士学位论文 a b s t i 认c t b a s e do na r m 7 t d m i ,g a r f i e l ds o ci sa ne m b e d d e dp r o c e s s o r , d e s i g n e df o r t h eh a n d i n f o r m a t i o nt e r m i n a l n o wa r m u l a t o ra n dm u l t i i c ea r em a i nt o o l so fd e v e l o p i n ga p p l i c a t i o n s o f t w a r ef o rg a r f i e l ds o c b u ta n g e lm o n i t o rp r o g r a mi sa na r md e b u gt o o lt o o w ed e s i g n as o f t w a r ed e b u gs y s t e mw h i c hc o m p r i s e sa n g e lm o n i t o rp r o g r a ma n di sf o rg a r f i e l ds o c t h isd e b u gs y s t e ma d o p t sh o s t t a r g e ts t r u c t u r e t h e h o s tp r o g r a misa x d ( a r me x t e n d e d d e b u g g e r ) ,w h i l et h em o n i t o rp r o g r a mi sa n g e lm o n i t o rp r o g r a mw h i c hi sd e s i g n e df o rg a r f i e l d s o c a x dc o m m u n i c a t e sw i t ha n g e lm o n i t o rp r o g r a mb ya d p ( a n g e ld e b u gp r o t o c 0 1 ) w i t h i n e a c hp a c k e tr e c e i v e do rt r a n s m i t t e db ya n g e l ,t h e r ea r ea tl e a s tt h r e el e v e l so fp r o t o c 0 1 t h e s ea r e :d a t ap r o v i d e r( h i g h e r1 e v e l ) ,c h a n n e ll a y e ra n dd e v i c el a y e r( 1 0 w e r1 e v e l ) t h i ss y s t e mr e a l i z e dt h ef 0 1 l o w i n gf u n c t i o n s :c r o s sd e b u ga b i l i t y ,s e t c l e a rb r e a k p o i n ti nt h er a ma r e a , s t e p g o , c h e c ka n dm o d i f yt h ev a l u eo ft h ep r o c e s s o r sr e g i s t e r s a n ds y s t e mm e m o r y a tf i r s tt h i sp a p e ri n t r o d u c e sg a r f i e l ds o ca n da n g e lm o n i t o rp r o g r a mw h i c hi n c l u d e s b a s i ca n g e ls t r u c t u r e ,c o m m u n i c a t i o ns t r u c t u r ea n dc o m m u n i c a t i o np r o t o c 0 1 s e c o n d l yh o w t od e s i g na n g e lm o n i t o rp r o g r a mf o rg a r f i e l ds o ci sa n a l y s e di n d e t a i l d e v e l o p i n ga p p l i c a t i o nb yu s i n g a n g e lm o n i t o rp r o g r a md o e sn o tn e e de m u l a t i o n a l e q u i p m e n t , s ot h ism e t h o dr e d u c e sd e v e l o p i n gc o s ta n d h a sg r e a tv a l u ei ne n g i n e e r i n g a p p li c a t i o n k e y w o r d s s o cs o f t w a r ed e b u gu a r t 东南大学学位论文独创性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得的研究成 果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表 或撰写过的研究成果,也不包含为获得东南大学或其它教育机构的学位或证书而使用过 的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并 表示了谢意。 研究生签名: 东南大学学位论文使用授权声明 东南大学、中国科学技术信息研究所、国家图书馆有权保留本人所送交学位论文的 复印件和电子文档,可以采用影印、缩印或其他复制手段保存论文。本人电子文档的内 容和纸质论文的内容相一致。除在保密期内的保密论文外,允许论文被查阅和借阅,可 以公布( 包括刊登) 论文的全部或部分内容。论文的公布( 包括刊登) 授权东南大学研 究生院办理。 研究生签名:兰砻坠导师签名:i 闩f 筮己日期: 第一章绪论 1 课题选题背景及意义 第一章绪论 g a r f i e l d 芯片是一款基于a r m 7 t d m i 处理器核的s o c ,现在用于g a r f i e l d 芯片软件开发的: 具 主要有指令集模拟器a r m u l a t o r 和在线仿真器m u l t i i c e ,而a r m 公司常用的调试工具还包括驻留 监控软件a n g e l ,所以本课题主要目的是分析和实现a n g e l 驻留监控程序,从而开发一个低廉有效 的软件调试系统,用于g a r f i e l d 芯片的应用程序开发。以下我们对a r m 调试工具作个比较: 指令集模拟器,可方便用户在p c 机上完成一部分简单的调试: 作,但是由于指令集模拟器与真 实的硬件环境相差很大,因此即使用户使用指令集模拟器调试通过的程序也有可能无法在真实的硬 件环境下运行,用户最终必须在硬件平台上完成整个应用程序的开发。 驻留监控软件( r e s i d e n tm o n i t o r s ) 是一段运行在目标板上的程序,集成开发环境中的调试软 件通过以太网口、并行端口、串行端口等通讯端口与驻留监控软件进行交互,由调试软件发布命令 通知驻留监控软件控制程序的执行、读写存储器、读写寄存器、设置断点等。 驻留监控软件是一种比较低廉有效的调试方式,不需要任何其他的硬件调试和仿真设备。a r m 公司的a n g e l 就是该类软件,大部分嵌入式实时操作系统也是采用该类软件进行调试,不同的是在 嵌入式实时操作系统中,驻留监控软件是作为操作系统的一个任务存在的。 驻留监控软件的不便之处在于它对硬件设备的要求比较高,一般在硬件稳定之后才能进行应用 软件的开发,同时它占用目标板上的一部分资源,而且不能对程序的全速运行进行完全仿真,所以 对一些要求严格的情况不是很适合。 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 仿真器进行开发是目前采用最多的一种调试方式。 在线仿真器使用仿真头完全取代目标板上的c p u ,可以完全仿真a r m 芯片的行为,提供更加深 入的调试功能。但这类仿真器为了能够全速仿真时钟速度高于1 0 0 删z 的处理器,通常必须采用极其 复杂的设计和工艺,因而其价格比较昂贵。在线仿真器通常用在a r m 的硬件开发中,在软件的开发 中较少使用,其价格高昂也是在线仿真器难以普及的因素。 可以看出a n g e l 首先是驻留在f l a s h 中的一个模块,需要占用f l a s h 存储资源;同时它在运行 时还需要r a m 资源;从连接方式上,a n g e l 通过串口和主机进行通信,也要。与用一个串口资源。它 的好处是由软件实现,成本低廉。 与a n g e l 相比,m u l t i i c e 不占用板上的资源,例如r o m 、r a m 和串口等,而且调试起来的速度 也比a n g e l 快,但是m u l t i i c e 价格昂贵,需要上万元,不适合个人配套使用。 考虑到g a r f i e l d 芯片开发板中具有较多的存储空间( 6 4 m b y t e 的n a n df l a s h 和1 6 m b y t e 的 s d r a m ) ,驻留监控软件是一种比较低廉有效的调试方式,不需要任何其他的硬件调试和仿真设备, 可以减少软件开发成本。所以驻留监控程序a n g e l 作为应用程序开发调试工具,具有很大的: 程应 用价值。 1 2 所做工作 课题的主要目的是在g a 币e l d 芯片上实现a n g e l 驻留监控程序,从而开发一个低廉有效的软件 调试系统,该调试系统使用宿主机目标机模式,宿主机使用的是a r m 公司的a r md e v e l o p m e n t s u i t e ( a d s ) ,目标机运行移植过来的a n g e l 驻留监控程序。a n g e l _ 调试功能强大,它能解释接收的调 东南大学硕士学位论文 试信息,包括返回存储器和处理器状态,可以根据需要,把映像格式的文件下载到相应的存储器中, 还可以根据主机的需要设置断点,支持应用程序使用主机的标准c 库的请求。 使用a n g e l 驻留监控软件来开发应用程序,是一种比较低廉有效的调试方式,不需要任何其他 的硬件调试和仿真设备,减少软件开发成本。 现在,基于我们g a r f i e l d 系统芯片的a n g e l 驻留监控软件已经初步开发成功,通过a x d 和a n g e l 驻留监控软件,有效而且低成本地开发应用程序。 1 3 本文结构 本文共有六章组成。第一章绪论,对课题的选题背景、目的意义和a r m 公司常用的调试工具做 了简单概述。第二章对g a r f i e l d 芯片和a n g e l 调试系统的硬件框架系统作了介绍。第三章对a j l g e l 监控程序进行系统研究,主要研究了a n g e l 的基本架构、通信结构和通信协议。第四章介绍a n g e l 监控程序是如何启动运行的,怎样实现调试代理。第五章是对实验结果的测评。第六章对本课题做 总结和展望。 2 第二章芯片和调试系统硬件框架介绍 第二章芯片和调试系统硬件框架介绍 2 1g a r f i e l d 芯片介绍 g a r f i e l d 芯片是东南大学国家专用集成电路系统二 程技术研究中心自主设计的一款s o c 芯片。 该芯片主要是面向嵌入式设备中的中低端手持式设备,采削了a r m 7 处理器内核+ a r m b 总线+ 应用 模块的体系结构。下图21 描述了g a r f i e l d 的基本功能模块和系统架构: 图21g a r f i e l d 系统架构框幽 整个芯片可以运行在7 5 m h z 。集成了包括黑白,灰度,彩色l c d 控制器;多媒体加速模块, 用于提供多媒体处理定点矢量乘加的计算能力:支持低成本的n a n df l a s h 控制器并可从其直接 启动;支持多种外存类型:s r a m ,n o rf i a s h ,s d r a m ;支持实时钟( r t c ) ;支持四通道的定 时器和两通道的p w m ;支持用于连接触摸屏通讯的s p i 协议;支持两个u a r t 控制器,其中一个 支持红外传输;支持u s b l 1d e v i c e 控制器用于p c 与移动终端之间的高速信息传输;支持m m c s d 卡控制器,用户可以扩展系统的存储能力和外没功能;支持兼容a c 9 7 协议的控制器,用于音频文 件的播放和录制。g a 币e l d 处理器内嵌2 0 k b y t e 零等待的静态存储器( s r a m ) ,用于多媒体处理时 的核心代码与数据的存放,用户也可以将操作系统的核心代码或l c d 帧缓存存放在该存储器中,用 于提供更高的性能和更低的能量消耗;6 通道d m a 控制器,为用户提高了高速的数据传输通道。 为了支持低成本的系统方案,该芯片还支持外部3 2 位1 6 位数据总线。 在对存储介质的管理上,通用系统结构一般都包括对主存中存储器进行控制和数据读取的内存 控制芯片,而嵌入式s o c 芯片都集成有存储器管理接口i p ( m e m o r yc o n t r o l l e ri p ) 。在g a r f i e l d 芯片中则设计为e m i ( e x t e n d e dm e m o r yi n t e r f a c e ) 外部存储器接口i p ,由它负责对内存一级的存 储器媒介的管理和通讯。e m i 包含片外的s r a m 与s d r a m 的接口电路。e s r a m 为嵌入在a h b 总线上的 片上s r a m 。 g a r f i e l d 芯片片内集成有e s r a l ,对存储器的特性有: 支持s r a i s d a r m n o rf l a s h n a n df l a s h 四种类型存储器 支持大端、小端两种字节顺序 支持s d r a m 自刷新 支持内部8 1 6 3 2 位数据传输 七个片选信号支持s r a m s d r a m n o rf l a s h n a n df l a s h 4 个片选支持s r a i n o rf l a s h ,每个片选最大支持6 4 m b y t e s 地址空间 2 个片选支持s r a i s d r a m n o rf l a s h ,每个片选最大支持6 4 m b y t e s 地址空间 3 东南大学硕士学位论文 1 个片选支持n a n df l a s h ,支持地址空间4 g b y t e s 2 2a 删微处理器的工作状态和运行模式 从编程的角度看,a r m 微处理器的二 作状态一般有两种,并可在两种状态之问切换: 第一种为a r m 状态,此时处理器执行3 2 位的字对齐的a r m 指令; 第二种为t h u b 状态,此时处理器执行1 6 位的、半字对齐的t h u m b 指令。 当a r m 微处理器执行3 2 位的a r m 指令集时,工作在a r m 状态;当a r m 微处理器执行1 6 位的t h u m b 指 令集时,工作在t h u m b 状态。在程序的执行过程中,微处理器可以随时在两种二l :作状态之间切换,并 且,处理器工作状态的转变并不影响处理器的工作模式和相应寄存器中的内容。 状态切换方法: a r m 指令集和t h u b 指令集均有切换处理器状态的指令,并可在两种二 作状态之间切换,但a r m 微处理器在开始执行代码时,应该处于a r m 状态。 进入t h u m b 状态:当操作数寄存器的状态位( 位0 ) 为l 时,可以采用执行b x 指令的方法,使微处 理器从a r m 状态切换到t h u m b 状态。此外,当处理器处于t h u m b 状态时发生异常( 如i r q 、f i q 、u n d e f 、 a b o r t 、s w i 等) ,则异常处理返回时,自动切换到t h u b 状态。 进入a r m 状态:当操作数寄存器的状态位为o 时,执行b x 指令时可以使微处理器从t h u m b 状态切换 到a r m 状态。此外,在处理器进行异常处理时,把p c 指针放入异常模式链接寄存器中,并从异常向量 地址开始执行程序,也可以使处理器切换到a r m 状态。 a r m 微处理器支持7 种运行模式,分别为: 用户模式( u s r ) :a r m 处理器正常的程序执行状态 快速中断模式( f i q ) :用于高速数据传输或通道处理 外部中断模式( i r q ) :用于通用的中断处理 管理模式( s v c ) :操作系统使用的保护模式 数据访问终止模式( a b t ) :当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护。 系统模式( s y s ) :运行具有特权的操作系统任务。 未定义指令中止模式( u n d ) :当未定义的指令执行时进入该模式,可用于支持硬件协处理器 的软件仿真。 a r m 微处理器的运行模式可以通过软件改变,也可以通过外部中断或异常处理改变。 大多数的应用程序运行在用户模式下,当处理器运行在用户模式下时,某些被保护的系统资源 是不能被访问的。 除用户模式以外,其余的所有6 种模式称之为非用户模式,或特权模式( p r i v i l e g e dm o d e s ) ; 其中除去用户模式和系统模式以外的5 种又称为异常模式( e x c e p t i o nm o d e s ) ,常用于处理中断或 异常,以及需要访问受保护的系统资源等情况。 2 3 通用异步收发器( u a r t ) 串行通讯是微计算机之间一种常见的近距离通讯手段,因使用方便、编程简单而广泛使用,几 乎所有的微控制器、p c 都提供串行通讯接口。 g a r f i e l d 芯片的u a r t 单元提供两个独立的异步串行i 0 口( a s y n c h r o n o u ss e r i a li 0 ,s 1 0 ) , 每个通讯口均可:【作在中断模式或d m a 模式,也即u a r t 能产生内部中断请求或d m a 请求在c p u 和串 行i 0 口之间传送数据。 g a r f i e l d 芯片的u a r t 单元特性包括: ( 1 ) 字符编码7 8 位 ( 2 )可配置的奇偶校验( 偶校验,奇校验,或不用奇偶校验) ( 3 )对r t s ,c t s 信号提供硬件控制流支持 4 第二章:出片和调试系统硬件框架介绍 ( 4 )对d s r ,d c d ,r i 信号提供软件控制流支持 ( 5 )对各种控制流和f i f 0 状态提供各种状态标志 ( 6 )串行红外接口 ( 7 ) 发送f i f o 空时可触发中断 ( 8 )e n a b l e d i s a b l eu a r t 内部时钟 ( 9 )e n a b l e d i s a b l e 接收器和发送器 ( 1 0 ) r t s 信号,红外接口的异步w a k e 信号,接收器异步w a k e 信号将使m c u 从s t o p 模式中唤醒。 ( 1 1 ) 2 个d m a 请求( 发送器f i f 0 的d m a 请求和接收器的f i f 0 的d m a 请求) 。 每一个异步串行通讯口都具有独立的波特率发生器、发送器、接收器和控制单元。波特率发生 器可由片内系统时钟m c l k 驱动,或由外部时钟u c l k ( p i n 6 4 ) 驱动;发送器和接收器都有独立的数 据缓冲寄存器和数据移位器。 在系统现在的设备中,串口比较特殊。不像其他设备,串口需要传输的信息量较大。传统设计 中,都是将串口分类为块式i 0 设备。即在用户接口处,串口呈现出的是一块缓冲区,用户的读写 都是对它的操作。但实际上,在串口的驱动中,它还是一个字节一个字节的发送或者接收。 待发送的数据首先传送到发送缓冲寄存器,然后拷贝到发送移位器并通过发送数据引脚u a t x d n 发送出去。接收数据首先从接收数据引脚u a r x d n 移入移位器,当接收到一个字节时就拷贝到接收缓 冲寄存器。 当使用u a r t 的发送中断功能时,应在初始化u a r t 之前先写一个字节数据到u a r t 的发送缓冲寄 存器,这样,当发送缓冲寄存器空时就可以产生u a r t 的发送中断。 任务首先要申请串口,判明该任务是否拥有该设备,进行初始化( 开始默认串口配置c o m l ,波 特率9 6 0 0 ,数据位8 ,触发级8 ) ,配置相关参数,然后再进行具体操作;当任务申请了串口进行 具体操作,并且告诉系统它要读多少或者要接收多少数据,还有t i m e o u t 值。如果串口接收到足够 多的数据或者发送完毕,再者就是超时,系统就发送一个消息给该任务,通知它继续操作。 驱动底层的实现通过中断来控制进行数据发送或者接收。 2 4 中断控制器 中断控制器( i n t e r r u p tc o n t r o l l e r ) 的作用是接收来自中断源的中断信号,并判别出所有中 断信号中的最高优先级,按优先级次序发送给c p u 。c p u 通过查询最终状态寄存器( i f s r ) 以确定当前 需要服务的中断源( 其是当前中断源中优先级最高的) ,从而实现按优先级执行中断服务程序。其支 持i r q 中断和f i q 快速中断,共3 2 个中断源,其中1 2 个内部中断,1 8 个外部中断,外部中断支持 沿触发( 上升沿,下降沿) 、电平触发( 高电平,低电平) ,外部的中断极性可配。 在a r m 处理器中,使用异常来处理在执行程序时发生的以外事件,如中断、存储器故障。在 a r m 体系结构中,异常也用来指软件中断、未定义指令陷阱以及系统复位功能。这些事件都划归 为“异常”,因为在处理器中他们都使用同样的基本机制。 a r m 异常可以分为3 类: ( 1 ) 指令执行引起的直接异常。软件中断,未定义指令( 包括所要求的协处理器部存在的协处理器 指令) 和预取中止( 因为取指过程中的存储器故障导致的无效指令) 属于这一类。 ( 2 ) 指令执行引起的间接异常。数据中1 e ( 在l o a d 和s t o r e 数据访问时的存储器故障) 属于这一 类。 ( 3 ) 外部产生的与指令流无关的异常。复位、i r q 和f i q 属于这一类。 在a r m 发现发生异常时,a r m 会尽量完成当前指令( 除了复位异常立即中止当前指令) ,然 后脱离当前的指令序列去处理异常。间接或外部事件引起的异常将占据当前序列中的下一条指令。 直接异常在产生时就按顺序处理。处理器将执行下列动作: 进入与特定异常相应的操作模式。 5 东南大学硕士学位论文 将引入异常指令的下一条指令的地址保存到新模式的r 1 4 中去。 将c p s r 的原值保存到新的模式的s p s r 中。 通过设置c p s r 的第七位来禁止i r q 。 给p c 强制赋值,使程序从表中给出的相应的向量地址开始执行。 表2 一l异常的向量地址 异常模式向量地址 复位 s v co x 0 0 0 0 0 0 0 0 未定义指令 u n d0 x 0 0 0 0 0 0 0 4 软件中断( s w i ) s v c0 x 0 0 0 0 0 0 0 8 预取址中止( 取指存储器故障) a b o r t0 x 0 0 0 0 0 0 0 c 数据中止( 访问数据存储器故障) a b o r t0 x 0 0 0 0 0 0 1 0 m q ( 正常中断)i r q o x 0 0 0 0 0 0 18 f i q ( 快速中断)f i q 0 x 0 0 0 0 0 0 1c 一般的说,向量地址处将包含一条指向相应程序的转移指令。但f i q 可以立即开始执行,因为 它占据最高向量地址。 每个特权模式的两个寄存器用来保存返回地址和堆栈指针。堆栈指针可以用来保存其它用户寄 存器,这样异常处理程序就可以使用这些寄存器。f i q 模式还有额外的专用寄存器,使用这些寄存 器可以使大多数情况不必保存用户寄存器而得到较好的性能。 一旦异常处理完毕,用户任务就恢复正常了。这要求异常处理程序代码精确恢复异常发生时的 用户状态,即: 所有修改过的用户寄存器必须从处理程序的堆栈中恢复。 c p s r 必须从相应的s p s r 中恢复。 p c 必须变回到在用户指令流中相应的指令地址。 而后两步是不能独立完成的。如果先恢复c p s r ,则保存返回地址的当前异常模式的r 1 4 就不 能再访问了;如果先恢复p c ,则异常处理程序将失去对指令流的控制,使得c p s r 不能恢复。因此 a r m 提供两种机制,利用这些机制,可以使上述两步作为一条指令的一部分同时完成。访返回地 址保存在当前异常模式的r 1 4 时,使用其中一种机制,当返回地址保存在堆栈时使用另一种机制。 当返回地址保存在r 1 4 中时: 从m q 、f i q 、返回,使用: s u b s p c ,r 1 4 ,# 4 i r q 和f i q 必须返回前一条指令,以便执行因进入异常而被占据的指令。 如果异常处理程序把返回的地址拷贝到堆栈( 例如为了能够再次进入异常,这种情况下s p s r 也同p c 一样必须保存) ,可以使用一条如下的多寄存器传送指令来恢复用户寄存器并实现返回,即 l d m f dr 1 31 ,( r 0 一r 3 ,p c ) 从存储器中装入p c 的同时,c p s r 也得到恢复。由于寄存器是按升序装入的,所以p c 是从存 储器传送的最后一个数据。显然,只有当r 1 4 的值在存入堆栈之前进行调整,才可以使用堆栈的返 回机制。 在使用中断控制器之前,首先要对中断控制器进行初始化。通过写i r q 中断允许寄存器和f i q 中断允许寄存器禁i 上所有的中断源发出中断信号。初始化所有产生中断信号的外设;打开i r q 中断 允许寄存器和f 1 q 中断允许寄存器允许中断信号通过;然后对i r q 优先级寄存器,i r q 屏蔽寄存器 和f 1 q 屏蔽寄存器写入初始化值。 一般而言,总是在各个需要中断的外设中打开相应的屏蔽寄存器。 在g a r f i e l d 芯片中,u a r t 0 的中断号是2 4 ,u a r t l 的中断号是2 3 ,a n g e l 的中断响应程序根据 中断的来源判断是否是串行口中断。 6 第二章:苍片和调试系统硬件框架介绍 2 5a n g e l 调试系统硬件框架 p c 主机 串行电缆 雹一 g a r f i e l d 碴s 片 嵌入式系统 图2 2a n g e l 调试系统连接结构 宿主机上运行的是a r m 公司的a x d ( a r me x t e n d e dd e b u g g e r ) 调试器。目标机是基于g a r f i e l d 芯片的嵌入式系统开发平台。宿主机与目标机是通过串行电缆连接的。 根据g a r f i e l d 芯片的特点,开发的目标机硬件结构如图2 3 所示。 m e m o r v n t e 哟 g a r f 眶l d 弋等譬 l 黼ll 罾l降叫 图2 3 应用系统结构 其中处理器使用g a r f i e l d 芯片,其余各部分基本功能描述如下: ( 1 ) 输入电源为5 v ,一方面通过电池和充电电路对电池充电,另一方面通过两个d c d c 转换器 将5 v 变换为2 5 v 和3 3 v ,分别给g a r f i e l d 内核及其他需要3 3 v 电源的外围电路供电;电池保护 电路实现电池在规定电压进行充电和放电。 ( 2 ) 复位电路可完成系统上电复位和在系统:i :作时用户按键复位。 ( 3 ) 时钟电路提供两路时钟,一路3 2 7 6 8 i ( h z 为系统提供g p t 提供:l 二作时钟,另一路1 0 删z 为 g a r f i e l d 系统芯片其他各个模块提供:| = :作时钟,通过片内其中一个p l l 电路倍频为7 5 删z 作为微处 理器的:【作时钟;通过片内另一个p l l 电路倍频为4 8 姗z 作为u s b l 1 设备控制器模块的:【作时钟。 ( 4 ) j t a g 接口可对芯片内部的所有部件进行访问,通过该接口可对系统进行调试、编程等。 ( 5 ) 本调试系统占用一个串口,用于g a r f i e l d 系统与p c 机的短距离双向串行通讯。该串行接 口使用电子工业协会( e i a ) 推荐的r s 一2 3 2 一c 标准,这是一种很常用的串行数据传输总线标准。 r s 一2 3 2 一c 标准采用的接口是9 芯或2 5 芯的d 型插头,我们采用常用的9 芯d 型插头,各引脚定义 如表2 2 所示: 表2 29 芯d 型插头引脚信号描述 7 墨雯互感 至一 东南大学硕士学位论文 i 刳脚毳j 萋 。i | | | | 。i 蕊名称囊i 婺蘩囊谚i 鳞赫i 述爹攀j i i 襄j 攀;爹 1d c d 数据载波检测 2r x d 数据接收 3t x d 数据发送 4d t r 数据终端准备好 5 g n d 地 6d s r 数据设备准备好 7r t s 请求发送 8c t s 清除发送 9r i 振铃指示 要完成最基本的串行通信功能,实际上只需要r x d 、t x d 和g n d 即可,但由于r s 一2 3 2 一c 标准所 定义的高、低电平信号与g a r f i e l d 系统的l v t t l 电路所定义的高、低电平信号完全不同,l v t t l 的 标准逻辑“1 ”对应2 v 3 3 v 电平,标准逻辑“0 ”对应0 v 0 4 v 电平,而r s 一2 3 2 一c 标准采用负逻 辑方式,标准逻辑“l ”对应一5 v 一1 5 v 电平,标准逻辑“0 ”对应+ 5 v + 1 5 v 电平,显然,两者间要 进行通信必须经过信号电平的转换,目前常使用的电平转换电路为m a x 3 2 2 l e c a e 芯片,关于m a x 3 2 2 l 更具体的内容可参考m a x 3 2 2 1 e c a e 用户手册。 t i nt o u t 8r ) 一2 3 2 r o u tr i n c 9 50 1 u i 隰 v c cc 1 + 41l v +c 1 5 v c 2 + 6 。l g n dc 2 o n # e n 1 c 9 8o 1 u i 鼯o f f 群i n v a l i d央:| 图2 4u a r t 连接l 绸 考虑到实际应用,在设计时采用一路u a r t ,具体如图2 4 所示;信号u a r t e n 作为芯片 m a x 3 2 2 1 e c a e 的使能信号,直接连到g a r f i e l d 芯片。 ( 6 ) n a n df l a s h 存储器存放启动程序、用户应用程序、嵌入式操作系统或其他在系统掉电后需 要保存的用户数据等,特别是作为系统启动用。本调试系统中的n a n df l a s h 存储器大小为6 4 m b y t e 。 n a n df a l s h 以其高的容量价格比在非易失性类存储设备中显现出强劲的市场竞争力,它的出现为 降低产品中存储设备的成本提供了很好的解决方案。n a n d 和in o rf l a s h ( 闪存) 是现在市场上两种 主要的非易失闪存芯片,这两种类型的f l a s h 区别在于:n o r 类型的f l a s h 可以按照字节访问,所 以存放在f l a s h 里的程序可以直接执行,而n a n d 是串行访问的,类似硬盘的存取方式,需要先把 程序读取到内存然后再从内存中运行。与n o r 型相比,n a n d 型闪存的优点就是容量大,通过实验 统计证明n a n d 型的写入速度较快,读出速度比较慢,n a n d 的擦除速度远比n o r 快。n a n d 型的存储 和传输是以页和块为单位的,相对适合大块数据的连续传输,这样也可以部分弥补串行传输的不利, 在n a n d 闪存中每个块的最大擦写次数是一百万次,寿命很长。因此,n a n df l a s h 闪存最适合保存 大容量的数据,如作为电子硬盘、移动存储介质等使用。 ( 7 ) s d r a m 存储器作为系统运行时的主要区域,系统及用户数据、堆栈均位于s d r a m 存储器中。 s d r a m 存储器大小为1 6 m b y t e 。与f l a s h 存储器相比较,s d r a m 不具有掉电保持数据的特性,但其存 取速度大大高于f l a s h 存储器,且具有随机快速读写的属性,因此,s d r a m 在系统中主要用作程序 的运行空间,数据及堆栈区。g a r f i e l d 系统启动时,当外部硬跳线管脚n a n d b 0 0 t 置高,此时e s r a m 8 第二章:醛片和调试系统硬件框架介绍 的地址空间将映射到0 x 0 0 0 0 0 0 0 0 0 x 0 0 0 0 4 f f f f ,其原来的映射空间0 x 1 f f f - 0 0 0 0 0 x 1 f f f 一4 f f f 将保留,不能再访问。系统上电后d m a c 占用并且锁住总线,自动将n a n df l a s h 的第0 个b l o c k 的 第0 个p a g e ( 共计1 2 8w o r d s ) 搬到0 地址也就是e s r a m 中。在这个过程中c p u 是不能占有总线, 取不到数据。完成这个p a g e 的搬动后,d m a c 释放总线,c p u 开始从0 地址( e s r a m 中) 取指令并执 行。在完成系统的初始化后,程序代码一般应调入s d i 中运行,以提高系统的运行速度,同时, 系统及用户堆栈、运行数据也都放在s d r a m 中。 s d r a m 具有单位空间存储容量大和价格便宜的优点,已广泛应用在各种嵌入式系统中。s d r a m 的存储单元可以理解为一个电容,总是倾向于放电,为避免数据丢失,必须定时刷新( 充电) 。因此, 要在系统中使用s d r a m ,就要求微处理器具有刷新控制逻辑,g a r f i e l d 芯片在片内具有独立的s d r a m 刷新控制逻辑,可方便地使用s d r a m 。 ( 8 ) 姗c 存储卡接口可存储一些需要长期保存的歌曲、资料等方便携带的用户数据。 ( 9 ) a c 9 7c e d e c 接口电路可以播放m p 3 和w m a 等格式的歌曲,也可以通过麦克风录音并回放。 ( 1 0 ) 用户可选的3 2 0 x 2 4 0 和2 4 0 x 1 6 0 的黑白屏和触摸屏接口电路( 目前系统选用3 2 0 x 2 4 0 屏) 可以让用户轻松点击选择服务种类,或学习或娱乐,背光电路可让用户在黑暗处也能随意使用。 9 东南大学硕士学位论文 第三章a n g e l 通信结构和a d p 协议的分析 3 1a n g e l 驻留监控程序介绍 a n g e l 是一段运行在目标机上的驻留监控程序,宿主机通过以太网口、并行端口、串行端口等 通讯端口与a n g e l 进行交互,由宿主机发出命令通知a n g e l 控制程序的执行、读写存储器、读写寄 存器、设置断点等。a n g e l 用于开发和调试运行在基于a r m 硬件上的应用程序,可以调试运行在a r m 或t h u m b 状态下的应用程序。 a n g e l 主要用于: ( 1 ) 调试在真正硬件上而不是硬件仿真器上的应用软件; ( 2 ) 在开发板上开发新的软件应用程序; ( 3 ) 运行基于a r m 处理器的新硬件设备; ( 4 ) 加载基于a r m 的操作系统。 a n g e l 使用a n g e l 调试协议( a d p ,a n g e ld e b u gp r o t o c 0 1 ) 进行主机和目标机的通信,a d p 支 持多通道,并提供检错功能。 3 2a n g e l 基本构架 一个典型的a n g e l 系统包含两个主要部分: ( 1 ) 主机调试器 主机调试器运行在主机上,它发送命令给a n g e l ,并且显示返回的结果。所有的a r m 调试器都 支持a n g e l 。 ( 2 ) 目标机a n g e l 驻留监控程序 a n g e l 调试监控程序运行在目标机上,也可以和被调试的应用程序一起运行。 典型的a n g e l 系统的组成框图如图3 1 所示。主机上的调试器向目标系统中的a n g e l 发送请求, a n g e l 解释这些请求并执行某种操作。 1 0 笫三章a n g e l 通信结构和a d p 协议的分析 图3 1 典型的a n g e l 系统的组成框图 主机系统的组成主要包括:调试器、调试器二 具箱、a d p 支持、引导支持、c 库支持、 主机通道管理器和设备驱动器。调试: 具箱为调试器和远程调试接口( r d i ,r e m o t ed e b u g i n t e r f a c e ) 提供一个接口:i :具:a d p 支持完成来自调试控制器的r d i 调用和a n g e la d p 消 息的转换;引导是在目标和主机系统之间建立通信基础:c 库支持用于处理来自目标c 库的 半主机请求;主机通道管理器用于管理通信通道;设备驱动器为主机上特定的通信设备提供 通信支持,并为通道管理器提供所需的入口点。 目标系统的组成包括:设备驱动器、通道管理器、通用调试支持、与目标相关的调试支 持、异常支持、c 库支持、引导和初始化以及用户应用程序。设备驱动器为开发板上特定的 通信设备提供通信支持,并为通道管理器提供所需的入口点;通道管理器用于管理通信通道, 它提供了一种流式包接口,从而隐藏了正在使用的设备驱动器的细节;通用调试支持通过在 一个分配的通道上与主机通信以及发送和接收来自主机的命令以实现a n g e l 调试协议;与目 标相关的调试支持提供了系统相关特性,例如设置断点和读写存储器等;异常支持处理所 有的a r m 异常;c 库支持包括a r mc 库和半主机支持;引导和初始化支持主要功能是执行启 动校验,设置存储器、堆栈和设备以及向调试器发送引导消息。 3 3a n g e l 通信结构 图3 2 是一个概念性的a n g e l 通信结构示意图。在实际应用中,某些层可能会合并。 图3 2a n g e l 通信结构层次图 东南大学硕士学位论文 图3 2 描述了这个结构的各个部分的组成,以及d e b u g 信息的传输。 通道层包括: ( 1 ) a d p :a n g e l 调试协议通道,包括主机a d p 通道( h a d p ) 和目标a d p 通道( t a d p ) ; ( 2 ) b o o t :引导通道; ( 3 ) t d d c :t h u m b 调试通讯通道; ( 4 ) c l i b :c 库支持。 作为目标机的最高级,a n g e l 与主机通信,用户应用程序使用半主机c 库支持( c u b ) 。 所有调试的通讯( a d p ,b o o t ,t d c c 和c l ) 都需要主机和目标之间的可靠通道。可 靠通道和缓冲区管理层负责
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 车牌自动识别系统技术合同示范
- 小学英语期中考试模拟试卷
- 古典诗词教学创新方法与案例分析
- 幼儿园科学微教案《纸杯投影仪》实施方案
- 叉车操作安全规范培训试题全集
- 屠宰厂环境及污水治理方案
- 心理学专业资格考试真题
- 运输公司车辆管理制度范本
- 2019年上海市物理会考真题解析
- 写字楼物业消防安全管理方案及流程
- 2024年连云港东海县招聘社区工作者真题
- (零模)南昌市2025年高三年级九月测试语文试卷(含标准答案)
- 燃料电池催化剂研究报告
- 湖北省华大新高考联盟2026届高三上学期9月教学质量测评语文试题(含答案)
- 人工智能应用技术-教学大纲
- 虚拟货币挖矿管理办法
- 2025重庆市涪陵区马武镇人民政府选聘本土人才1人考试参考试题及答案解析
- 2025-2026学年地质版(2024)小学体育与健康三年级(全一册)教学设计(附目录P123)
- DB3302T1135-2022新建小区室内公共体育设施配置和管理规范
- 2025年装载机行业当前竞争格局与未来发展趋势分析报告
- 2025年飞行服务站无人机培训行业现状分析报告
评论
0/150
提交评论