(计算机应用技术专业论文)uclinux在phlips+lpc2210微处理器上的移植和应用.pdf_第1页
(计算机应用技术专业论文)uclinux在phlips+lpc2210微处理器上的移植和应用.pdf_第2页
(计算机应用技术专业论文)uclinux在phlips+lpc2210微处理器上的移植和应用.pdf_第3页
(计算机应用技术专业论文)uclinux在phlips+lpc2210微处理器上的移植和应用.pdf_第4页
(计算机应用技术专业论文)uclinux在phlips+lpc2210微处理器上的移植和应用.pdf_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

攘要 摘要 由予a r m 技术的迅速发展,使得3 2 位a r m 处理器在嵌入式应用领域获德 了越来越广泛的应用。p h l i p s 公司设计生产的a r m 芯片l p c 2 2 1 0 集成了a d c 、 p w m 等丰富的资源,而且其有功耗低、工作温度范围宽、价能价格比高等特点, 特别适合于王业控制、仪器仪表等各个应用领域。嵌入式操作系统u c l i n u x 是 l i n u x 的一个版本,它专门针对没有内存管理单元的c p u ,并且专为嵌入式系统 做了许多小型化的工作。由于它的内核小巧稳定,可移植性好,已经被广泛移植 到了众多的3 2 位微处理器。 本文研究的主要内容是u c l i n u x 在l p c 2 2 1 0 处理器上的移植和应用。通过研究 l p c 2 2 1 0 的硬件结构和特点,设计了一个能够运行u c l i n u x 的硬件平台:通过分析 u c l i n u x 的文件结构,给出了u c l i n u x 针对l p c 2 2 1 0 处理器的移植办法;并通过分 析u c l i n u x 的启动和运行机制,对u c l i n u x 进行了裁剪和改造,实现了志核和文件 系统在f l a s h 中运行的机制,减小了系统对r a m 的需求。对于硬件平台中设计 的以太网接口和处理器的a d 转换、p w m 输出等硬件资源,给出了驱动程序的编 写方法,并通过测试程序对整个开发平台进行了调试和验证。 关键词:嵌入式;l p c 2 2 1 0 ;u c l i n u x ;移植 j 乏京王盐大学王学琰士学位论文 i i ,!ill, i i 曼量鼍簟拦舅曼鼍囊皇曼曼鼍嬲蔓曼鼍舅舞皇蔓皇麓麓曼冀 a b s t r a c t 缪锄t h ef a s td e v e l o p m e n to ft h ea r m t e c h n i q u e 。t h e3 2b i t sa r mp r o c e s s o r sa r e a p p l i e dw i d e l yt ot h ee m b e d d e ds y s t e m 词1 ea r mc h i pl p c 2 2 10i sd e s i g n e db yt h e p h l i p ss e m i c o n d u c t o r , a n di ti si n t e g r a t e dw i 也a b u n d a n ti n n e rr e s o u r c e si n c l u d i n g a d c ,p w m e t c w i t l li t sl o wp o w e rc o n s u m p t i o n , 、析d cw o r k i n gt e m p e r a t u r er a n g e a n dc h e a p e rp r i c et h a no t h e rc h i p sw i t hs a m ef u n c t i o n s ,i ti s w i d e l yu s e dt ot h e i n d u s t r yc o n t r o la n dm e a s u r ei n s t r u m e n t s me m b e d d e do p e r a t i o ns y s t e mu c l i n u xi sav e r s i o no fl i n u x i ts p e c i a l l ya i m sa t t h ep r o c e s s o rw i t h o u tm e m o r ym a n a g e m e n tu n i ta n di th a sb e e nd o n em a n yr e d u c i n g w o r k s i t ss m a l lk e r n e la n de a s et ot r a n s p l a n tm a k ei ta l r e a d yr u n o nl o t so f3 2b i t s p r o c e s s o r s 弧em a i nc o n t e n to ft h i sp a p e ri sa b o u tt h ea p p l i c a t i o no ft h eu c l i n u xt ot h e l p c 2 210 f i r s t l y , t h i sp a p e rd i s c u s s e st h ec h a r a c t e r so fl p c 2 210a n dd e s c r i b e st h e d e s i g no ft h el p c 2 2 10h a r d w a r ep l a t f o r mo nw h i c ht h eu c l i n u xc a r lr u n s e c o n d l y , w e a n a l y s e st h ea r c h i t e c t u r eo fu c l i n u xa n dg i v e st h em e t h o do ft r a n s p l a n t i n gu c l i n u x t ol p c 2 210 t h i r d l y , t h eu c l i n u xb o o t i n ga n d r u n n i n gm e c h a n i s m ,t a i l o ra n dr e b u i l d t h eu c l i n u xi no r d e rt h a tt h eu c l i n u xk e r n e lc 题r u ni nf l 鑫s hm e m o r ya r ed i s c u s s e d a tt h ee n d , t h ep r o g r a m m i n go ft h ed r i v e r so fd e v i c e sg p i o ,e t h e r n e t , a d c o n v e r s i o n , p w ma r eg i v e n 1 1 1 ep l a t f o r mi st e s t e da n dv e r i f i e d k e y w o r d se m b e d d e d s y s t e m ;l p c 2 2 1 0 ;u c l i n u x ;t r a n s p l a n t 珏 独创性声明 本入声明所至交的论文是我个久在导师指导下进行的研究工作及取得的研 究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其 他人已经发表或撰写过的研究成果,也不包含为获得北京工业大学或其它教育 机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何 贡献均已在论文中作了明确的说明并表示了谢意。 签名: 关于论文使用授权的说明 日期:盈烨 本人完全了解北京工业大学有关保留、使用学位论文的规定,即:学校有 权保留送交论文的复印件,允许论文被查阅和借阅;学校可以公布论文的全部 或部分内容,可以采用影印。缩印或其他复制手段保存论文。 ( 保密的论文在解密后应遵守此规定) 躲捡聊签名魅, v 吼迎丝纯 第1 章绪论 1 1 嵌入式系统的发展 第1 章绪论 随着信息技术的发展,计算机和网络已经全面渗透到人们日常生活的每一个 角落。对于我们每个人来说,需要的已经不再仅仅是那种放在桌上处理文档、进 行工作管理和生产控制用的计算机,而是各种各样使用嵌入式技术的产品。这些 产品小到m p 3 、p d a 等个人用品,大到网络家电、智能仪器、车载电子设备, 它们在应用数量上已经远远超过了通用计算机。 嵌入式系统最初的应用是基于单片机的。2 0 世纪7 0 年代单片机的出现,使 得汽车、家电、工业机器、通信装置以及成千上万种产品通过内嵌单片机来获得 更佳的使用性能。这些产品已经初步具备了嵌入式系统的应用特点,但由于早期 的单片机集成度不高、速度不快,只能满足一些低端应用的需求。3 2 位嵌入式 微处理器的出现为嵌入式系统的高端应用提供了巨大的发展空间,网络、通信、 多媒体、工业控制和信息家电成为了嵌入式系统应用的主要市场【l 】。 在3 2 位嵌入式微处理器的发展过程中,a r m 微处理器以其高性能、低功耗 特点获得了众多半导体厂家的支持,以至于不少传统嵌入式厂家放弃了自己的3 2 位机发展计划,转而使用a r m 芯片核来发展自己的3 2 位m c u 。如i n t e l 、f r e e s c a l e 、 t e x a si n s t r u m e n t s 、p h i l i p ss e m i c o n d u c t o r 、a t m e l 、s a m s u n g 等厂家都纷纷设计和 生产出了基于a r m 芯片核的嵌入式微处理器。它们生产的a r m 芯片各具特色, 充分发挥了各自的优势,其中i n t c l 公司将a r m 系列向更高端的嵌入式系统发展; 而p h l i p s 公司则在面向高端嵌入式应用的同时,向低端的8 位和1 6 位机的高端应用 延伸。 a r m 芯片核包括a r m 7 t d m i 、a r m 9 t d m i 、s t r o n g a r m 、a r m 7 2 0 t 等 系列,其中a r m 7 t d m i 是不带m m u 功能的芯片核。我们习惯称基于 a r m 7 t d m i 核的处理器为a r m 7 芯片。随着a r m 芯片市场的快速增长,目前 a r m 7 芯片的价格已经接近8 位单片机的价格,但能提供比8 位单片机更强的功能 和更多的外围设备,甚至有专家预见,在未来几年内删芯片将几乎完全取代8 位单片机代表一8 0 5 1 。 1 2u c l i n u x 操作系统 基于嵌入式操作系统的平台化开发技术在嵌入式系统的开发中展现了非常 大的优势,它具有可重复性好,可移植性高等众多优点,可以提高产品的开发速 度,降低开发成本,达到产品迅速占领市场的目的。早在上世纪8 0 年代,r e a d y s y s t e m 开发出世界上第一个商业嵌入式实时内核( v i r x 3 2 ) 。这个实时内核包 北京工业大学工学硕士学位论文 含了许多传统操作系统的特征,包括任务管理、任务间通信、同步与相互排斥、 中断支持、内存管理等功能。在此后二十多年的发展历史中,国际上出现了许多 著名的嵌入式操作系统,如p s o s 、v x w o r k s ,p a l mo s ,w i n d o w sc e 等等1 2 】。 l i n u x 原本设计为一个桌面操作系统,但由于它的移植性好、完全开放源代 码,近几年在嵌入式领域异军突起,向各种老牌嵌入式操作系统发起了强有力的 攻势,成为了最具潜力的嵌入式操作系统。u c l i n u x 是嵌入式l i n u x 之一,它专 门针对那些不具有内存管理单元模块( m 7 ) 的微处理器芯片,并且改写和裁 剪了大量l i n u x 内核代码,采用了精简的u c l i b e 应用程序库,因此,u c l i n u x 的 内核远小于标准l i n u x 的内核,但它仍然保持了l i n u x 操作系统的主要优点,如 稳定性好、强大的网络功能和出色的文件系统支持。u c l i n u x 新版本的发行与 l i n u x 几乎是同步的,它的内核版本从2 o 、2 2 、2 4 一直发展到现在最新的2 6 。 从u c l i n u x 的权威站点h t t p :w w u c l i n u x o r g 上,我们可以看到,u c l i n u x 已经 被广泛移植到了众多的3 2 位微处理器,如m o t o r o l a 公司的m c 6 8 系列、c o l d f i r e 系列,i n t e l 的s t r o n g a r m 、x s c a r e ,a t m e l 的a t 9 1 系列、s a m s u n g 的s 3 c 系列 等【3 】。从相关研究机构或个人发表的文献可以看出,全世界有众多的研究机构和 公司都致力于研究和开发基于u c l i n u x 的解决方案和应用产品,这其中包括许多 著名的c p u 制造商【3 l 。 1 3p t t l i p sa r m 7 芯片l p c 2 2 1 0 l p c 2 2 1 0 系列芯片是p h l i p s 公司设计生产的a r m 7 芯片,芯片内部集成了 u a r t 、1 2 c 、s p i 、p w m 、a d c 、定时器等众多外围部件;有的芯片还内置大容 量f l a s h 存储器,可实现芯片内部的代码加密;有的芯片内置了网络控制器、 u s b 控制器、c a n 总线控制器。由于它们具有极低的功耗和丰富的内部资源,使 它们特别适用于工业控制、医疗系统、访问控制和p o s 机。l p c 2 2 1 0 的主要特性 如下: 1 ) 1 6 3 2 位a r m 7 t d m i s 核,l q f p l 4 4 封装。 2 ) 1 6 k b 片内静态r a m 。 3 ) e m b e d d e d l c e r t 和嵌入式跟踪接口使用片内r e a l m o n i t o r 软件对任务进行 实时调试并支持对执行代码进行无干扰的高速实时跟踪。 4 ) 8 路1 0 位a i ) 转换器,转换时间低至2 4 4 t s 。 5 ) 2 个3 2 位定时器( 带4 路捕获和4 路比较通道) 、p w m 单元( 6 路输出) 、 实时时钟和看门狗。 6 ) 多个串行接1 2 1 ,包括2 个1 6 c 5 5 0 i 业标准u a r t 、高速1 2 c 接口( 4 0 0 k b i t s ) 和2 个s p i 接口。 7 ) 向量中断控制器。可配置优先级和向量地址。 2 第l 零鳝论 8 ) 通过外部存储器接霉可将存储器配置成翻匿,每缀的容量商达1 6 m b ,数据 宽度为8 1 6 3 2 位。 9 ) 多达7 6 个通用i o d ,9 个边沿或电平触发的外部中断引脚。 1 0 ) 通过片内锁相环( p l l ) 可实现最大为6 0 m h z 的c p u 操作频率。 11 ) 可透过个别使| | | 鬟禁止终部功能来优化功耗。 1 2 ) 双电源供电: c p u 操作电压范围:1 6 5 - 1 9 5v ( 1 8v 0 1 5 v 1 淡操作电压范围:3 0 3 。6v ( 3 3 v l 鹋毛) ,可承受5 v 电压网 1 4l p c 2 2 l o 应用u c l i n u x 的现状 关于u c l i n u x 在l p c 系列芯片上的应用有过很多的探讨,除了u c l i n u x 的移 植外,另一个探讨最多的问题就是l p c 2 2 1 0 存储器系统的设计。我们知道, u c l i n u x 虽然经过小型化处理,僵它依然是一个需要大量内存的系统,所以基于 u c l i n u x 的应用系统多数采用2 m 以上f l a s hr o m 和8 m 以上r a m 设计方案【5 】。 u c l i n u xb o a r d s 和s m a r t a r m 2 2 0 0 分别是由美豳e m b e d d e da r t i s t sa b 公司和 广州闵立功公司设计开发的两款l p c 电c l i n u x 实验开发平台。e m b e x l d c da r t i s t s a b 是美国一家专门提供l p c 系列产品方案的公司,他们针对l p c 系列开发了 q u i c k s t a r tb o a r d s 、e d u c a t i o nb o a r d s 和u c l i n u xb o a r d s 三大系列,应用方案涉及 到m p 3 、数字通讯、无线通讯等领域。周立功公司是p h l i p s 在中藩最大的合作 和代理商,他们针对l p c 系列推崽的一系列开发实验板,由于价格便宣,技术 支持全面,在国内得到了广大客户的支持和信赖,同时也为l p c 在国内的推庀, 和应用作出了很大的贡献。 u c l i n u xb o a r d s 采用l p c 2 2 9 2 + u c l i n u x - 2 。6 的设计,板上设计了l 路以太两接 口,4 路c a n 通讯接口,是一个适合于数据通讯应用的设计方案 6 - 1 。s m a r t a r m 2 2 0 0 采用l p c 2 2 1 0 + u c l i n u x - 2 4 的设计,开发板上集成了以太网接口、m o d e m 接口、 i d e 接霸、c f 卡接口、液晶接口等丰富的外部资源,是一个专门针对教学实验用 的试验开发平台r 7 1 。这两种开发平台有一个共同点就是都采用了2 m b f l a s h + 8 m bp s r a m 存储器设计,由于l p c 2 2 10 只支持s r a m 接口,而s r a m 又 很难做到1 m b 以上容量,所以这里采用的是具有s r a m 接口的p s r a m 。p s r a m 全称“p s e u d or a m ,是一种新型的向后兼容s r a m 的存储器,它具有和s 萎渔m 一样的低功耗,但却能做到1 6 3 2 6 4 m b 甚至更高存储密度 s l 。尽管这种p s r a m 芯片具有很好的发展和应用前景,但就目前来说,由于它的应用只局限于手机、 p d a 等通讯产品,小批量的采购和焊接给大多数学习和爱好者带来很大的不便。 北京工业大学工学硕士学位论文 1 5 本文研究的主要内容和意义 本文通过分析u c l i n u x 的系统机制,研究u c l i n u x 在l p c 2 2 1 0 芯片上的移植和 应用方法。通过研究u c l i n u x 在f l a s h 中运行的方式,探讨如何减少u c l i n u x 系统对 内存的需求,实现一个轻量级软硬件开发平台的设计方法。 随着芯片生产工艺的不断提高,微处理器芯片的集成度将越来越高,相信本 文的研究将有助于实现在一个集成了大容量f l a s h 和r a m 资源的处理器芯片中运 行整个u c l i n u x 系统的方法。 1 6 本文结构 本文共分为5 章,第1 章介绍了嵌入式系统的发展及嵌入式操作系统的应用; 并结合u c l i n u x 在l p c 2 2 1 0 芯片上的应用现状说明了本文研究的主要内容和意 义;第2 章通过分析u c l i n u x 的内核文件结构、内核的启动和运行机制,探讨了 l p c 2 2 1 0 移植u c l i n u x 的方法;通过分析u c l i n u x 的内存管理机制,研究硬件平 台的存储器资源的设计方法;通过分析u c l i n u x 驱动程序机制,研究l p c 2 2 1 0 的设备驱动程序。第3 章研究和探讨运行u c l i n u x 系统的硬件开发平台的设计方 法。第4 章研究和讨论u c l i n u x 系统的调试方法。在文章的最后部分,总结了开 发平台的可行性和不足。 4 第2 章移植u c l i n u x 第2 章移植u c l i n u x u c l i n u x 的移植工作共有三种:第一种是针对不同硬件体系的移植,需要针对 不同的指令系统移植编译、连接等工具软件。第二种是针对不同处理器芯片的移 植,需要修改与处理器硬件相关的细节。第三种是基于应用的移植,主要是针对 不同的外围设备改动存储器配置,加入外围设备的驱动程序等。 l p c 2 2 1 0 是基于a r m 结构的处理器,所以本文研究的移植内容主要是在 u c l i n u x 系统中加入对该芯片的支持,建立和编译针对l p c 2 2 1 0 芯片的内核。实 现方法主要是修改与l p c 2 2 1 0 硬件相关的内核文件,并且加入相关的设备驱动 程序,是以上提到的第二种和第三种移植工作的结合。 2 1u c f i n u x 源文件分析 把u c l i n u x 镜像文件u c l i n u x d i s t - 2 0 0 4 0 4 0 8 t a r g z 解压后,会在当前目录下出 现一个文件夹u c l i n u x - d i s t ,这就是u c l i n u x 源文件目录。u c l i n u x 源文件结构如 图3 1 所示: 图2 iu c l i n u x 源文件结构 f i g u r e 2 1u c l i n u xs o u r c ef i l ea r c h i t e c t u r e 源文件目录u c l i n u x - d i s t 下共包含9 个子目录: 1 ) c o n f i g :存放相关的配置文件,这些文件在进行内核配置时使用; 2 ) d o c u m e n t a t i o n :存放u c l i n u x l 拘技术文档,多数文件以“h o w t o ”作为文 件名,介绍u c l i n u x 的运用技术; 3 ) l i n u x - 2 0 x :存) 波u c l i n u x - 2 o x 匹j 核文件; 5 l 京王渡大学忑学联学位论文 4 ) l i n u x - 2 霹。x :存放u c l i n u x 2 4 x 内核文件; 5 ) l i n u x 2 6 x :存放u c l i n u x - 2 6 。x 内核文件; 6 ) t o o l s :存放各种工具软件; 7 ) u c l i b e :存放u c l i n u x 使用的库文件; 8 u s e r :存放应用软件,这些软件可在内核配置时选择加入; 9 ) v e n d o r s :存放不同产品厂家子目录,如i n t e l 、a t m e l 、s a m s u n g 等; 2 2u c l i n u x 内核文件分析 从圈2 1 可以看爨,u c l i n u x 源文件下包含了3 个不同舨本的内核文件,郾 l i n u x - 2 。0 x 、l i n u x 。2 4 x 和l i n u x - 2 6 x ,本文只针对l i n u x 2 4 。x 内核版本的移植,所 以只分析l i n u x 2 4 x 目录下的文件组成和作用【9 】。 1 ) a r c h 目录:该目录下包含多个子目录,它的每一个子目录都代表内核支 持的一种c p u 体系结构,每个子晷录中又进一步分解为b o o t 、i l l r t l 、k e r n e l 等子 目录,分别包含与系统引导、内存管理、系统调用的进入和返回、终端处理以及 其它内核中依赖于c p u 和系统结构的底层代码。与a r m 处理器( 不带有m 姐t ) 相关的代码放在酱录a r c h a r m n o m m u 下。 2 ) i n c l u d e 躁录:i n c l u d e 子羁录包括编译内核所需要的大部分头文件。与平 台无关的头文件在i n c l u d e l i n u x 子目录下,与a r m 处理器( 不带m m u ) 相关 的头文件在i n c l u d e a s m a l t l l l l o m m l l 予目录下。 3 ) i n i t 雷录:这个目录包含内核的初始化代码,包含两个文件m a i n c 和 v e r s i o n c ,这是研究内核如何工作的个非常好的起点。 4 ) k e r n e l 目录:主要的内核代码;此蹰录下的文件实现了大多数l i n u x 系统 的内核函数,其中最重要的文件当属s c h e d c 文件。溺样,和体系结构相关的代 码在a r c h * k e r n e l 中。 5 ) d r i v e r s 目录:放置系统所有的设备驱动程序,如c h a r 、u s b 、n e t 等;在 每种驱动程序目录下,不同的设备分别以不同的文件名或豳录表示。 国雠墨录:包括所有独立于处理器体系结构的内存管理代码,如页式存 储管理内存的分配和释放等; 7 ) f s 目录存放备种文件系统,它的每一个子目录支持一个文件系统,例如 f a t 、e x t 2 等。 8 ) 珏b 目录:放置u c l i n u x 所需要的库文件。 9 ) n e t 目录放置与网络相关的代码。 6 繁2 辜移植u c l i n u x 2 3u c l i n u x 针对芯片的配置和编译分析 通过上面对u c l i n u x 文件结构的分析知道,每一种移植到u c l i n u x 上的处理 器体系结构在l i n u x - 2 4 。x a r c h 下占据一个子隧录,如m i p s 、p p c 、1 3 8 6 、a r m 、 a r m n o m m 等,每个子耳录下的e o n f i g 。i n 就是u c l i n u x 编译时针对该处理器的 配置文件。c o n f i g i n 文件中的“c h o i c e a r ms y s t e mt y p e 处列出了所有支持的 处理器选项,在该处添加c o n f i ga r c hl p c 项,即霄在配置时出现群l p c 描 选项。 l i n u x 2 4 ,x a r c h 下的每个子目录又包含不同的处理器目录,该目录下存放 有关结构描述、中断管理、i o 输出等与硬件相关的文件。为了让u c i i n u x 编译针 对l p c 2 2 1 0 的内核,还必须在l i n u x 。2 4 x a r c h a r m n o r n m u 下建立一个“l p c - a r c 捧 子尽录,同时在该目录下创建和硬件相关的几个文件。一般来说,这些文件主要 包括a r c h c 、i r q c 和m a k e f i l e3 个文件,a r c h c 文件定义关于处理器结构的函数和 宏定义;i r q c 文件定义关于中断处理的宏定义;m a k f i l e 文件则是一个g c c 编译必 须的文件。另外,还需要在l i n u x 2 。4 x i n c l u d e a s m - a r n m o m m u 下也添加相应耳录, 并在目录下填加a r c h h 、蛔h 、h a r d w a r e h 头文件,这些文件定义关于处理器硬 件描述的详细内容f l 研。 2 4u c l i n u x 与芯片相关的启动文件分析 u c l i n u x 在进入内核入口翦的2 个启动文件都是和硬佟密切相关的,它们分别 是a r c h a r m n o m m u m m p r o c - a r m 6 ,7 文件和a r c h a r m n o r n m u k e m e l h e a d a r l n v s 文 件。 2 4 1p r o e a r m 6 ,7 文件分析 u c l i n u x 内核启动阶段需要寻找对应的体系结构信息和芯片信息,然后建立起 正确的运行环境。体系结构信息位于前面所述的a r c h c 文件中,而关于芯片的信 息则位于此文件文件中。它所要做的工作是添充两个数据结构:s t r u c t m a c h i n ed c s c 和s m a c tp r o c斟玎】。 是i 描n f o s t r u c tm a c h i n ed e s c述体系结构类型的数据结构,该数据结构定义为: s t r u c tm a c h i n e d c s c n o t e ! t h ef i r s tf o u re l e m e n t sa r eu s e d 簟b ya s s e m b l e rc o d ei nh e a d - a r m v s 奄| u n s i g n e di n tn r ;| 奄a r c h i t e c t u r en u m b e r | 7 悲京王堑大学王学颈圭学链论文 i i i i i i ii | 1 1 1 1i i i i ii i u n s i g n e di n tp h y s _ r a m ;s t a r to fp h y s i c a l 芏簌泣毒| u n s i g n e di n tp h y s _ i o ;卜s t a r to fp h y s i c a li o | u n s i g n e di n tv i r t _ _ i o ;ps t a r to f v i r t u a li ot | c o n s tc h a r 粤n a m e ;| 毒a r c h i t e c t u r en a m e | u n s i g n e di n tp a r a m _ o f f s e t ;产p a r a m e t e rp a g e | u n s i g n e di mv i d e o _ s t a r t ;s t a r to f v i d e or a m 章| u n s i g n e dh a tv i d e o _ e n d ;净e n do fv i d e or a m 毫| u n s x g n e dh a tr e s e r v e _ l p o :l ;搴n e v e rh a sl p 0 攀厂 u n s i g n e d 蕊r e s e r v e _ 1 p 1 :l ;产n e v e rh a sl pl 事7 u n s i g n e di n tr e s e r v e _ l p 2 :l ;产n e v e r h a sl p 2 掌 u n m g n e d i n ts o f t r e b o o t :l ;严s o f tr e b o o t , e o n s ts t r u c tt a g t a b l e 囊t a g t a b l e ;| 嚏t a gt a b l e 囊| h a t t a g s i z e ;| t a gt a b l es i z e | v o i d ( * f i x u p ) ( s t m c tm a c h i n e _ _ d e s c 幸, s t r u c tp a r a ms t m c t 冬,c h a r , s t r e e tm e m i n f o ) ; v o i d ( * m a p _ i o ) ( v o i d ) ;幸i om a p p i n gf u n c t i o n 毒, v o i d p i n i o r q ) ( v o i d ) ; s t r u c tp r o c _ i n f o _ l i s t 是定义处理器类型数据结构,该数据结构定义隽: s t m c t p r o ci n f o _ u s t u n s i g n e di n tc p u _ v a l ; u n s i g n e di n te p u _ m a s k ; u n s i g n e dl o n g _ _ c p u _ m m u _ f l a g s ;pu s e db yh e a d - a r m v s 粤| u n s i g n e dl o n g _ _ c p u _ f l u s h ;u s e db yh e a d - a r m v s e o n s tc h a r 搴a r c h _ n a m e ; c o n s tc h a r e l f _ n a m e ; u n s i g n e di n te l f _ h w c a p ; s t r u c tp r o e _ i n f o _ i t e m i n f o ; # i f d e fm u l t i c p u s t m c tp r o c e s s o r 搴p r o c ; # e l s e v o i d 枣u n u s e d ; # e n d i f 2 。4 2h e a d 。a r m v s 文件分析 该文件的主要任务是为u c l i n u x 的正确启动建立毖要的软硬件运行环境,包 括设置堆栈、清零b b s ,定义b s s 段起始位置、处理器d 号和体系结构类型【1 2 】。 8 簿2 章移接u c l i n u x 文件中对于不同处理器采用条件编译的方法,要正确启动针对l p c 2 2 1 0 的内核, 必须增加与l p c 2 2 1 0 对应的条件编译部分,该部分代码如下: # i fd e f m e d ( c o n f i ga r c hl p c ) a d rr 5 0 l d m i a r 5 , f 5 ,r 6 ,r 8 ,r 9 ,s p s e t u ps t a c k 卜c l e a r b s s - l m o vr 4 麴 l : c m p r 5 r 8 s t r c c r 4 ,陋】,襻4 b e cl b 产p r e t e n dw ek n o ww h a to u r p r o c e s s o rc o d ei s ra r m _ i d ) 幸 l d r r 2 王t cp r o c e s s o rt y p e s t r r 2 ,i t 6 】 m o vr 2 # m a c ht y p el p c s 莨 r 2 ,泌】 m o v f p 蜘 bs t a r tk e r n e l l e o : 1 0 n g b s ss t a r t 1 0 n gp r o e e s s o r _ i d 1 0 n g e n d 1 0 n g _ _ m a c h i n e _ a r c h _ t y p e 1 0 n g i n i tt a s ku n i o n + 819 2 l p cp 薹c e s s o r 珊e :1 0 n g0 x f e f e f e f e # e n d i f 2 5u c l i n u x 内核运行分析 2 5 1 内核运行方式 u c l i n u x 根据不同的配置,可以生成以下2 种常见的内核形式: 1 ) 压缩形式 该类型的内核文件直开头的一段皂解压代码和其震的压缩数据组成,在被引 导程序从f l a s h 中加载到洲的临时空间后,调用其自解压代码把压缩内核解压 到目标空间。 2 ) 菲压缩形式 该类型的内核文件以非压缩格式存放在f l a s h 中,可以不需加载丽直接运行。 内核可读写的数据段需要在r a m 空间建立一个拷贝,由内核启动程序来完成并 初始化f 域。 9 北京工业大学工学硕士学位论文 2 5 2 内核启动过程 系统上电后,首先运行的是系统引导代码,它初始化u c l i n u x 运行所需要的 硬件和软件环境,包括硬件设备的初始化、内核的加载和引导,这段代码通常称 为b o o t l o a d e r 1 4 1 。b o o t l o a d e r 弓i 导完成后,程序跳转到内核开始位置,位于该位 置的文件是l i n u x 2 4 x a r c h a r m n o m m u k e m e l h e a d a r m v s ,它主要完成设置堆栈、 初始化b s s 段等准备工作,为内核的启动运行建立正确的软硬件环境。该文件中 的s t a r t 函数是内核入口函数,该函数首先进行一系列的初始化过程后,_kemelo 然后启动u c l i n u x 的第一个进程即i n j t 进程。这个进程调用i n i t o 函数,在i n i t ( ) i 蚕数 中执行r c 脚本输出u c l i n u x 启动字样,运行s a s h 程序建3 s h e l l 命令行【l 副。 系统引导过程的流程图如下所示: 【 系统引导 i c j 口丰旦卫士几 厶b l 疋“l 葡例烙化 上 上 内核入口 控制台初始化 0上 l 输出l i n u x 版本信息 c a c h e 初始化 上占 设置体系结构环境估算系统运行速度 00 解析命令参数内存页面初始化 上上 中断和异常向量设备初始化 初始化 上 0 加载根文件系统 进程调度初始化 上 启动i n i t 进程 图2 2 内核程序运行的流程图 f i g u r e 2 - 2f l o wc h a r to f t h ek e r n e lr u n n i n g 2 5 3b o o t l o a d e r 程序 从前面分析知道,内核的引导是i 訇b o o t l o a d e r 程序来完成的,不同形式的内 核需要不同的引导程序。 a r c h 谊m a i m n o 衄u b o o t c o m 】p 】r c s s e d l l e a d s 是一个u c l i n u x 行时自带的 1 0 第2 章移植u c l i n u x - - i i i i i 皇 b o o t l o a d e r 程序,当采用默认的内核形式时,它连同压缩的内核一起编译。在系 统启动时,该引导程序把压缩的内核解压到规定的内核起始位置,并跳转到该位 置进入内核入口。该方式是u c l i n u x 常采用的方式,这种方式要求系统必须具备 足够的存储器资源,而本文研究的是采用非压缩可直接运行的内核形式,进而完 成轻量级存储器设计,因此需要重新设计一个简单、高效的b o o t l o a d e r 1 6 1 。图2 3 是针对本方案的程序流程图。 上电 0 建立u c l i n u x 运行需要的软硬件环境 上 复制内核的数据段 上 初始化一个串口 上 打印“b o o tl o a d e rs t a r t ” 上 跳转到内核起始地址 图2 3b o o t l o a d e r 程序流程图 f i g u r e 2 - 3f l o wc h a r to ft h eb o o t l o a d e rp r o g r a m 2 6u c l i n u x 内存管理分析 2 6 iu c l i n u x 内存管理机制 由于u c l i n u x 不支持虚拟内存管理技术,因而它采用的是实存储器管理策略, 程序中访问的地址不再需要线性地址到物理地址的映射,而是通过地址总线直接 访问物理内存。但u c l i n u x 仍然采用了存储器分页管理机制,它把整个连续物理 地址划分为许多页帧,每个页帧的大小为4 k b 。页帧的数据结构在文件中用p a g e 来表示,所有的p a g e 结构形成一个m e m f r e ea l e ai r a t o 创建,并以一个位图结构来标识页帧的空闲状况。 与l i n u x 内核的a p i 相同,u c l i n u x 也使用k m a u o c 0 和l f f r e e 两个函数进行内核 空间的申请和释放工作。k n a a u o c 函数检查内存中空闲页面的个数,如果没有足 够的空闲页面,将试图释放一些被用作b u f f e rc a c h e 的页面,并把释放的页面重新 放回到空闲页面链表中,但如果释放不出足够的空间,u c l i n u x 将陷入一个死循 北京工业大学工学硕士学位论文 环。另外,由于u c l i n u x 对内存空间没有保护,所有的进程都在一个运行空间中 运行( 包括内核进程) ,所以开发人员必须小心设计程序和数据空间,在配置内 核时,指定内存起始地址和大小,并规划好内核进程和应用程序进程的内存资源 分配【1 7 1 。 2 6 2u c l i n u x 与内存相关文件 u c l i n u x 内核文件由i n i t 段、t e x t 段、d 筒r a 段和b s s 段组成。t e x t 是内 核代码段,为了实现内核代码在f l a s h 空间运行,需要把它定位在f l a s h 地址 空间;d a t a 段是u c l i n u x 被初始化的数据空间,b s s 段是u c l i n u x 没有被初始化 的数据空间,由于它们都是可读写数据段,所以必须定位在r a m 空间;i n i t 段 是所有i n i t 初始化代码的程序和数据段,由于它在初始化完成后被系统收回, 所以也定位在r a m 空间。通过修改l i n u x 2 4 妣抓i h 、觚衄o m m l l 目录下的 m l i n u x a r m v 1 d s 文件可以实现这几个段的重新定位【1 8 1 。 l i n u x - 2 4 x a r c h a r m n o m m u m a k e f i l e 文件是u c l i n u x 用于编译和连接使用的管 理文件,该文件定义了内核开始地址,并指定体系结构名称【1 9 】。移植时,需要在 该文件中增加以下条件编译部分: i f e q ( $ ( c

温馨提示

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

评论

0/150

提交评论