




已阅读5页,还剩82页未读, 继续免费阅读
(计算机应用技术专业论文)tcpip协议族在嵌入式系统中的实现与应用.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
武汉理工大学硕士学位论文 摘要 本文以目前发展较快的一个分支一精简指令集计算机( a r m ,a d v a n c er i s c m a c h i n e s ) 作为介绍重点,对t c p i p 协议族在a r m 7 处理核嵌入式系统中的应 用与实现做了深入研究,并独立编写了适合开发套件的t c p i p 协议栈,实现了 基本的网络应用。 本文在阐述嵌入式系统基本概念和发展现状,指出嵌入式系统的主要发展方 向以及发展前景的基础上,以周立功公司所出的e a s y a r m 2 2 0 0 开发套件为基 础,参阅该套件的技术开发文档,以及t c p i p 协议文档,以实时操作系统u c o s i i 为基础编写出以太网控制芯片r t l s 0 1 9 a s 驱动程序以及t c p i p 协议栈程序。文 章主要分为三大部分: ( 一) 阐述实时操作系统u c o s i i 及该系统在e a s y a r m 2 2 0 0 开发套 件上的移植: ( 二) 介绍t c p i p 协议族的分层以及各个具体的协议,主要介绍各个 协议的功能,所属分层,以及报文格式等; ( 兰) 介绍芯片r 1 衄0 1 9 a s 的寄存器,t c p i p 协议族在开发套件上 的具体实现过程以及主要程序段。这也正是本文的重点和作者 研究的主要成果和创新所在。 值得一提的是,本文把t c p f l p 协议栈的实现过程层次化,提高了协议栈的 移植性,把该协议栈移植到其他的硬件上只需更改少量和底层硬件联系的文件, 上层的程序无需修改。各层次间的数据传递均依靠实时操作系统u c o s i i 的信号 量和消息队列。协议栈全部采用汇编语言和c 语言开发,编译成功后可写入开 发板上的f i a s h 中,利用b o o t l o a d 引导执行。 t c p i p 协议族在嵌入式系统的实现可以大量应用到工业生产以及普通生活 中,可使设备轻易增加网络接口,特别是随着i p v 6 的推广应用以及现代生活的 飞速发展,本文所阐述的实现就有着更为重大的意义。例如可以推动家电接入 i n t e m e t 的进程等。 关键字:嵌入式系统、a r m 、t c p i p 协议栈、实时操作系统 武汉理工大学硕士学位论文 a b s t r a c t t h i s p a p e rp r e s e n t s t h e a r m ( a d v a n c er i s cm a c h i n e s ) e m p h a t i c a l l yw h i c hd e v e l o p e dv e r yq u i c k l y , o f f e r i n gd e e pr e s e a r c h e so n t h ea p p l i c a t i o na n dr e a l i z a t i o no fh o wt c p b pp r o t o c o lf a m i l yi su s e di n a r m 7m i c r op r o c e s s o rc o r e t h i s p a p e r d e s c r i b e st h eb a s i c c o n c e p t a n d d e v e l o p m e n t o f e m b e d d e ds y s t e ma tt h ep r e s e n tt i m e ,i d e n t i f i e st h em a j o rd e v e l o p m e n t a l d i r e c t i o na n da p p l i c a t i o nf o r e g r o u n d b a s e do ne a s ya r m 2 2 0 0p l a t f o r mo fz h o ul ig o n gc o m p a n ya n d t h et e c h n o l o g yd o c u m e n to fi t ,ip r o g r a mt h ed r i v e ro fe t h e r n e tc o n t r o l c h i p r t l s 0 1 9 a s a n dt c p f l pp r o t o c o ls t a c k t h e p a p e r c o u l d b e s e p a r a t e di n t ot h r e ep a r t s : ( 1 ) u c o s i ir e a l t i m eo p e r a t i o ns y s t e m a n d m i g r a t i n g i n e a s y a r m 2 2 0 0p l a t f o r m ( 2 ) i n t r o d u c t i o no ft c p i pp r o t o c o ls t a c k ( 3 ) i n t r o d u c t i o no ft h er e g i s t e r sw h i c hb e l o n gt oe t h e m e tc o n t r o l c h i p - r t l 8 0 1 9 a s ,t h i ss e c t i o n i sa l s ot h e e m p h a s i so ft h ep a p e r , i t c o n t a i n st h em a i np r o g r a ms e c t i o n ,a n dt h et o t a lp r o c e s so fa c t u a l i z i n g t c w i p p r o t o c o lf a m i l yi n t op l a t f o r m e s p e c i a l l yi n t h i sp a p e r , im a k et h ei m p l e m e n t a t i o np r o c e d u r eo f t c p i pp r o t o c o ls t a c kh i e r a r c h i c a l i nd o i n gt h i s ,ii m p r o v et h em i g r a t i o n 武汉理工大学硕士学位论文 a b i l i t y w h e nim i g r a t et h i sp r o t o c o ls t a c k t oo t h e rh a r d w a r e ,s e l d o m c h a n g e sn e e dt ob em a d ei ns o m ef i l e s ,w h i c hh a v ea f f i l i a t i o nw i t ht h e b o t t o mh a r d w a r e ,a n dt h et o p p e rp r o g r a m sd o n tn e e da n ym o d i f i c a t i o n s d a t at r a n s f e r e n c eb e t w e e nd i f f e r e n tl a y e r sd e p e n d so nt h es e m a p h o r ea n d m e s s a g eq u e u ei nt h er t o su c o s i i id e v e l o pt h ep r o t o c o ls t a c ku s i n g a s s e m b l el a n g u a g ea n dcl a n g u a g e t h ep r o g r a mc a nb ew r i t t e nt ot h e f l a s ho fb r e a d b o a r d ,w h i c hc a nb eb o o t e db yb o o t l o a d e r t h ea c t u a l i z a t i o no ft c p i p p r o t o c o ls t a c ki nt h ee m b e d d e ds y s t e m c a nb ea p p l i e di ni n d u s t r yp r o d u c t i o na n do u rd a i l yl i f ep l e n t i f u l n e t w o r k i n t e r f a c e sc a nb ea d d e dt oa n ye q u i p m e n te a s i l y e s p e c i a l l y , w i t ht h e s p r e a do fi p v 6a n dt h er a p i dd e v e l o p m e n to fm o d e ml i f e ,t h e r e s u l t so f t h i sp a p e rh a v em o r es i g n i f i c a n tm e a n i n g f o re x a m p l e ,w ec a na c c e l e r a t e t h ec o u r s eo fh o u s e h o l da p p l i a n c e sc o n n e c t i n gw i t hi n t e r n e t k e yw o r d s : e m b e d d e ds y s t e m ,a r m ( a d v a n c er i s cm a c h i n e s ) , t c p i pp r o t o c o l ,r t o s ( r e a lt i m eo p e r a t i n gs y s t e m ) 武汉理工大学硕士学位论文 第一章绪论 1 1 嵌入式系统的简介 嵌入式系统通常指操作系统和功能软件集成予计算机硬件系统之中所 构成的应用系统,是将系统的应用软件与系统的硬件一体化。嵌入式系统 具有软件代码小,高度自动化,响应速度快等特点,特别适合于要求实对 的和多任务的体系。 经过几十年的发展,嵌入式系统已经很大程度的改变了人们的生活、工 作和娱乐方式。嵌入式系统具有无数的种类,每类都具有独特的个性。尽 管嵌入式系统已经得到广泛的应用,但要精确定义嵌入式系统的概念却不 容易,以下首先介绍嵌入式系统的概念。 1 1 1 嵌入式系统的概念 目前,对嵌入式系统的定义多种多样,但没有一种定义是全面的。下面 给出两种比较合理的定义: 嵌入式系统:以应用为中心、以计算机技术为基础、软件硬件 可裁剪、适合应用系统对功能、可靠性、成本、体积、功耗严 格要求的专用计算机系统。 嵌入式系统:嵌入式系统是设计完成复杂功能的硬件和软件, 并使其紧密耦合在一起的计算机系统。嵌入式反映了这些系统 通常是更大系统中的一个完整的部分,称为嵌入式系统。嵌入 的系统中可以共存多个嵌入式系统。 两种定义的出发角度不同,一个是从技术的角度来定义的,另一个是从 系统的角度来定义的。事实上,在大多数情况下,嵌入式系统是真正的被 嵌入,即它们是“系统中的系统”。它们不能够或没有自身的功能。例如, 数字机顶盒d s t 中的数字音频,视频解码系统是d s t 的一个完整部分,它 又是一个嵌入式系统。某些情况下,嵌入式系统在功能上是独立的系统。 例如网络路由器是独立的嵌入式系统。它由特殊的通信处理器、内存、许 多网络端口以及实现包的路由算法的特殊软件组成。 1 1 2 嵌入式系统的未来 在2 0 世纪9 0 年代,嵌入式系统通常是很简单的且具有很长的产品生命 周期的自主设备,但是进入二十一世纪以来,嵌入式产品经历了巨大的变 革。网络化、自动化和自组织能力将是嵌入式系统的未来发展方向。 随着后p c 时代的来开缶,基于网络通信和实时多任务并行处理的嵌入式 高端应用将会越来越广泛。硬件上采用3 2 位或6 4 位高性能处理器,在软 件上嵌入了实时操作系统,具有功能多样、集成度高、通信网络化、开发 武汉理工大学硕士学位论文 快捷及成本低廉特点的嵌入式系统,在众多的电子控制和网络通信系统方 面都有着广泛的应用,并将是未来电子产品首选的最佳解决方案。 1 2 嵌入式处理器 1 2 1 简介 普通个人计算机中的处理器是通用目的的处理器。它们的设计功能非常 丰富,因为这些处理器提供全部的特性和广泛的功能,故可用于各种应用 中。使用这些通用处理器的系统有大量的应用程序资源。例如,现代处理 器具有内置的内存管理度单元( m m u ) ,提供内存保护和多任务能力的通 用目的的操作系统。这些通用处理器具有先进的高速缓存逻辑。许多处理 器具有执行快速浮点运算的内置数字协处理器。这些处理器提供接口,支 持各种各样的外部设备。这些处理器能源消耗大,产生的热量高,尺寸也 大。这也就意味着这些处理器的制造成本昂贵。然而在早期,嵌入式系统 通常采用通用处理器构造。 近些年来,随着大量先进的微处理器制造技术的发展,越来越多的嵌入 式系统用嵌入式处理器,而不是用通用处理器。这些嵌入式处理器是为完 成特殊的应用而设计的特殊目的处理器。这些嵌入式处理器大致可以分为 四大类:嵌入式微处理器、嵌入式微控制器、嵌入式d s p ( d i g i t a ls i g n a l p r o c e s s o r ) 处理器、嵌入式片上系统。 1 2 2 分类 嵌入式微处理器( e m b e d c dm i c r o p r o c e s s o ru n i t ,e m p u ) 嵌入式微处理器的基础是通用计算机中的c p u 。在应用中,将微处理 器装配在专门主机的电路板上,只保留和嵌入式应用相关的母板功能,这 样可以大幅度减少系统体积和功耗。和通用处理器相比,嵌入式微处理器 具有体积小、重量轻、成本低、可靠性高的优点,但是在电路板上必须包 括r o m 、r a m 、总线接口、各种外设等器件,从而降低了系统的可靠性, 技术保密性也较差。嵌入式微处理器及其存储器、总线、外设等安装在一 块电路板上,称为单板计算机。 嵌入式微处理器目前主要有a m l 8 6 8 8 、3 8 6 e x 、s c - - 4 0 0 、p o w e r p c 、 6 8 0 0 0 、m i p s 、a r m 系列等。 嵌入式徽控制器( m i c r o c o n t r o l l e ru n i t ,m c u ) 嵌入式微控制器又称为单片机,就是将整个计算机系统集成到一块芯片 中,嵌入式微控制器一般以某一种微处理器内核为核心,芯片内部集成 r o m e p r o m 、r a m 、总线、总线逻辑、定时,记数器、w a t c h d o g 、f o 、 串行口、脉宽调制输出、a d 、d a 、f l a s hr a m 、e e p r o m 等各种必要功 能和外设。为适合不同的应用需求,一般一个系列的单片机具有多种衍生 产品,每种衍生产品的内核都是一样的,不同的是存储器和外设的配置及 封装。 武汉理工大学硕士学位论文 和嵌入式微处理器相比,微控制器的最大特点就是单片化,体积大大减 小,从而使功耗和成本下降、可靠性提高。微控制器是目前嵌入式系统工 业的主流。 嵌入式微控制器目前的品种和数量最多,比较有代表性的通用系列包括 8 0 5 1 、p 5 1 x a ,m c s 一2 5 1 , m c s 一9 6 1 9 6 2 9 6 ,c 1 6 6 1 6 7 , m c 6 8 h c 0 5 1 1 1 2 1 6 、6 8 3 0 0 、数目众多a r m 芯片等。目前m c u 占嵌入式 系统约为7 0 的市场份额。 嵌入式d s p 处理器( e m b e d e d d i g i t a ls i g n a lp r o c e s s o r , e d s p ) d s p 处理器对系统结构和指令进行了特殊设计,使其适合于执行d s p 算法,编译效率较高,指令执行速度也较高。在数字滤波、f f t ( 快速傅里 叶变换) 、谱分析等方面d s p 算法正在大量进入嵌入式领域,d s p 应用正 从在通用单片机种以普通指令实现d s p 功能,过渡到采用嵌入式d s p 处理 器。 嵌入式片上系统( s y s t e mo nc h i p ) 随着e d i ( 电子数据交换) 的推广和v l s i ( 超大规模集成电路) 设计 的普及化及半导体工艺的迅速发展,在一个硅片上实现一个更为复杂的系 统的时代已来l 这就是s y s t e mo nc h i p ( s o c ) 。各种通用处理器内核将 作为s o c 设计公司的标准库,和许多其他嵌入式系统外设一样,成为v l s i 设计中一种标准的器件,用标准的v h d l ( 硬件描述语言) 等语言描述, 存储在器件库中。用户只需要定义出其整个应用系统,仿真通过后就可以 将设计图交给半导体工厂制作样品。这样除去个别无法集成的器件以外。 整个嵌入式系统的大部分均可以集成到一块或几块芯片中去,应用系统电 路板将变得很简洁,这对于减少体积、降低功耗、提高可靠性非常有利。 s o c 可以分为通用和专用两种。通用系列包括i n f i n e o n 的t r i c o r e , m o t o r o l a 的m c o r e ,某些a r m 系列器件,e c h e l o n 和m o t o r o l a 联合研制 的n e u r o n 芯片等。专用s o c 一般专用于某个或某类系统中,不为一般用 户所知。 1 3 嵌入式实时操作系统 嵌入式实时操作系统目前得到广泛的应用,尤其在功熊复杂、系统庞 大的嵌入式应用中显得越来越重要。 嵌入式实时操作系统提高了系统的可靠性。在控制系统中,出于安全 方面的考虑,要求系统不能崩溃,而且还要有自愈能力。这不仅要求在硬 件设计方面提高系统的可靠性和抗干扰性,而且也要求在软件设计方面提 高系统的抗干扰性,尽可能地减少安全漏洞和不可靠隐患。实时操作系统 的引入大大减少了干扰,使得干扰只能引起若干个进程中的一个被破坏, 并可通过系统监控进程对其进行修复。同时,嵌入式实时操作系统提高了 开发效率,缩短了开发周期。在嵌入式实时操作系统环境下,开发一个复 杂的应用程序,通常可以按照软件工程中的解耦原则将整个程序分解成多 个任务模块。而且嵌入式实时操作系统充分发挥了3 2 位c p u 的多任务潜 力。 而随着嵌入式系统应用的发展,嵌入式实时操作系统有了长足的发展, 现在有着多个公司发布了嵌入式实时操作系统。例如:嵌入式l i n u x 、w i n 武汉理工大学硕士学位论文 c e 、v x w o r x 、n u c l e u s 、u c o s f l 等都可供选用。 1 4a 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 处理器、相关技术 和软件。a r m 公司的处理器具有性能高、成本低和能耗低的特点,适用于 多种领域,比如嵌入式控制、消费教育类多媒体、d s p 和移动应用等。 a r m 将其技术授权给世界上许多半导体、软件和o e m 厂商,每个厂 商得到的都是一套独一无二的a r m 相关技术及服务,利用这种合伙关系, a r m 很快成为许多全球性r i s c 标准的缔造者。 a r m 的设计实现了非常小但高性能的结构。a r m 是精简指令集计算机, 因为它集成了非常典型的r i s c 结构特性: 一个大的、统一的寄存器文件: 加载,存储结构,数据处理的操作只针对寄存器的内容,而不直 接对存储器进行操作; 简单的寻址模式,所有加载存储的地址都只由寄存器的内容和 指令域决定; 统一和固定长度的指令域,简化了指令的译码。 此外,a r m 体系结构还提供: 每一条数据处理指令都对算术逻辑单元( a 【u ) 和移位器进行 控制,以实现对刖刖和移位器的最大利用; 地址自动增加和自动减少的寻址模式实现了程序循环的优化; 多寄存器加载和存储指令实现了最大数据吞吐量; 所有指令的条件执行实现了最快速的代码执行。 这些在基本r i s c 结构上增强的特性使a r m 处理器在高性能、低代码 规模、低功耗和小的硅片尺寸方面取得了良好的平衡。 a r m 公司开发了很多系列的a r m 处理器,目前最新的系列是a r m l l 。 然而应用较多的是a r m 7 系列、a r m 9 系列、a r m 9 e 系列和a r m i o 系列 以及s e c u r c o r e 系列和i n t e l 的s t r o n g a r m 、x s c a l e 系列。 1 a r m 7 系列 a r m 7 系列包括a r m 7 t d m i 、a r m 7 t d m i s 、带有高速缓存处理器 宏单元的a r m 7 2 0 t 和扩充了j a z e l l e 的a r m 7 e j - - s 。该系列处理器提高 t h u m b1 6 位压缩指令集和e m b e d d e d l c ej t a g 软件调试方式,适合应用于 更大规模的s o c 设计中。其中a r m 7 2 0 t 高速缓存处理宏单元还提供了8 1 0 3 缓存、读缓存和具有内存管理功能的高性能处理器,支持l i n u x 、s y m b i a n o s 和w 矾c e 等操作系统。 a r m 7 系列广泛应用于多媒体和嵌入式设备,包括i n t e r n e t 设各、网络 和调制解调器设各,以及移动电话、p d a 等无线设备。 2 a r m 9 系列 a r m 9 系列有a r m 9 t d i m i 、a r m 9 2 0 t 和带有高速缓存处理器宏单元 的a r m 9 4 0 t 。所有的a r m 9 系列处理器都具有t h u m b 压缩指令集和基于 e m b e d d e d l c ej t a g 的软件调试方式。a r m 9 系列兼容a r m 7 系列,而且 能够比a r m 7 系列进行更加灵活的设计。 4 武汉理工大学硕士学位论文 a r m 9 系列主要应用于引擎管理、仪器仪表、安全系统、机顶盒、高 端打印机、p d a , 网络电脑以及带有m p 3 音频和m p e g 4 视频多媒体格式 的智能电话中。 3 a r m 9 e 系列 a r m 9 e 系列为综合处理器。该系列强化了数字信号处理( d s p ) 功能, 可应用于需要d s p 与微控制器结合使用的情况。 4 a r m l 0 系列 a r m l 0 系列其核心在于使用向量浮点( v f p ) 单元v f p l 0 提供高性能 的浮点解决方案,从而极大提高了处理器的整型和浮点运算性能,为用户 界面的2 d 和3 d 图形引擎应用打下了基础,如视频游戏机和高性能打印机 等。 5 s e c u r c o r e 系列 该系列处理器主要针对新兴的安全市场,以一种全新的安全处理器设 计为智能卡和其他安全i c 开发提供独特的3 2 系统设计,并具有特定的反 伪造方法,从而有助于防止对硬件和软件的盗版。 6 s t r o n g a r m 和x s c a l c 系列 s t r o n g a r m 处理器将i n t e l 处理器技术和a r m 体系结构融为一体,致 力于为手提式通信和电子类设备提供理想的解决方案。x s c a l c 微处理器结 构则提供全性能、高性价比、低功耗的解决方案。 武汉理工大学硕士学位论文 第二章移植u c o s ii 到a r m 7 2 1u c o s ii 简介 2 1 1 概述 u c o s i i 是著名的、源码公开的实时内核,可用于各类8 位、1 6 位和 3 2 位的单片机或d s p 。从u c o s 算起,该内核已有1 0 多年的应用史,在 诸多领域得到了广泛的应用。 u c o s i i 是一个完整的、可移植、可固化、可裁剪的占先式实时多任务 内核。u c o s i i 是用a n s ic 语言编写,包含一小部分汇编代码,使之可以 供不同架构的微处理器使用。 2 1 2u c o s i i 的特点 提供源代码:免费提供u d o s 的全部源代码。 可移植性( p o r t a b l e ) :u c o s i i 的源代码绝大部分是使用移植性很强的a n s i c 写的,与微处理器硬件相关的部分是使用汇编语言写的。汇编语言写的 部分已经压缩到最低的限度,以使u c o s i i 便于移植到其它微处理器上。 可固化( r o m r 髓b l e ) :只要具备合适的软硬件工具,就可以将u c o s i i 嵌 入到产品中成为产品的一部分。 可裁剪( s e a f a b l e ) = u c o s i i 使用条件编译实现可裁剪,用户程序可以只编 译自己需要的功能,而不编译不需要的功能,以减少u c o s i i 对代码空间 和数据空间的占用。 可剥夺( p r e e m p t i v e ) :u c o s i i 使完全可剥夺型的实时内核,u c o s i i 总是 运行就绪条件下优先级最高的任务。 多任务:u c o s i i 可以管理6 4 个任务,然而,u c o s i i 建议保留8 个给 u c o s i i 。这样,留给用户的应用程序最多可有5 6 个任务。 可确定性:绝大多数u c 0 s i i 的函数调用和服务的执行时间具有确定性, 也就是说,用户总是能知道u c o s i i 的函数调用与服务执行了多长时问。 任务栈:u c ,0 s i i 的每个任务都有自己单独的栈,使用u c o s i i 的栈空间校 验函数,可确定每个任务到底需要多少栈空间。 系统服务:u c o s i i 提过很多系统服务,例如信号量、互斥信号量、时间标 志、消息邮箱、消息队列、块大小固定的内存的申请与释放及时间管理函 数等。 中断管理:中断可以使正在执行的任务暂时挂起,如果优先级更高的任务 被中断唤醒,则更高优先级的任务在中断嵌套全部退出后立即执行,中断 嵌套层数可达2 5 5 层。 稳定性与可靠性:u c o s i i 是基于u c o s 的,u c o s 自1 9 9 2 年以来有数百 个商业应用。u c o s i i 与u c o s 的内核是一样的,只是提供了更多的功能。 6 武汉理“【大学硕士学位论文 2 2 移植规划 2 2 1 编译器的选择 目前,针对a r m 处理器核的c 语言编译器有很多,如s d t 、a d s 、i a r 、 t a s k i n g 和g c c 等。在国内最流行的是s d t 、a d s 和g c c 。s d t 和a d s 均为a r m 公司自己开发,a d s 为s d t 的升级版,鉴于以后a r m 公司不 再支持s d t ,所以不选择s d t 。g c c 虽然支持广泛,很多开发套件使用它 作为编译器,但与a d s 比较其编译效率较低,这对充分发挥芯片性能很不 利,所以,权衡后最终确定使用a d s 编译程序和调试。 2 2 2 任务模式的取舍 a r m 7 处理器核具有用户、系统、管理、中止、未定义、中断和快中 断七种模式,其中除用户模式外其它均为特权模式。管理、中止、未定义、 中断和快中断与相应异常相联系,任务使用这些模式不太合适。而系统模 式除了是特权模式外,其它与用户模式一样,因而可选的给任务使用的模 式只有用户模式和系统模式。为了尽量减少任务代码错误对整个程序的影 响,缺省的任务模式定为用户模式,可选为系统模式,同时提供接口使任 务可以在这两种模式问切换。 2 2 3 支持的指令集 带t 变量的a r m 7 处理器核具有两个指令集,标准3 2 位a r m 指令集 和1 6 位t h u m b 指令集,两种指令集有不同的应用范围。为了最大限度地 支持芯片的特性,任务应当可以使用任意一个指令集并可以自由切换,而 且不同的任务应当可以使用不同的指令集,移植代码应该实现这一点。 2 3 移植u o 0 si l 2 3 1 概述 所谓移植,就是使一个实时内核能够在其他的微处理器或微控制器上 运行。u o f o s i l 的源代码绝大部分是使用移植性很强的a n s ic 写的,与微 处理器硬件相关的部分是使用汇编语言写的。汇编语言写的部分已经压缩 到最低的限度,以使u c o s l l 便于移植到其它微处理器上。 要使u c o s 能正常运行,处理器必须满足以下的要求: 处理器的c 编译器能产生可重入型代码; 处理器支持中断,并且能产生定时中断; 用c 语言就可以开关中断: 武汉理工大学硕士学位论文 处理器能支持一定数量的数据存储硬件堆栈; 处理器有将堆栈指针以及其他c p u 寄存器的内容读出、并存储 到堆栈或内存中去的指令。 移植u c o s l l 只需要更改那些和硬件联系的文件,而大部分源代码可 以保持不变。具体更改项如下表所示。 移植内容类型所属文件描述 b o o u e a n 、l n r 8 u 、l n r 8 s 、l n t l 6 u 、 l n t l 6 s 、l n l 3 2 u 、n r 3 2 s 、黠3 2 、f p 6 4 数据类型 o sc p u h 与编译器无关的数据类 型 o ss t k数据类型0 sc p u h堆栈的数据类型 o s e n t e r _ c r m c a l 0 和 宏o sc p u h开关中断的代码 o s _ e x i t _ c r i t i c a l 0 o s s t k g r o w t h 常量o sc p u h 定义堆栈的增长方向 o s _ t a s ks w函数o sc p u h 任务切换时执行的代码 o s t a s k s t k l n i t 0 函数 o sc p uc c 任务堆栈初始化函数 o s i n i t h o o k b c g i n 0 、o s l n i t h o o k e n d 0 、 函数 0 sc p uc c u c o s i i 在执行某些 o s t a s k c r e a t h o o k 0 、o s t a s k d e l h o o k 0 、 操作时调用的用户 o s t a s k s w h o o k 0 、o s t a s k s t a t h o o k 0 、 函数,一般为空 o s t c b l n i t h o o k 0 、o s t i m e t i c k h o o k 0 、 o s t a s k l d l e h o o k 0 o s s t a r t h i g h r d y 0 函数 o sc p ua s 进入多任务环境时运行 优先级最高的任务 o s i n t c t x s w 0 函数o sc p ua s中断退出时的任务切换 函数 o s t i c k l s r 0 中断服务程序 0 sc p ua s 时钟节拍中断服务程序 u c o s i i 的移植主要时修改以上所列的三个文件中的对应项。 2 3 2 关于头文件i n c l u d e s h 和c o n f i g h u c o s l i 要求所有c 的文件都要包含头文件i n c l u d e s h ,这样使得用户 项目中的每个c 文件不用分别去考虑它实际上需要哪些头文件。使用 i n c l u d e s h 的缺点使它可能会包含一些实际上不相关的头文件。这意味着每 个文件的编译时间可能会增加,但可以增加代码的可移植性。 在本文的移植中另外增加了一个头文件c o n f i g h 。要求所有用户程序必 须包含c o n f i g h 和特定的头文件和配置项。而u c o si i 的系统文件依然只 是包含i n c l u d e s h ,即u c ,0 sn 的文件系统完全不必改动。所有的配置改变 包括头文件的增减均在c o n f i g h 中进行,而i n c l u d e s h 定下来后不必改动 ( u c o si i 的系统文件需要包含的东西是固定的) 。这样,u c ,o si i 的系统 文件需要编译的次数大大减少,编译时间随之减少。 8 武汉理工大学硕士学位论文 1 不依赖于编译的数据类型 u c o si i 不使用c 语言中的s h o r t 、i n t 等数据类型的定义,因为它们与 处理器类型相关,隐含着不可移植性。代之以移植性强的整数数据类型, 这样,即直观又可移植。因此就需要移植这些定义。根据a d s 编译器的特 性,这些代码如程序清单2 1 所示,它们在文件o s _ c p u h 中定义。 程序清单2 1 不依赖于编译器的数据类型: t y p e d e f u n s i g n e dc h a r b o o l e a n ; t y p e d e fu n s i g n e dc h a r i n t 8 u ; t y p e d e f s i g n e dc h a ri n t s s : t y p e d e fu n s i g n e ds h o r t i n t l 6 u ; t y p e d e fs i g n e ds h o r t i n t l 6 s : t y p e d e fu n s i g n e di n t i n t 3 2 u : t y p e d e f s i g n e di n ti n t 3 2 s ; t y p e d e f f l o a tf p 3 2 ; t y p e d e f d o u b l e f p 6 4 ; t y p e d e f i n t 3 2 u o s _ s t k : # d e f i n e # d e f i n e # d e f i n e # d e f i n e # d e f i n e # d e f i n e b y t e u b y t e w o r d u w o r d l o n g u l o n g d r t 8 s i n t 8 u 孙r r l 6 s i n t l 6 u 帅2 s l n r 3 2 u 2 使用软中断s w i 作底层接口 a r m 处理器核有2 个指令集,用户任务还可以有两种处理器模式:用 户模式和系统模式,组合起来具有4 种方式,各种方式对系统资源有不闸 的访问控制权限。同时,移植需要兼顾把u c o si i 内核事先固化在f l a s h 中,事后任务从别的地方调入应用。为了使底层接口函数与处理器状态无 关,同时使任务调用相应的函数不需要知道函数位置。本文中的移植使用 了软中断指令s w i 作为底层接口,使用不同的功能号区分不同的函数,同 时预留挂接u c 0 si i 系统服务的函数的接口。软中断功能号分配如表2 1 所列。 武汉理工大学硕士学位论文 表2 1软中断功能号分配 功能号接口函数简述 0 x 0 0 v o i do s _ t a s k _ s w ( v o i d )任务级任务切换函数 0 x 0 1 _ o s s t a r t h i g h r d y ( v o i d ) 运行优先级最高的任务,由 o s s t a r t h i g h r d y 产生 0 x 0 2v o i do s _ e n t e r _ c r i t i c a l ( v o i d ) 关中断 0 x 0 3v o i do se x i tc r i t i c a l ( v o i d )开中断 o x 4 0 v o i d + g e t o s f u n c t i o n a d d r ( i n tl n d e 心 获取系统服务函数入口( 可选) 0 x 4 1 v o i d + g c t u d r f u n c f i o n a d d r ( i n ti n d e x ) 获取自定义服务函数入口( 可选) 0 x 4 2 v o i do s i s r b e g i n ( v o i d )中断开始处理( 可选) 0 x 4 3i n to s l s r b n e e d s w a p ( v o i d ) 判断中断退出是否需要切换( 可选) 0 x 8 0v o i dc h a n g e t o s y s m o d e ( v o i d ) 任务切换到系统模式 o x 8 1v o i dc h a n g e t o u s r m o d e ( v o i m 任务切换到用户模式 0 x 8 2v o i dt a s k l s a r m ( i n t s up r i o ) 任务代码是a r m 代码 0 x 8 3 v o i dt a s k s t h u m b ( i n t 8 up r i 0 ) 任务代码是t h u m b 代码 用软件中断作为操作系统的底层接口就需要在c 语言中使用s w i 指令。 在a d s 中,有一个关键字s w i ,用它声明一个不存在的函数,调用这个 函数就在调用这个函数的地方插入一条s w i 指令,并且可以指定功能号, 同时,这个函数也可以有参数和返回值,其传递规则同一般函数。以下的 程序清单为本文移植定义的s w i 函数,代码在o sh 程序文件o s h s w i ( 0 x o o ) v o i do s _ t a s k _ s w ( v o i m : s w i ( 0 x 0 1 ) v o i d0 s s t a n h i g h r d y ( v o i d ) ; s w i ( o x 0 2 ) v o i do s _ e n t e r _ c r i t i c a l ( v o i m ; s w i ( 0 x 0 3 ) v o i do s _ e x i t _ c r l t i c a l ( v o i 锄; s w i ( 0 x 4 0 ) s w i ( 0 x 4 1 ) s w i ( 0 x 4 2 ) s w i ( 0 x 4 3 ) s w i ( 0 x s 0 ) s w i ( o x 8 1 ) - s w i ( 0 x 8 2 ) s w i ( 0 x 8 3 ) v o i d + g e t o s f u n e t i o n a d d r ( i n ti n d e x ) : v o i d + g e t u d r f u n c t i o n a d d r ( i n ti n d e x ) ; v o i do s i s r b e g i n ( v o i d ) : i n to s i s r b n e e d s w a p f v o i d ) : v o i dc h a n g e t o s y s m o d e ( v o i d l ; v o i dc h a n g e t o u s r m 0 d e o i d ) ; v o i dt a s k l s a r m ( i n t 8 up r i o ) ; v o i d1 a s k s 删m b ( i n t s up r i o ) ; 系统默认是不支持可选的四个函数。如果需要这个功能,只需要在 c o n f i g h 中包含“带i n c l u d e “i n c l u d e s h ”一句的前面定义o s s e l fe n 为 1 即可。 3 o s _ s t k _ g r o w t h u c 0 si i 使用结构常量o ss t k _ g r o w t h 中指定堆栈的生长方式 嚣o ss t k _ g r o w t h 为0 表示堆栈从下往上增长。 置o s _ s t k _ g r o w t h 为1 表示堆栈从上往下增长。 】0 武汉理工大学硕士学位论文 虽然a r m 处理器核对于两种方式均支持,但a d s 的c 语言编译器仅 支持一种方式,即从上往下增长,并且必须是满递减堆栈,所以必须置 o s s t kg r o w t h 为1 。 2 3 4 编写o s _ c p u _ c c 文件 1 任务堆栈初始化函数o s i h s k s t k i n i t 0 在编写此函数之前,必须先确定任务的堆栈结构。任务的堆栈结构与 c p u 的体系结构、编译器有着密切的关系。本文移植的堆栈是满递减堆栈, 寄存器的顺序是首先是p c 寄存器然后是l r 、r 1 2 、r 1 1 直到r 0 ,然后是 c p s r ,最后是全局变量中断计数器o s e n t e r s u m 。o s e n t e r s u m 用来保存关 中断的次数,这样关中断和开中断就可以嵌套了。在调用 o s _ e x i t _ c r i t i c a l 0 时,它的值减少,并且仅在值为0 时开中断e 每个任 务都有独立的o s e n t e r s u m ,在任务切换时
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 统编版五年级语文上册期中拔尖测评卷(含答案)
- 广西壮族自治区柳州市2024-2025学年五年级下册期末考试语文试卷(有答案)
- 北师大版五年级上册数学期中检测卷(无答案)
- 空调消防改造合同范本
- 房租合同范本电子档
- 社区摄影基础知识培训课件
- 上门讨要赔偿合同范本
- 店面出租消防合同范本
- 沥青储罐安装合同范本
- 食品原料oem合同范本
- 园区消防安全联动制度
- 《慈善法》知识竞赛题库与的答案(完整版)
- 《专业导论》课程教学大纲
- 初中必背古诗文138首
- 奉化区地图宁波市奉化区乡镇街道地图高清矢量可填充编辑地图模板
- 变电站巡视检查项目记录表
- 光伏发电技术项目投标书(技术标)
- (正式版)HGT 6276-2024 双酚F型环氧树脂
- Q-GDW1799.2-2013-电力安全工作规程-线路部分
- (新)外研版初中英语语法(表格式)网络结构图
- 油脂制取与加工工艺学课件
评论
0/150
提交评论