(信号与信息处理专业论文)基于以太网接口的armjtag仿真器设计.pdf_第1页
(信号与信息处理专业论文)基于以太网接口的armjtag仿真器设计.pdf_第2页
(信号与信息处理专业论文)基于以太网接口的armjtag仿真器设计.pdf_第3页
(信号与信息处理专业论文)基于以太网接口的armjtag仿真器设计.pdf_第4页
(信号与信息处理专业论文)基于以太网接口的armjtag仿真器设计.pdf_第5页
已阅读5页,还剩49页未读 继续免费阅读

(信号与信息处理专业论文)基于以太网接口的armjtag仿真器设计.pdf.pdf 免费下载

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

文档简介

内蒙古大学硕士学位论文 基于以太网接口的a r m j t a g 仿真器设计 摘要 在嵌入式系统的开发过程中,仿真器是一个必不可少的开发工具。特别是 对于初级嵌入式系统开发工程师,借助一个功能强大的仿真器进行开发工作, 可以达到事半功倍的效果。一个嵌入式仿真、调试系统支持单步执行、设置断 点、观察变量内容及寄存器内容等功能。开发人员可以通过各类调试功能观察 变量和寄存器的变化,从而可以很清楚的了解整个程序运行的状况,及时的调 整和修改程序,并不需要反复的向芯片烧写程序,就可以完成对于程序的调试 工作。 本文在分析了目前市场上常用仿真器的设计原理的基础上,提出了以三星 公司的s 3 c 4 4 b o a r m 7 处理器为主c p u ,通过以太网接口进行数据传输的a r m j t a t 仿真器的设计方案。利用这种仿真器进行程序调试,不仅可以大幅度的提 高下载速度,还可以实现仿真器资源的共享,而且调试时程序是在目标板上运 行,仿真更接近于目标硬件。 文中首先对于传统仿真器的设计原理、作用、存在的问题进行了研究,然 后提出了基于$ 3 c 4 4 8 0 的以太网接口的a r m j t a g 仿真器的设计。该仿真器的 设计主要分为以下几步:第一,提出总体设计方案,包括硬件的设计及软件的 设计。第二,详细介绍该仿真器的硬件结构设计和程序开发过程,其中特别对 以太网接口的设计进行了研究。第三,总结了该仿真器的功能、特点。 内蒙古人学硕十学位论文 关键词:仿真器;$ 3 c 4 4 8 0 ;以太网接口;j t a g ;l w l p i i 内蒙古大学硕j :学位论文 t h ed e s i g n i n go fa r m j t a ge m u l a t o r b a s e do n e t h e r n e ti n t e r f a c e a b s t r a c t i ne m b e d d e ds y s t e m s ,t h ee m u l a t o ri sa l li n d i s p e n s a b l et o o lf o rd e v e l o p m e n t e s p e c i a l l yf o rp r i m a r ye m b e d d e ds y s t e md e v e l o p m e n te n g i n e e r s ,i tc a na c h i e v et h e t w i c et h er e s u l tw i t hh a l ft h ee f f o r tw i t hap o w e r f u le m u l a t i o nd e v e l o p m e n tw o r k a n e m b e d d e de m u l a t i o na n da t e s t i n gs y s t e m h a v et h ef u n c t i o n so fs u p p o s i n g s i n g l e s t e p ,s e t t i n gb r e a k p o i n t s ,o b s e r v i n gv a r i a b l e sa n dr e g i s t e r i n gc o n t e n t s ,e t c v a r i o u sc o m m i s s i o n i n gf u n c t i o no fv a r i a b l e sa n dr e g i s t e rc h a n g e sc a nb eo b s e r v e db y d e v e l o p e r sw h ou n d e r s t a n dc l e a r l yt h ew h o l ep r o c e s so fo p e r a t i o nc o n d i t i o n ,a d j u s t t i m e l ya n dm o d i f yt h ep r o g r a m t h ep r o g r a m m e r s ,w h on e e d n t t ob u r nac h i p r e p e a t e d l y , c a nc o m p l e t et h ed e b u g g i n gp r o g r a m s b a s e do nt h e a n a l y s i s o ft h ep r i n c i p l ed e s i g n so fe m u l a t i o n sw h i c ha r e c o m m o n l yu s e di nt h ec u r r e n tm a r k e t ,t h i sd i s s e r t a t i o np u tf o r w a r dad e s i g ns c h e m e o fj t a ta r me m u l a t i o nu s i n gt h e $ 3 c 4 4 8 0a r m 7 p r o c e s s o ro fs a m s u n gc o m p a n y a sam a i n l yc p ua n dt r a n s m i td a t ao nt h ee t h e r n e ti n t e r f a c e n o to n l yc a nt h i s i i i 内蒙古大学硕上学位论文 e m u l a t i o nt e s t i n gp r o c e d u r e sd r a s t i c a l l yi n c r e a s ed o w n l o a ds p e e d ,b u ta l s oc a n a c h i e v er e s o u r c e ss h a r i n g a tt h es a m et i m e ,s i n c et h ep r o g r a m sa r er u n n i n go nt h e t a r g e tb o a r dw h e nt h e ya r ed e b u g g e d ,t h ee m u l a t i o no nt h ep l a t ei sc l o s e rt ot a r g e t h a r d w a r e t h i sd i s s e r t a t i o nf i r s t l yd i s c u s s e st h ed e s i g np r i n c i p l e s ,t h ef u n c t i o n sa n dt h e e x i s t i n gp r o b l e m so ft h et r a d i t i o n a le m u l a t i o n ,a n dt h e ni tp u t sf o r w a r dt h ea r m j t a ge m u l a t i o nd e s i g nw h i c hi sb a s e do nt h ee t h e m e ti n t e r f a c es 3 c 4 4 8 0 t h e d e s i g n i n go fe m u l a t o ri sm a i n l yd i v i d e di n t ot h ef o l l o w i n gs t e p s :f i r s t l y , i tb r i n g s f o r w a r dt h eo v e r a l ld e s i g ns c h e m e ,i n c l u d i n gh a r d w a r ed e s i g na n ds o f t w a r ed e s i g n , s e c o n d l y , i ti n t r o d u c e st h eh a r d w a r es t r u c t u r eo ft h ee m u l a t i o np r o g r a md e s i g na n d d e v e l o p m e n tp r o c e s si nd e t a i l ,e s p e c i a l l yf o rs t u d y i n gt h ee t h e m e ti n t e r f a c ed e s i g n , t h i r d l y , i ts u m m a r i e st h ec h a r a c t e r i s t i c sa n df u n c t i o n so f t h ee m u l a t o r k e y w o r d s :e m u l a t o r ;s 3 c 4 4 8 0 ;e t h e r n e ti n t e r f a c e ;j t a g ;l w i p i v 原创性声明 本人声明:所呈交的学位论文是本人在导师的指导下进行的研究工作及取得的研究成 果。除本文已经注明引用的内容外,论文中不包含其他入已经发表或撰写过的研究成采,也 不包含为获得内墓查左堂及其他教育机构的学位或证书而使用过的材料。与我一同工作的同 志对本研究所做的任何贡献均已在论文中作了明确的说明并表示谢意。 学位论文作者签名:王丕磊 e t 期:地互皇:2 指导教师签名: 在学期间研究成果使用承诺书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,即:内蒙古大学有权将 学位论文的全部内容或部分保留并向国家有关机构、部门送交学位论文的复印件和磁盘,允 许编入有关数据库进行检索,也可以采用影印、缩印或其他复制手段保存、汇编学位论文。 为保护学院和导师的知识产权,作者在学期间取得的研究成果属于内蒙古大学。作者今后 使用涉及在学期间主要研究内容或研究成果,须征得内蒙古大学就读期间导师的同意;若用 于发表论文,版权单位必须署名为内蒙古大学方可投稿或公开发表。 ,po 学位论文作者签名:皇盘乏琵 指导教师签名: e 1 期:继墨:塑 e l凯厕ts 尘 内蒙吉大学硕士学位论文 第一章绪论 1 1 研究意义 在嵌入式系统开发过程中,调试在整个开发过程中占有举足轻重的地位,特别是当处理 器运行速度快( 像a r m 等高端处理器) ,内部一些控制信号以及存储器的总线信号并不体现在 外部引脚上时,一个高效、强大的调试系统可以大大减少整个系统的开发时间。目前,常用的 仿真器有基于p c 机串行端口和并行端口的仿真器。基于p c 机串口的仿真器功能有限,且下载 速度很慢:基于p c 机并口的仿真器实际上是采用p c 机的并口外加一些锁存器,在上位机用软 件解析调试协议( a d p 协议) 并模拟j t a g 时序,实现一般的调试功能。虽然这类“仿真器”设 计简单、廉价,但由于用p c 机的并口来传送数据,仿真速度有限,同时,现在的笔记本电脑中 一般都没有并口,这样就使得一些使用笔记本开发程序的程序开发者需改用有并口的p c 机, 给程序开发调试带来了不便。另外,目前市场上出现了一些基于p c 机u s b v 的仿真器,虽然 它的下载速度已经很快,但是却无法达到资源的共享及远程调试。随着e t h e r n e t 接口技术的发 展,利用p c 机的e t h e r n e t ( 以太网) 接口作为仿真器的传输接口,不仅可以解决传统仿真器的速 度瓶颈限制,同时可以实现一台仿真器多个人使用。同时在仿真器中通过$ 3 c 4 4 8 0 完成协议的 转化和传输,这样就不会在调试过程中占用目标板的c p u 资源,同时通过c p l d f p g a 完成 j t a g 时序,可以提高整个仿真、调试过程的稳定性。 1 2 主要研究内容 本文给出了一种基于e t h e r n e t 接口,采用$ 3 c 4 4 8 0 控制c p l d 的系统来实现整个仿真器设 计方案。使用c p l d f p g a 实现j t a g 时序,可以减少m c u 的开销,提高仿真器的速度。采用 s a m s u n g $ 3 c 4 4 8 0 处理器作为主c p u 可以方便u c o s i i 实时操作系统的移植和e t h e m e t 接口的 开发,这不仅提高了仿真器的稳定性,而且提高了整个仿真器的性能。与市面上近期出现的一 些升级版并口仿真器及u s b 仿真器相比,基于网口的仿真器最大的优点便是通过网口不但可 以实现资源共享,大大降低了开发成本,而且通过网口与i n t e r n e t 相连,能实现远程调试及监控。 内蒙古大学硕上学位论文 本文主要研究了$ 3 c 4 4 8 0 以太网接口的设计以及j t a g 接口的设计两部分内容。在 $ 3 c 4 4 8 0 以太网接口设计中,涉及到t u c o s i i 操作系统的移植、l w l p 协议栈的移植以及 r t l 8 0 1 9 a s 驱动程序的开发。在j t a g 接口设计过程中,详细介绍了j t a g 调试原理,同时分 析 c p l d 控制的j t a g 时序的实现方法。最后分析了这套系统的优缺点,以及改进方法。 2 内蒙古大学硕士学位论文 第二章总体设计方案 2 1 仿真系统介绍 仿真器的主要功能就是在系统调试过程中实现调试器与目标系统间的协议转换。a r m 系 统的调试方式大致可以分为指令级仿真调试和硬件仿真调试。a r m u l a t o r 是一种运行在主机 上的指令级仿真程序,通过p c 上的指令模拟器可完成一些简单的调试功能,但指令集模拟器 与真实的硬件环境相差很大,用户最终必须在硬件平台上完成整个应用的开发。采用硬件方 式调试程序,需要两种工具:调试器和仿真器。调试器是提供开发者与目标系统交互的界面, 例如a d w 、a x d 等。仿真器也称调试代理,用来实现调试器和目标系统之间的通信,它提 供访问目标系统硬件的能力。 采用硬件方式的调试通常包括驻留监控软件调试法、j t a g 仿真调试法和在线仿真法。驻 留监控软件调试法是通过驻留在目标板上的一段监控程序,截取调试器发出的命令,解析后, 实现对硬件相应的操作,同时硬件的相应状态又通过驻留监控程序返回到调试窗口显示,像 a r m 公司的a n g e l 就属于这类驻留程序。这种方式的调试其优势在于不需要任何其他的硬件 调试和仿真设备,但由于它是一段运行在目标系统中的程序,需要占用目标系统的一定资源, 同时其代码也必须根据不同的目标系统进行相应的移植。基于j t a g 的调试仿真是充分利用 了a r m 芯片的j t a g 边界扫描口来实现调试和仿真。这类仿真最大的优点是在进行调试时不 需要在目标系统上运行程序,对于一个“裸的 目标系统也可以进行调试。通过现有的j t a g 边界扫描i s l 与a r mc p u 核通信,属于完全非插入式( 即不使用片上资源) 调试,它无需目标存 储器,不占用目标系统的任何端口。另外,j t a g 调试的目标程序是在目标板上执行,仿真更 接近于目标硬件。至于在线仿真,则是使用仿真头完全取代目标板上的c p u ,可以完全仿真 a r m 芯片的行为,提供更加深入的调试功能。但这类仿真器通常必须采用极其复杂的设计和 工艺,因而价格比较昂贵。 一个完整的a r m 嵌入式调试系统包括三部分:主机、协议转换器、目标系统。典型的 调试系统如图2 1 所示。 3 内蒙古大学硕j 二学位论文 婆滔喜磐季行第二 协议转换器 - 目标系统 方调试软件) , 图2 - 1 典型的调试系统 f i g 2 1t h et y p i c a ld e b u g g i n gs y s t e m 主机运行a r m 调试软件,如a d s l 2 、s d t 2 5 1 或其它第三方代理工具,给用户提供了 良好的用户i d e 界面,用户可以通过这些调试软件给目标系统发送调试命令,如单步命令、 设置断点命令、更改变量值等。协议转换器将主机发来的命令转换为目标系统可以识别的调 试命令,然后发送给目标系统,常用的协议转换器有m u l t i i c e 。主机与协议转化器连接方式 常用的有串口、并口、u s b 接口、以太网接口。串口和并口本身的传输速度比较慢,这会影 响系统调试时的下载速度,而且并口在一些笔记本电脑上已经不常见,会影响到程序开发者 的工作;而u s b 接口和以太网接口本身的传输速度就很快,这样就会大大提高调试中的程序 下载速度,同时,以太网接口可以实现局域网之间数据的共享和远程调试功能,因此本文中 选用以太网接口作为仿真器和主机之间的接口。 2 2 仿真器硬件设计方案 本文设计的是基于以太网接口的j t a g 仿真器,它主要有三大模块构成:以太网接口模 块、仿真系统模块、j t a g 接口模块,图2 2 所示为本设计的结构框图。 主 以太网接口 j t a g 接口、 目 s 3 c 4 4 8 0 c p l d 蓁 机 j t g 仿真系统 图2 - 2 以太网接口j t a g 仿真器系统结构图 f i g 2 2t h es y s t e ms t r u c t u r eo fe t h e r n e ti n t e r f a c ea n dj t a ge m u l a t i o n 主机中的调试器将发送出a d p 协议包,目标系统无法识别,需要通过仿真系统来进行 a d p 解析。因此$ 3 c 4 4 8 0 就需要实现以太网接口的驱动,并实现a d p 协议包的解析。然后 4 内蒙古大学硕1 :学位论文 $ 3 c 4 4 8 0 将解析后的数据发送到c p l d ,由c p l d 实现j t a g 时序,将数据转换成j t a g 协 议支持的数据格式,在通过目标系统的j t a g 实现对目标板c p u 的相应操作。 基于以太网的a r m 仿真器主要由嵌入式处理器$ 3 c 4 4 8 0 、2 片1 m x l 6 b i t 的f l a s h 、2 片4 m x1 6 b i t 的s d r a m 、c p l d 、r t l 8 0 1 9 a s 组成,图2 3 所示为a r m 仿真器的硬件结构 图。 图2 - 3a r m 仿真器硬件结构图 f i g 2 3t h eh a r d w a r es t r u c t u r eo f a r m e m u l a t o r 2 3 仿真器软件设计方案 基于以太网接口的j t a g 仿真器软件设计部分主要包括:u c o s i i 操作系统的移植、l w l p 协议栈的移植、r t l 8 0 1 9 a s 驱动程序的开发、a d p 协议的解析、c p l d 控制的j t a g 协议时 序的实现五大部分。 u c o s i i 和l w l p 的移植以及r t l 8 0 1 9 a s 驱动程序开发的部分主要是为了完成$ 3 c 4 4 8 0 以太网接口的通讯,这部分内容将在第三章详细介绍。 a d p 协议的设计就在为了在调试过程中给调试目标和调试主机之间提供一个可靠的数据 传输保证。a d p 协议主要有三层:数据提供层、通道层、设备驱动层。数据提供层提供两种 5 塑鍪直查堂堡! :堂堡垒苎 不同的服务,一种是调试服务,另一种是完成目标机对主机调试器中c 库函数支持请求服务。 两种数据包格式基本一样,只是在原因代码部分,c 函数库支持协议包的格式将1 6 3 0 位均 作为系统保留位。 通道层协议是a d p 协议的关键协议层,数据提供层将数据包提供给通道层,通道层协议 在a d p 预先定义好的通道上,经过通道层一系列完善的可靠性和错误检测机制,最后在该数据 包前加上4 个字节的头信息,再发送给设备层。这4 个字节的头信息按按传输的顺序分别是:通 道i d 、主机次序号、目标应答次序号、标志位。 设备驱动层协议根据所使用的设备不同而采用不同的协议。因为本文采用的是以太网接 口实现通信,所以采用t c p i p 协议。设备驱动层实现检测错误数据包的功能,如帧数据包的检 测、错误数据长度的检测,通过检测接收c r c 过程是否发生中断。为了避免数据值在传输过程 中出错,设备层协议会将当前数据换码,即先将原始数据与0 x 4 0 相或,所得结果数据值后面再 添加一个特征值( 0 x l b ) ,这样将原始数据转换成一个数据对来传输。例如:原始数据0 x l1 ,先 将0 x 1 1 与0 x 4 0 相或,得n o x 5 1 ,再和0 x l b 组成一个数据对,最后传输的是0 x l b 、0 x 5 1 数据对。 显然特征值0 x l b 自身也要被打包,变成数据对0 x l b 、0 x 5 b 来传输。 通过以上软件的设计,就可以基本实现调试器发出的命令对于开发板的调试控制。 6 内蒙古人学硕十学位论文 第三章$ 3 c 4 4 8 0 以太网接口设计 3 1 $ 3 c 4 4 8 0 以太网接口介绍 $ 3 c 4 4 8 0 是三星公司推出的一款1 6 3 2 位的r i s c 处理器,它在片内集成了a r m 7 t d m i 内核,并集成了丰富的外围功能模块,便于低成本设计嵌入式应用系统。片上集成的主要功 能如下: 在a r m 7 t d m i 基础上增加8 k b 的c a c h e : 在外部扩充存储器控制器( f p e d o s d r a m 控制,片选逻辑) ; l c d 控制器( 最大支持2 5 6 色的d s t n ) ,并带有1 个l c d 专用d m a 通道; 2 个带有握手协议的u a r t ,1 个s i o : 1 个多主的1 2 c 总线控制器; 1 个i i s 总线控制器; 5 个p w m 定时器及1 个内部定时器; 看门狗定时器; 7 1 个通用可编程i o 口,8 个外部中断源; 功耗控制模式:正常、低、休眠和停止; 8 路1 0 位a d c ; 具有日历功能的r t c ( 实时时钟) ; p l l 时钟发生器。 图3 1 给出了s 3 c 4 4 8 0 微处理器体系结构框图。 以太网接口在实际的应用中更是广泛,随着i n t e m e t 技术的快速发展,以太网技术运用到 了我们生活的各个领域,它不仅传输速度相对于其他传输方式更快,而且可实现资源的共享, 可以在同一个局域网内实现不同p c 之间的数据传输,实现了远程调试和监控。因此,开发 $ 3 c 4 4 8 0 处理器的以太网接口是很有必要的事情。 7 内蒙古人学硕 :学位论文 图3 - 1s 3 c 4 4 8 0 微处理器体系结构框图 f i g 3 1t h ea r c h i t e c t u r ed i a g r a mo ft h em i c r o p r o c e s s o ro f $ 3 c 4 4 8 0 3 2 以太网接口硬件结构设计 以太网是由x e r o s 公司开发的一种基带局域网碰撞检测( c s m a c d ) 机制,使用同轴电 缆作为传输介质,数据传输速率达到l o m b s :使用双绞线作为传输介质,数据传输速率达到 1 0 0 m s 。 本文设计的是基于$ 3 c 4 4 8 0 的以太网接口设计,以太网控制器使用的是台湾r e a l t e k 公 司生产的r t l 8 0 1 9 a s 控制器。图3 2 是r t l 8 0 1 9 a s 接口电路。 8 内蒙古大学硕一 :学位论文 图3 - 2r t l 8 0 1 9 a s 接口电路图 f i g 3 2t h ei n t e r f a c ec i r c u i td i a g r a mo f r t l 8 0 1 9 a s 从图3 2 可以看出,r t l 8 0 1 9 a s 的1 0 条地址线s a 0 s a 9 连接到了$ 3 c 4 4 8 0 的a 1 a 1 0 地址线,因此本文是将r t l 8 0 1 9 a s 的地址空间分配到了s 3 c 4 4 8 0 内存的 0 x o a 0 0 0 6 0 0 - 0 x o a 0 0 0 6 3 f 地址范围内,而r t l 8 0 1 9 a s 的实际地址为o x o a 0 0 0 3 0 0 0 x o a 0 0 0 3 l f r t l 8 0 1 9 a s 的i n t 0 连接到了s 3 c 4 4 8 0 的e x i n t l 引脚,由此可知,在程序设计中,r t l s 0 1 9 a s 的中断将会触发$ 3 c 4 4 8 0 的e x i n t l 中断,这将在u c o s i i 的移植部分详细分析。i o c s l 6 b 引脚通过3 0 0 欧姆的电阻接v c c ,这个引脚用于检测使用的是1 6 位还是8 位插槽,通过接 3 0 0 欧姆电阻接到v c c 说明了r t l 8 0 1 9 a s 工作在1 6 位总线模式。j p 引脚接到了v c c ,j p 引脚用于控制r t l 8 0 1 9 a s 是工作于j u m p e r 还是j u m p e r l e s s 模式,当接到高电平时说明 r t l 8 0 1 9 a s - r 作于j u m p e r 模式。在j u m p e r 模式下,网卡的i o 地址和中断由跳线决定; 而使用j u m p e r l e s s 模式时,还需要一片e e p r o m ( 如9 3 c 4 6 ) 来存储网卡的配置信息。 这些信息将在上电时加载到8 0 1 9 的内置r a m 或相关寄存器中。 以太网的物理端口采用了r j 4 5 端口,通过隔离滤波电压器与r t l 8 0 1 9 a s 相连,达到了 9 内蒙古大学硕士学位论文 稳定电压、隔离谐波及保护人身安全的作用。 3 3 以太网接口软件程序开发 3 3 1u c o s i i 操作系统移植 在嵌入式系统领域,有很多实时操作系统可以选择,如嵌入式l i n u x 、w i n d o w sc e 和 v x w o r k s 等大批优秀的实时操作系统。u c o s i i 是j e a nj l a b r o s s e 设计的完整、可移植、可 固化、可剪裁的占先式实时多任务内核,代码绝大部分是用标准c 语言编写的。基于u c o s i i 具有以下优点,本文在$ 3 c 4 4 8 0 以太网接口的开发中使用u c o s i i 操作系统: 1 、u c o s i i 是一个公开源代码的操作系统,代码很短。与一些商用的公开源代码的实时 内核相比,它的源代码清晰易读,结构协调,注释详尽。 2 、u c o s i i 具有可移植性,绝大部分源代码是用c 语言编写的;而与微处理器密切相关 的部分用汇编语言编写,但这一部分内容很少,方便使用者将内核移植到自己的微处理器上。 3 、u c o s i i 是可剪裁的,用户可以根据自己的需要决定使用内核中的多少成分。剪裁可 以通过宏定义来实现,简单易行。 4 、可剥夺性和多任务也是u c o s 。i i 的重要特征,它总是运行处于就绪态的优先级最高 的任务。u c o s i i 可以管理6 4 个任务,用户可以使用其中的5 6 个。 5 、绝大多数u c o s i i 的函数调用和服务的执行时间具有可确定性。u c o s i i 提供了很 多系统服务,例如信号量、互斥型信号量、消息邮箱等。 移植分为处理器移植和编译器移植2 种,处理器移植是把u c o s i i 移植到不同的处理器 上,使其能够在不同的目标平台上运行;编译器移植则是指把u c o s i i 移植到另外一种编译 器上,使其能够符合目标编译器的语法规则,从而让用户获得编译后的目标代码。编译器移 植的出现主要是因为同一种处理器可能会存在多种编译工具( 比如i a r 和a d s ,它们同样是 为a r m 处理器准备的) ,每一种编译工具其语法规则可能稍有不同,这些不同直接影响了 u c o s i i 源码在不同的编译工具下的通用性。这项工作实际上非常简单,只需根据具体的编 译错误进行修改即可,不需要提前了解修改的内容。处理器移植才是移植工作的核心,以下 着重介绍处理器移植方法。 由于u c o s i i 在设计之初就充分考虑了可移植性,所以实现u c o s i i 的处理器移植相对 于其他类型的实时操作系统是比较容易的,只需要修改其中的3 个与处理器相关的源文件即 1 0 内蒙古大学硕士学位论文 司。 一、o s c p u h 在o sc p u h 头文件中,需要完成2 部分工作:定义与编译器相关的数据类型;定义临 界处理函数。 不同的处理器有不同的字长,所以u c o s i i 的移植包括了一系列的数据类型定义以确保 其可移植性。 所谓的临界处理,实际上就是指如何确保某一段代码在执行时不会被任何中断打断,不 能被打断的这段代码称为临界段或者临界区。对于u c o s i i 这样的多任务实时内核来说,临 界处理非常重要。u c o s i i 定义了2 个宏来打开或者关闭中断,这2 个宏分别是: o s _ e x i t _ c r i t i c a l 0 和o s e n t e r _ c r i t i c a l ( ) 。它们的使用方法非常简单,进入临界区 调用o s _ e n t e r _ c r i t i c a l 0 ,离开临界区调用o s _ e x i t _ c r i t i c a l 0 。 同时在o sc p u h 中还用宏o ss t kg r o w t h 定义了堆栈增长方向,这个宏的值为0 时,表明堆栈是从地址向高地址增长的;为l 时,堆栈是从高地址向低地址增长的。a r m 处 理器的堆栈是从上往下增长的,所以这里指定o ss t kg r o w t h 为l 。 二、o s c p u 一h 这个文件中包括两组函数:一组必须实现,另一组只需简单的实现空函数即可。 必须实现的函数只有o s t a s k s t k l n i t 0 ,其他都是钩子函数,这些钩子函数可以嵌入到 u c o s i i 的内部操作中,实现内核级的功能扩展。对于一般的用户来说,我们不需要使用这 些函数。 o s t a s k s t k l n i t 0 函数对于u c o s i i 的启动至关重要。它在系统各任务启动之前就已经建 立好了任务堆栈,u c o s 1 1 只需进行简单的出栈操作即可启动任务,所以o s t a s k s t k l n i t 0 函 数唯一而且必须要做好的就是确保堆栈内的数据被u c o s i i 恢复到寄存器中后任务即启动。 三、o s c p u s o sc p u a s 文件的移植需要对处理器的寄存器进行操作,所以必须用汇编语言来编写。 这个文件的实现集中体现了所要移植到处理器的体系结构和u c o s i i 的移植原理。它包括4 个子函数:o s s t a r t h i g h r d y ( ) 、o s c t x s w ( ) 、o s i n t c t x s w ( ) 、o s t i c k l s r ( ) 。其中难点在于 o s i n t c t x s w ( ) i 垂i 数的实现,因为这个函数的实现与移植者的移植思路以及相关硬件定时器、 中断寄存器的设置有关。 内蒙古人学硕士学位论文 l 、o s s t a r t h i g h r d y ( ) 对于u c o s i i 这样的可剥夺性内核来说,即使在它启动之初,都应该是最高优先级的、 就绪态的任务占据c p u 的使用权。u c o s i i 启动时负责查找哪一个任务最先运行的函数就是 o s s t a r t 0 ,运行期间它只会被调用一次。在o s s t a r t ( ) 函数找到需要运行的任务后,负责把任 务推出堆栈的函数就是o s s t a r t h i g h r d y 0 函数。 2 、o s _ t a s ks w ( ) u c o s i i 的任务切换包括任务级的切换函数和中断级的切换函数。任务级的任务切换过 程非常简单,只需把先前的任务入栈,并将即将运行的任务出栈即可。 3 、o s i n t c t x s w 0 相比任务级的任务切换函数,中断级的任务切换要复杂很多,它涉及处理器模式转换 ( i r q 模式到管理模式) 与公有寄存器资源的保护与访问问题。 4 、o s t i c k i s r 0 该函数是系统时钟节拍中断服务函数,首先要保存处理器寄存器;接着调用o s i n t e n t e r 0 函 数,以保证中断嵌套层数不超过2 5 5 层,如果满足了该条件,则把堆栈指针保存到当前任务的任 务控制块t c b 中:然后给产生中断的设备清中断,重新允许中断;接下来调用o s t i m e t i c k o 来维 持u c o s i i 内部的定时以及调用o s i n t e x i t 0 函数决定是否因为这个中断服务程序的执行,使得 更高优先级的任务就绪。 5 、e n t l _ i s r o 在本设计中由于用到了$ 3 c 4 4 8 0 的外部中断e x i n t l ,因此在这里详细介绍一下 s 3 c 4 4 8 0 的i r q 中断的过程。在以太网接口的设计中,以太网控制器r t l 8 0 1 9 a s 的中断引 脚i r q 2 9 与$ 3 c 4 4 8 0 的e x i n t l 相连,因此r t l 8 0 1 9 a s 引起的各种中断将触发s 3 c 4 4 8 0 的e x i n t l 中断。 首先,s 3 c 4 4 8 0 的中断分为矢量中断和非矢量中断。 a 、矢量中断模式 为了缩短中断模式在进入所需的服务前所需要的中断响应时间,s 3 c 4 4 8 0 提供了一种新 的中断模式矢量中断模式。当多重中断源请求中断时,硬件优先级逻辑会判断哪一个中 断将会被执行,同时,硬件逻辑自动执行由o x l 8 地址到各个中断源向量地址的跳转指令,然 后再由中断源向量进入相应中断处理程序。简单的说,每个中断源对应一个内存地址,只要 在对应地址上设置一条到中断服务程序的跳转指令,c p u 自动跳转到响应的中断处理函数。 和原来的软件实现方式相比,这种方式可显著缩短中断响应时间。 1 2 内蒙古大学硕士学位论文 之所以被称为矢量中断模式,是因为它不需要用程序判断中断源,通过硬件实现直接跳转到 相应i s r 。而非向量中断必须在中断服务程序中判断中断来源,进而跳转到不同的处理程序。 b 、非矢量中断模式 在非向量中断模式下,有两种方式可以使p c 指向相应的中断处理程序。 第一种方法,可以通过对ii s p r j fi s p r 寄存器的分析判断出中断的类型,然后再把p c 指向相应的中断处理程序。其中h a n d l e r x x x 实际上是一段跳转程序,运行这段程序将把 h a n d l e x x x 指向的内容值赋给p c 。由于h a n d l e x x x 所对应的地址中,存放的是每个相应的 i s r 的起始地址,这样就完成了向特定i s r 的调转。这些i s r 地址存放在h a n d l e x x x 指向的 表项中,该表一般定位在r a m 高端,基地址为i s rs t a r t a d d r e s s 。 第二种方法,对于i r q 处理程序可以通过对i c m s t 寄存器的分析来判断中断源的类型, 然后再把p c 指向相应当中断处理程序。 上面提到的r t l 8 0 1 9 a s 发出的中断通过s 3 c 4 4 8 0 响应的过程就是属于矢量中断处理模 式,因为r t l 8 0 1 9 a s 已经通过硬件确定处理s 3 c 4 4 8 0 将处理e x i n t l 中断,不需要 ii s p r fi s p r 再来确定r t l 8 0 1 9 a s 发出的中断的类型。 通常情况下,c p u 内核收到来自中断控制器的m q 中断请求,会在o x 0 0 0 0 0 0 1 8 处执行 一条指令,即bh a n d l e r l r q ,然后我们知道在4 4 b i n i t s 文件中有: h a n d l e r l r qh a n d l e rh a n d l e l r q 其中的h a n d l e r 是一个宏,定义如下: m a c r o $ h a n d l e r l a b e lh a n d l e r $ h a n d l e l a b e l $ h a n d l e r l a b e l s u bs p ,s p ,辨 s t m f ds p ! , r o ) l d rr 0 ,= $ h a n d l e l a b e l l d rr 0 , t o 】 s 仃r 0 , s p ,辫】 l d m f ds p ! , t o ,p c m e n d 该宏的意思是程序跳转蛰 $ h a n d l e r l a b e l 之后再跳转至l j $ h a n d l e l a b e l 。这意味着程序又跳 转到了h a n d l e l r q 处,也就从0 b a r t k 的r o m 空间跳到6 b a n k ( 0 x c 7 觚o + 0 x 1 8 ) 的s d r a m 1 3 内蒙古大学坝上学位论文 空间了,另外,在4 4 b h 文件中有如此定义: # d e f i n ep i s r _ i r q ( 术( u n s i g n e d 车) u s r _ s t a r t a d d r e s s + 0 x18 ) ) 其中的宏i s rs t a r t a d d r e s s 的定义在o p t i o n h 文件中: # d e f i n e i s r s t a r t a d d r e s s0 x c 7 f f f 0 0 这就意味着h a n d l e l r q 和p l s r _ i r q 有着特殊的关系,前者是地址,后者是这个地址上 的内容,也就是说p i s r _ i r q 就可认为是中断服务程序的地址了。在u h a l c 中有这个函数 v o i d u h a l r i n t e r r u p t r e q u e s t l n i t ( ) 用来初始化中断。其中有:p l s r _ i r q = ( u n s i g n e d ) i r q _ h a n d l e r ;l 因此这时程序又跳回了0 b a n k 的r o m 中,即i r q _ h a n d l e r 处,在4 4 b i n i t s 中 有: i r q _ h a n d l e r i m p o r ti s r _ i r q h a n d l e r s t m f ds p ! , r o r 12 ,l r b li s r _ i r q h a n d l e r l d m f ds i a l , t o - r 1 2 ,t r s u b sp c ,l r , 稃4 e x p o r ti r q _ h a n d l e r 从上面的代码我们知道程序又跳到了i s r _ i r q h a n d l e r 处,下面是i s r _ i r q h a n d l e r ( ) i 函数: v o i di s r _ i r q h a n d l e r 0 i n ti n t o f f s e t ; i n t o f f s e t = g e t l s r o f f s e t c l r 0 ;得到中断向量的偏移地址 ( * i n t e r r u p t h a n d l e r s i n t o f f s e t ) 0 ;运行中断服务程序 ) 然而,实际的i s r 是如何和这套极其复杂的中断响应过程发生关系的昵? 这里用 s e t i s r _ i n t e r r u p t ( ) i 函数把用户编写的i s r 设置在中断系统上,也就是把i s r 的函数指针存放到 数组i n t e r r u p t h a n d l e r s 里,有中断请求时g e t l s r o f f s e t c l r 0 会在该数组里找到它的。 也就是说我们可以通过s e t i s r _ i n t e r r u p t o i 函数来和上面的中断响应工程联系起来,比如: s e t l s r _ i n t e r r u p t ( e i n t l _ o f f s e t , i r q e i n t l ,o ) ( 在l i b e m a c c 文件的i n i t l n t ( ) i 垂i 数中) ,这就 是将外部中断1 设置成了本文中用c 编写的i r q e i m l ( ) 中断服务函数,当4 4 8 0 的外部中断 1 ( e x i n t l 脚) 有物理信号时,触发a r m 跳转到外部中断请求处理,然后程序会找对应的 1 4 内蒙古大学硕i 二学位论文 e i n t l 一o f f s e t 来执行i r q - e i n t l 。 3 3 2l w i p 精简协议栈移植 l w i p 协议栈是瑞士计算机科学院开发的一套用于嵌入式系统的开发源代码t c p i p 协议 栈。它可

温馨提示

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

评论

0/150

提交评论