(电路与系统专业论文)linux在magicarm2410目标板的移植及其应用研究.pdf_第1页
(电路与系统专业论文)linux在magicarm2410目标板的移植及其应用研究.pdf_第2页
(电路与系统专业论文)linux在magicarm2410目标板的移植及其应用研究.pdf_第3页
(电路与系统专业论文)linux在magicarm2410目标板的移植及其应用研究.pdf_第4页
(电路与系统专业论文)linux在magicarm2410目标板的移植及其应用研究.pdf_第5页
已阅读5页,还剩54页未读 继续免费阅读

(电路与系统专业论文)linux在magicarm2410目标板的移植及其应用研究.pdf.pdf 免费下载

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

文档简介

摘要 l i n u x 操作系统作为自由软件的代表,是p c 服务器和嵌入式系统应 用最广泛的操作系统,近年来,显示了巨大的市场价值和广阔的应用前 景。l i n u x2 6 包含许多新的特性,为其在嵌入式领域的应用提供了强有 力的支持,新的内核越来越多的应用于嵌入式l i n u x 系统中是必然的趋 势。 本文研究的目的在于在m a g i c a r m 2 4 1o 平台上实现基于l i n u x2 6 内核的嵌入式l i n u x 系统,同时充分利用n a n df l a s h 闪存高容量低成 本的特点,使用n a n df l a s h 闪存作为嵌入式l i n u x 系统的主要存储设 备。首先从介绍目标硬件平台开始,在此基础上提出移植方案,同时为 本次移植建立了开发环境,编译完成了交叉开发工具链;接着研究了系 统引导程序的原理,l i n u x 内核的体系结构,并将内核中与硬件体系结 构相关和与体系结构无关的部分区分开来。在此基础上,分析了系统引 导程序u b o o t ,l i n u x2 6 内核向目标平台移植的方法及需要注意的关键 点,并针对目标平台的特点完成了多文件系统的构建:最后对本文研究工 作进行总结,并对进一步研究工作进行了展望。 全文详细论述了嵌入式l i n u x 移植的过程,给出了搭建嵌入式开发 环境,基于硬件平台m a g i c a r m 2 4 1o 的u b o o t ,l i n u x 内核移植及根文 件系统的实现方案。 关键词:l i n u x ;u b o o t ;a r m ;n a n df 1 a s h ;多文件系统 a b s t r ac t l i n u xo p e r a t i n gs y s t 伽i sar e p r e s e n t a t i v eo ft h ef r e es o f t w a r e ,w h l c n i sw i d e l vu s e di 蕤p cs e f v e f s 毳懿巷e 璎b e 纛d e 连s y s | e 爨s 袋e e e 鑫专l y ,l 专l 毽f 魏s o 疆鼍 t h a tl i n u xo p e r a t i o ns y s t e mi so fl a r g ee c o n o m i cv a l u ea n dw i i l b eu s e d1 n v a f i o u s8 p p l i t i o n s 。b y i n t r o d u c i n gm a n y n e wf e a t u f e s , l l n u x z 各 b e c o m e sa n e x c e l l e n to p e r a t i n gs y s t e m f o re m b e d d e dc o m p u t l n g u n d o u b t e d l y ,u s i n gt h en e wk e r n e li ne m b e d d e ds y s t e mi s t h ed e v e l o p m e n t t 1 e n d 。 t h er e s e a r c ho ft h i sp a p e ri s t ob u i l da ne m b e d d e dl i n u xo p e r a t i o n b a s e do 懿l i n 硅x2 6k e f 藏e la n dp o l - li ll 。m a g i e a r m 2 4 l0p l 鑫l f 6 r 璐a n d1 t1 s a i m e da tm a k i n gt h en a n df l a s ha s t h em a i ns t o r a g eo ft h ee m b e d d e d l i n u xt om a k e & l lu s eo fi l s 瓣a s ss t o 薹鑫g e 鑫蕤d l o we o s l a l f s 塞, w e i n t r o d u c et h et a r g e th a r d w a r ep l a t f o r ma n dg i v ea np o r t i n gp l a n b a s e do n1 t a tt h es a m et i 瓣e ,w eb u i l da ne m b e d d e dl i n 娃xw o r k s t a l i o f la f l d b u i l dl h e c r o s s i p i a t f o r md e v e l o p i n gt o o l s l a t e r ,w er e s e a r c h t h et h e o r yo ft h eb o o t l o a d e r t h ea r c h i t e c t u r eo fl i n u xk e r n e l ,a n dd i v i d et h eh a f d w a r ed e p e n d e n t s e c t i o nf o r mb a r d w a r ei n d e p e n d e n t s e c t i o n 。b a s e do nt h ef e s e a f c h w e a n a l v z et h em e t h o d o l o g ya n dt h ek e yp o i n to fp o r t i n gu - b 0 0 t ,l i n u x2 6 , a n d 耄矗e 蕤b 珏i l d 黻l l l 耄i 爨l es y s l e 黻so 嚣耄h e 重a 碍e 耄s y s 耄e 掰。f i 髓l l y ,w e 攥a k e a s u m m a r ya n di n t r o d u c et h ef u r t h e rr e s e a r c h t h l sp 鑫p e fs p e c i f i e t h e 爨o wo fp 。f t i 珏ge 黻b e d d e d 毛i 曩毛l x ,纛纛dp 薹i e s e 曩毫s t h es c h e m e o fb u i l d i n gd e v e l o p m e n te n v i r o n m e n t , i m p l e m e n t l n g b o o t l o a d e f ,p 0 1 t i n gl i n u xk e e la n di m p l e 瓣e n l i n gt b ef o o l6 l es y s l e mb a s e d o nu ,b o o to fh a r d w a r ep l a t f o r mm a g i c a r m 2 4 1o k e yw o r d s :l i n u x ;u b o o l ;a r m ;j n a n d f l a s h ;m u l i t f i l es y s t e m 掇 湖南大学 学位论文原创性声明 本人郑重声明:所呈交的论文是本入在导师的指导下独立进行研究所 取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任 何其他个入或集体已经发表或撰写的成果作品。对本文的研究做出重要贡 献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的 法律后果由本人承担。 作者签名: 汹知 日期: 砷,玖i 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意 学校保留并向国家有关部门或机构送交论文的复印件和电子舨,允许论文 被查阅和借阅。本人授权湖南大学可以将本学位论文的全部或部分内容编 入有关数据霹进行检索,可以采用影印、缩印或扫描等复制手段保存和汇 编本学位论文。 本学位论文属于 l 、保密口,在年解密后适用本授权书。 2 、不保密盔。 ( 请在以上相应方框内打“”) 作者签名: 导师签名 脯劾 日期:夕矽。玖夕? 日期: 叩叫 第1 章绪论 1 1 选题的背景及意义 随着“后p c 一时代的到来,嵌入式系统的应用范围日益广泛,涉及 到人类生活的诸多方面,如数字通信,信息家电、航空航天、工业过程 控制及军事电子等。嵌入式技术和人们日常生活的方方面面关系越来越 紧密,消费电子、计算机、通信一体化趋势日益明显,作为计算机领域 的一个重要组成部分,嵌入式系统再度成为研究与应用的热点。 嵌入式系统软件平台为用户开发嵌入式应用程序提供了高起点、综 合的支撑环境,是用户开发应用程序的重要基础,本文在此平台主完成 了图像采集系统的设计与实现。 1 。2 国内终研究的现状 从2 0 世纪6 0 年代嵌入式系统的出现和兴起,经过了几十年的发展, 嵌入式系统的应用领域不断扩大,人们对嵌入式应用的需求越来越高, 这使得嵌入式软件变得越来越复杂。为了满足应用需求,增强系统的处 理能力,4 使、8 位、l6 位嵌入式微处理器也逐步让位予3 2 位嵌入式处 理器。目前,嵌入式处理器主要有a m18 6 88 、38 6 e x 、s c 一4 0 0 、p o w e r p c 、 6 8 0 0 9 、m l p s 、a 爻狱系列。采震a r 麓技术知识产权( 1 p ) 核的微处理器, 已广泛应用于工业控制、消费类电子产品、通信系统、网络系统、无线 系统各个领域,基于a r m 技术的微处理器约占3 2 位r l s c 微处理器7 5 以上的市场份额i l 以】。 嵌入式操作系统是嵌入式系统软件平台的核心,负责嵌入式系统的 全部软、硬件资源的分配、调度、控制、协调。早期的嵌入式系统,多 半是执行特定功能的设备,强调的是性能稳定,只需搭配简单的应用程 序,是一个专属的封闭式的系统架构。2 0 世纪8 0 年代中期以后,嵌入 式系统的实时性要求升高,实时操作系统成为主流,系统开始具备文件 管理、设备管理、多任务、图形用户赛面等功能,是一耪开放式架梅。 2 0 世纪9 0 年代末期到21 世纪,通用操作系统也进入嵌入式领域,与实 时操作系统共同竞争新兴的信息家电市场。目前,嵌入式操作系统需要 支持各种网络通信协议,而且程序对编程接口的要求也不断提高pj 。根 据实时性差别,应用在嵌入式系统可以分为实时操作系统:国际上较 为知名的有w i n d r i v e r 的“v x w o r k s ”、q n x 的“n e u t r i n o r t o s ”、以及t i m e s y s 的“t i m e s y sl inuxreal t i m e 其产品主要应用在航天、国防、 医疗、工业控制等领域。通用型操作系统:目前较为著名的有m i c r o s o f t 的“w i n d o w s ce”,embeddedl i n u x 版本有m e t r o w e r k s 的“e m b e d i x ” , 其产品主要应用在手持设备、网络设备等领域。 l i n u x 诞生于十多年i i ,无数的程序员对它进行了增强,赋予其更 多的功能和特色,使它更加高效、可靠。作为目前最为流行的一款开发 源码的操作系统,与常见的嵌入式操作系统如v x w o r k s 、q n x 、 w i n d o w s c e 等相比,嵌入式l i n u x 操作系统以价格低廉、功能强大且易 于移植而被广泛采用,越来越多的科研与开发人员的目光已经转向嵌入 式l i n u x 的开发和应用上【4 1 。嵌入式l i n u x 至少具有以下优势: ( 1 ) l i n u x 的多任务内核非常稳定,它的高效和稳定性已经在各个领 域,尤其在网络服务器领域,得到了验证。l i n u x 内核小巧灵活,易于 裁减,这使得它适合嵌入式系统的应用; ( 2 ) l i n u x 支持多种体系结构,目前,l i n u x 已经被移植到数十种硬 件平台上,几乎支持所有流行的c p u ; ( 3 ) l i n u x 具有非常高效强大的网络功能,支持各种流行的网络协议, 网络是l i n u x 的强项; ( 4 ) l i n u x 支持多种文件和图形系统,具有良好的兼容性及友好的用 户界面; ( 5 ) l i n u x 有着非常优秀的完整开发工具链,g u n 开发工具系列一直 为人称道,有十几种集成开发环境,其中很多是免费的,大大降低了开 发费用: ( 6 ) l i n u x 的自由精神吸引了成千上万的程序员投入到l i n u x 的开发 和测试中,有着丰富完整的文档及得到软件开发者的广泛支持: ( 7 ) l i n u x 操作系统,它的开发源码使用户获得更大的自由度,l i n u x 上的软件资源十分丰富,每一种通用程序在l i n u x 都可以找到。 1 3 本文解决的难点 本文解决的难点在于研究在m a g i c a r m 2 4 l0 平台的基础上构建基于 l i n u x2 6 内核的嵌入式l i n u x 系统,同时充分利用n a n df l a s h 闪存高 容量低成本的特点,利用n a n df l a s h 闪存作为嵌入式l i n u x 系统的主 要存储设备。 本文阐述移植所涉及到的目标软硬件平台并提出了移植方案,同时 为本次移植工作安装基本的工具和编译生成交叉工具链,接着研究系统 2 第2 章嵌入式系统硬件平台 本文研究使用的嵌入式系统硬件平台是m a g i c a r m 2 4 10 ,它以三星 s 3c 2 4l0 芯片为处理器,是一个强大、灵活的开发平台,在这个平台上 很容易进行软件开发研究及硬件设计。s 3 c 2 410 所采用的核心内核是 a r m9 2 0 t 处理器核。 2 1a rm 处理器简介 a r m ,可以认为是一个公司的名字,也可以认为是一类微处理器的 统称,还可以认为是一种技术的名字。19 91 年a r m 公司成立于英国剑 桥,主要出售芯片设计技术的授权。目前,采用a r m 技术知识产权核 的微处理器,已遍及工业控制、消费类电子产品、通信系统、网络系统、 无线系统等各类产品市场,基于a r m 技术的微处理器应用大约占据3 2 位r i s c 微处理器7 5 以上的市场份额,a r m 技术正逐步渗入到生活的 各个方面”j 。 2 1 1a r m 处理器系列 a r m 微处理器目前包括a r m 7 、a r m 9 、a r m 9 e 、a r m 1o e 、 s e c u r c o r e 、i n t e l 的s t r o n g a r m ,i n t e l 的x s c a l e 系列,以及其他厂商基 于a r m 体系结构的处理器,除了具有a r m 体系结构的共同点外,每个 系列的a r m 微处理器都有各自的特点和应用领域。其中,a r m 7 、a r m 9 、 a r m 9 e 和a r m 10 e 位4 个通用处理器系列,每个系列提供一套相对独 特的性能来满足不同应用领域的需求。a r m 7 系列适用于工业控制、网 络设备、移动电话等应用;a r m 9 、a r m 9 e 和a r m 10 e 系列更适合无线 设备、消费类电子产品的设计;s e c u r c o r e 系列专门为安全较高的应用 而设计,例如,电子商务、电子政务、电子银行业务等领域。i n t e l 的 s t r o n g a r m 是便携式通信产品和消费类电子产品的理想选择,已成功用 于多家公司的掌上电脑系列产品。 2 1 2a r m 核和指令架构 a r m 核分为两类,一类称为处理器核,包含a r m 7 t d m i 、a r m 8 、 s t r o n g a r m ,a r m 9 t d m i 以及a r ml0 t d m i ;另一类成为c p u 核,是在 各种处理器核基础之上集成优化c a c h e 和mm u 后形成的。已能以独立 4 访问,它包括条件标志位、中断禁止位、当前处理器模式标志位,以及 一些相关的控制和状态位【7 1 。 每一种非用户模式下都有一个专用的物理状态寄存器,当异常发生 时,s p s r 用于保存c p s r 的当前值,从异常退出时则可由s p s r 来恢复 c p s r 。 ( 3 ) 异常处理 当在程序的运行之中发生外部或内部事件需要处理器立即进行处理 时,就产生一个异常,表2 1 给出了a r m 支持的7 中异常处理方式。 表2 1a r m 的7 种异常处理方式 异常方式处理该异常的处理器模式异常向量 系统复位 s v c0 x 0 0 0 00 0 0 0 未定义指令 u n d0 x 0 0 0 00 0 0 4 软件中断 sv co x 0 0 0 00 0 0 8 指令预取内存错误 a b t0 x 0 0 0 00 0 0 c 数据访问内存错误a b to x 0 0 0 00 0 1 0 一般中断 i r q 0 x 0 0 0 00 018 快速中断 f i q o x 0 0 0 00 0 lc ( 4 ) 输入输出系统 a r m 对输入输出的外部设备是作为内存映像形式处理的,i o 映射 的寄存器地址与内存一样,都是统一编址的,访问这些外部设备可以采 用读取和设置这些地址,与访问内存地址一样,唯一的区别就是i o 寄 存器是“读敏感 的,每次读的值都可能不一样,因此它们不能被缓冲 和缓存。 2 2magic a rm 2 41o 实验开发平台特点及功能模块 进行嵌入式操作系统的移植,都需要对所要移植的目标硬件平台有 比较深入的理解,本文选用的嵌入式开发平台采用s a m s u n g 公司的基于 a r m 9 2 0 t 核的s 3c 2 4lo 微处理器,具有性能高、功耗低等特点。 2 2 1 平台特点 m a g i c a r m 2 4 10 实验箱硬件主要由以下几个部分组成: ( 1 ) d e v i c e a r m 2 4 10 核心版 ( 2 ) m a g i c a r m 2 4 1o 实验箱主板 ( 3 ) 实验 异常方式处理该异常的处理器模式异常向量 ( 5 ) g p r s 模块 ( 6 ) v g ap a c k 板 ( 7 ) c s 8 9 0 0p a c k 板 核心板上集成s a m s u n gs 3c 2 4 l0 a 处理器,l6 k b 指令c a c h e ,l6 k b 数据c a c h e ,利用m m u 实现虚拟内存管理,l c d 控制器支持s t n 屏或 t f t 屏,支持n a n df l a s h 系统启动,还拥有以下特性: ( 1 ) a r m 9 2 0 t 嵌入式处理器内核,主频可达2 0 3 m h z : ( 2 ) 外部存储器控制器,共分为8 个b a n k ,每个b a n k 可访问l2 8 m b 空间: ( 3 ) 4 通道d m a ,有外部请求引脚; ( 4 ) 3 个u a r t ( i r d a1 0 , l6 字节t xf i f o ,l6 字节r xf i f o ) : ( 5 ) 一个多主i i c 总线接口; ( 6 ) n a n df l a s h s m 卡接口,支持n a n df l a s h 系统引导; ( 7 ) 2 个u s b 主机接口,1 个u s b 设备接口; ( 8 ) 4 个p w m 定时器和1 个内部定时器: ( 9 ) 看门狗定时器; l l7 个通用i o 口; a d2 4 个外部中断; 8 通道l0 位a d c 和触摸屏接口; 功耗控制模式:普通、慢速、空闲和掉电模式; 具有片内p l l 时钟发生器。 核心板最主要的功能是处理器s 3 c 2 4l0 ,如图2 1 为s 3 c 2 4l0 的结构框 图。 底板上提供以下接口: 以太网接口:支持l0 10 0 m 以太网: u s b 接口:4 个u s b 主机口,1 个u s b 设备口: 音频接口:i i s 数字音频输入输出接口; p c m c i a 接口:1 个6 8 p i np c m c i a 接口; c f 卡接口:1 个( p c m c i a 接口扩展) ; i d e 硬盘接口:1 个( p c m c i a 接口扩展) ; s d m m c 卡接口:1 个 c a n 接口:l 路( c a n 控制器s j a l0 0 0 ) ; g p r sp a c k 接口:1 个,用来扩展g p r s 模块; v g ap a c k 接口:1 个,用来扩展v g a 输出接口; 总线扩展接口:2 个( 1 个l6 位总线的、一个32 位总线的) ; 7 图2 2m a g i c a r m 2 4l0 实验箱功能图 2 3m agic a r m2 410 实验开发平台存储空间分配 2 3 1 存储空间分配 s 3c 2 410 处理器内部集成了存储控制器,它可以为片外存储器访问 提供必要的控制信号,主要包括以下特点: ( 1 ) 支持大、小端模式,地址空间: ( 2 ) 包含8 个地址空间,每个地址空间的大小为l2 8 m 字节,总共有 lg 字节的地址空间; ( 3 ) 除b a n k o 以外的所有地址空间都可用通过编程设置为8 位、16 位或3 2 位对准访问。b a n k 0 可用设置为16 位、32 位访问: ( 4 ) 8 个地址空间中,6 个地址空间可以用于r o m 、s r a m 等存储器, 2 个用于r o m 、s r a m 、s d r a m 等存储器; ( 5 ) 7 个地址空间的起始地址及空间大小是固定的; ( 6 ) 1 个地址空间的访问周期都可以通过编程配置; ( 7 ) 提供外部扩展总线的等待周期; ( 8 ) s d r a m 支持自动刷新和掉电模式。 图2 3 为s 3 c 2 4lo 复位后的地址分配示意图,f l a s h 、s d r a m 分别 分配在n g c s 0 和n g c s 6 上,其它的外设寻址可以通过内部寄存器来实 现。 9 o f f 薛伟庠 一 舛伽0 一咖 q do f f f 臼伽帅 “姗二硼 o 【姗咖 o 湘 a 鳓咖 伍1 咖硼 厶 咖 a 0 啪咖 a 姗咖 a 嚏 硼= 伯o 1 棚= n 瞳d s 讯柚 i s 籼f 氓材 jl 铷明m 删m 怕 钾瞄乃 ,蜀嘲叫b 慵蟪们麓m b s r d 髑d f 弧u细朗峒伽朗嘲叠 衅踯丹2 u 9 一m b 蕾姻 p 辍叫 i a 嘞 1 盈嘲口 r jl 钢o 雹日 “芄跚 r 8 r 0 jl 3 3 a 粗口 1 s r o l 钾s 乃 1 a b 1 飘o j ”0 c 3 1 a 憎 j 日o 瞳t ,n 囊n 口 s 甩m 4 k 日1 _ 嘲啪 - h 一嗍- 啪- h - h - 鬣l 图2 3 复位后s 3 c 2 4 l0 a 的内存映射 2 3 2f l a s h 存储设备 f l a s h 闪存是电可擦写只读存储器e e p r o m 的一种,具有抗震强、 功耗低、速度快、密度高、成本低等优点,即使在不加电的情况下,数 据也不会丢失,是一种能够长期存储数据的设备,因此在嵌入式系统中 被广泛用做外存器件。在嵌入式设备特别是手持设备中,f l a s h 闪存是焊 接在嵌入式设备主板上的f l a s h 闪存芯片,并可通过嵌入在设备上的 m m c s d 卡等控制器及插槽来扩充存储空间。目前,f l a s h 主要有两种 类型,即传统的n o rf l a s h 和较新的n a n df l a s h 。 n o rf l a s h 是最早出现的f l a s hm e m o r y ,它源于传统的e p r o m 器 件,与其它f l a s hm e m o r y 相比,具有可靠性高、随机读取速度快的优势, 在擦除和编程操作较少而直接执行代码的场合,尤其是纯代码存储的应 用中广泛使用,如b i o s 固件、移动电话、硬盘驱动器的控制存储器等1 8 j 。 n o rf l a s h 具有以下主要特点: ( 1 ) 程序和数据可存储在同一个芯片上,拥有独立的数据总线和地址 总线,能快速随机读取,允许系统直接从f l a s h 中读取代码执行,而无 需先将代码下载至r a m 中再执行; 1 0 ( 2 ) 可以单字节或单字编程,但不能单字节擦除,必需以块为单位或 对整片执行擦除操作,在对存储器进行重新编程之前需要对块或整片进 行预处理和擦除操作。由于n o rf l a s h 的擦除和编程速度较慢,而块尺 寸又较大,因此擦除和编程所花费的时间很长,在纯数据存储和文件存 储的应用中,n o rf l a s h 技术显得能力不够。 n a n df l a s h 强调降低每位的成本和更高的性能,并可象磁盘一样 可以通过接口轻松升级,适合于纯数据存储和文件存储。n a n df l a s h 既可独立成为外存,也可组成其他各种类型的电子盘如u s b 盘、c f 、 s d 和m m c 存储卡等,成为了闪速磁盘技术的核心。n a n df l a s h 具有 以下特点: ( 1 ) 以页为单位进行读和编程操作,根据n a n df l a s h 的容量大小, 每页为5l2 b 或2 k b 等;以块为单位进行擦除操作,根据n a n df l a s h 的容量大小,每块为16 b 或者12 8 k b 等,包含若干页;具有快编程和快 擦除的功能,其块擦除时间为2 m s ;而n o rf l a s h 达到几百m s ; ( 2 ) 数据、地址采用同一总线,实现串行读取。随机读取速度慢而不 能按字节随机编程; ( 3 ) 芯片尺寸小,引脚数量少,是成本最低的固态存储器; ( 4 ) 芯片包含坏块,坏块不会影响有效块的性能,但设计者需要将坏 块在地址映像表中屏蔽起来。n o rf l a s h 与n a n df l a s h 对比如表2 2 所 示: 表2 2n o rf l a s h 与n a n df l a s h 对比 类别n o rf l a s hn a n df l a s h 容量小( 数百k b 数十m b )大( 数十m b 数gb ) 线性时间随机读。类似 读取方式 以页为单位读,类似磁盘 r am 组织成l6 k b 或l2 8 k b 的擦除块,每 组织成8k b 12 8 k b 的擦个又由多个512 b 或2 k b 字节的页组 组织结构 除块成,每个页有l6 b 或6 4 b 字节的带 外数据用于存放元数据或e c c 擦除时间慢( 数百m s )快( 2 4 m s ) 编程方式允许逐字节编程页面编程 擦写次数约lo 万次约10 0 万次 位反转少较多,需要错误探测错误更正算法 坏块处理无,因为坏块故障率少 随机分布,无法修正 2 3 3m t d 存储技术 存储技术设备m t d ( m e m o r yt e c h n o l o g yd e v i c e ) 涵盖了几乎所有 的存储设备,例如常用的r o m 、r a m 、f l a s h 以及d i s p o n c h ip 等等。 这类设备的性能、特点和限制各不相同,为了尽可能避免针对不同技术 使用不同的工具来操作这些设备,以及为不同的技术提供共同的能力, l i n u x 内核纳入了m t d 子系统。 m t d 在存储设备,特别是f l a s h 设备硬件驱动程序与文件系统层之 间提供了一个抽象接口,通过这个中间层接口来访问存储设备,如r o m 、 f l a s h 等,硬件驱动不关心上层使用的存储格式,如f t l 、j f f s 等,仅 仅需要提供一些简单的处理例程如r e a d 、w r i t e 和e r a s e 等,设备内容的 具体表现形式将被上层采取适当的形式处理。m t d 将存储设备的共同特 性抽取出来,让底层的m t d 芯片驱动程序无缝的与称为“用户模块 的较高层接口组合在一起,如图2 4 所示: 图2 4m t d 子系统 m t d 用户模块指的是内核中的软件组件,它们提供可识别的接口和 抽象层,让内核的较高层或用户空间能够存取底层m t d 芯片驱动程序。 1 2 m t d 芯片驱动程序特别的是针对f l a s h 闪存设备设计的,它为基于块的 擦除和读写操作提供了更好的接口。 m t d 提供了对字符设备m t dc h a r 和块设备m t db l o c k 的支 持。m t dc h a r 字符设备提供了对f l a s h 闪存的原始字符访问; m t db l o c k 块设备象通常的i d e 硬盘一样,可以在其上创建文件系统。 m t dc h a r 字符设备文件在l i n u x 系统中的表现形式是d e v m t d 0 、 d e v ,m t d1 等,m t db l o c k 块设备文件表现形式是d e v m t d b l o c k o 、 d e v m t d b l o c k l 等【9 - 15 】。 2 4 本章小结 本章主要介绍了嵌入式系统硬件平台m a g i c a r m 2 41o ,它是以三星 s 3c 2 410 芯片为处理器,其中还包括平台的特点和功能模块,同时还介 绍了平台存储空间的分配情况,选择f l a s h 闪存和m t d 存储技术。其中 f l a s h 闪存是电可擦写只读存储器e e p r o m 的一种,具有抗震强、功耗 低、速度快、密度高、成本低等优点,即使在不加电的情况下,数据也 不会丢失。m t d 将存储设备的共同特性抽取出来,让底层的m t d 芯片 驱动程序无缝的与称为“用户模块 的较高层接口组合在一起。 第3 章嵌入式lin ux 系统软件平台 3 1 嵌入式操作系统l in ux 简介 在a r m 中使用l i n u x 操作系统涉及l i n u x 内核版本的选择问题,选 择一个合适的内核版本是保证嵌入式l i n u x 系统稳定性的关键一环。 3 1 1 内核版本的选择 l i n u x 内核有两种:适用于工业级要求的内核版本性能稳定,可以 在开发中广泛应用,此类内核版本称之为稳定版本。相反,处于试验、 测试阶段的开发版本的内核性能不太稳定,不适合使用于应用级的操作 系统中。 l i n u x 通过一个简单的命名机制来区分稳定的和处于开发中的内 核,这种机制使用“ 所分隔的数字来代表不同的内核,第一个数字是 主版本号,第二个数字是次版本号,第三个数字代表修订版本号,通过 次版本号的奇偶来区分一个内核是稳定版还是开发版,奇数代表开发版, 偶数代表稳定版。 用于移植的l i n u x 内核应该优先选用稳定版的内核,例如2 4 x 或 2 6 x 版内核。目前用于嵌入式l i n u x 系统的内核大多数使用2 4 x 版的 内核,但是,随着嵌入式微处理器的不断增强及其应用范围的日趋扩大, l i n u x2 6 版内核由于其自身所具有的针对嵌入式系统应用的显著特点, 必将会越来越多的被应用在嵌入式l i n u x 系统中。 l i n u x2 6 包括了一些强有力的特性,这些特性包括改进高端企业服 务器的性能和支持越来越多的嵌入式设备。对于嵌入式系统领域,添加 了针对大量新的系统结构和嵌入式微处理器类型的支持一包括对没有内 存管理单元m m u 系统的支持,所以,在向a r m 系统移植l i n u x 时,l i n u x 2 6 内核已不再需要针对a r m 嵌入式微处理器和目标板的补丁。 在嵌入式系统方面,实时可靠性是嵌入式应用较为普遍的要求,尽 管l i n u x 并非一个真正的实时操作系统,然而由于2 6 版内核在多方面 的改进,使它在响应方面比以前版本有了巨大的改善。其中,在提高系 统中断性能和调度响应时间方面,主要涉及到内核中三个方面的重大改 进:采用可抢占式内核、o ( 1 ) 调度算法以及增强的同步机制。 ( 1 ) 内核抢占:2 6 内核中引入了内核抢占点机制,在内核代码中插 入了抢占点,允许调度程序中止当前进程而调用更高优先级的进程,通 1 4 过对抢占点的测试避免不合理的系统调用延时。2 6 内核在一定程度上 是可抢占的,比2 4 内核具备更好豹响应性,但也不是所有的内核代码 段都可以被抢占,可以通过锁定内核代码的关键部分,不允许抢占,锁 定可以确保c p u 数据结构和状态始终受到保护丽不被抢占。 2 ) o ( 1 ) 调度器。2 6 版本的l i n u x 内核的调度器被完全重写,使用 了由i n g om o l n a r 开发的新的调度算法。它在高负荷的情况下执行得及 其如色,并且当有很多处理器时可以很好地扩展。 ( 3 ) 增强的同步机制。多进程应用程序需要共享内存和外设资源, 为避免竞争采用了互斥的方法保证资源在同一时刻只被一个任务访问。 早期的l i n u x 内核用一个系统调用来决定一个线程是否应该阻塞或是继 续执行来实现互斥,如果是线程继续执行,这个费时的系统调用就没有 必要了。l i n u x2 6 内核所支持的“f u t e x e s ( f a s tu s e r s p a c em u t e x e s ) 同步机制可以从用户空间检测是不是需要阻塞线程,只有在需要时才执 行系统调用终止线程。此外,l i n u x2 6 内核中与嵌入式相关的一些重要 改进: l i n u x 的i o 予系统经过很多的修改,使得它在各种工作负荷下都 更具响应性。这个变化包括i o 调用子系统:决定何时、哪个进程去读 一个的内核代码的完全重写,重写的i ,o 层现在可以更好地保证没有进 程过长时间地停留在i o 等待上,同时不排斥以前的优化工作。 l i n u x 的线程框架被重写,以使n p l l ( n a l i v ep o s l xt h r e a dl i b r a f y ) 可以运行于其上( 实际上,r e d h a t 已经将它向后移植到l i n u x ,从r e d h a t 9 o 中开始包含) 。 嵌入式应用有用户定制的特点,硬件设计都针对特定应用开发,这 个系统带来非标准设计支持的问题,为了更好地实现,可以采用部件化 的操作系统。l i n u x2 6 采用的子系统架构将功能模块化,可以定制而对 其它部分影响最小,同时l i n u x2 6 提供了多种新技术的支持以实现各种 应用开发,如a l s a ( a d v a n e e d 己i n u xs o u n da r c h i t e c t u r e ) 和v d e 0 4 l i n u x 等,对多媒体信息处理更加方便;对u s b2 o 的支持,提供更高速的传 输,增加无线接口、音频数据链接和面向链接的数据传输协议 l 2 c a p ( l o g i c a ll i n kc o n t r o la d a p t a t i o np r o t o c a l ) ,满足短距离的无线连 接的需要;丽且在l i n u x2 6 内核还可以配置成无输入和显示的纯粹无用 户接口系统【l6 - 2 们。 l i n u x2 。6 内核由于其自身所具有的针对嵌入式系统应用的显著特 点,在稳定性、相应性、对设备支持的广泛性等方面相比以前豹内核都 有较大的提高,必将会越来越多的应用在嵌入式系统之中。因此,本文 3 1 3 交叉编译环境的建立 交叉编译就是在一个平台上生成可以在另一个平台上执行的代码。 采用交叉编译的主要原因在于,多数嵌入式目标机不能提供足够的资源 供编译过程使用,因而只好将编译工作转移到高性能的宿主机中进行。 在宿主机上对即将运行在目标机上的应用程序进行编译,生成可在目标 机上运行的代码格式。 交叉编译工具主要包括针对目标系统的编译器g c c 、目标系统的二 进制工具b i n u t i l s 、目标系统的标准c 库g l i b c 和目标系统的内核头文件。 在下载这些源码时,并不是越新越好,整个编译过程大体分为以下几个 步骤: ( 1 ) 设置环境变量: ( 2 ) 编译g u nb i n u t i l s ; ( 3 ) 准备内核头文件; ( 4 ) 编译g l i b c 头文件; ( 5 ) 编译g c c 第一阶段; ( 6 ) 编译完整的g l i b c : ( 7 ) 编译完整的g c c 。通过执行b u i l d t o o l c h a i n 的b a s h 脚本,完成了 交叉编译工具的建立【2 6 28 1 。 到此,整个交叉编译环境完成了,建立一个交叉工具链是一个非常 复杂的过程,为了节省时间可以从网上下载编译好的可用的交叉编译工 具链,只需解压后配置环境变量即可使用,目前可供下载的版本有两个: c r o s s - 2 9 5 3 t a r g z 和c r o s s 一3 2 t a r g z 。 交叉编译工具做完后,简单验证一下,首先建立一个h e l l o w o r l d c 文件:。 群i n c l u d e i n tm a i n ( v o i d ) p r i n t “h e l l ow o r l d n ”) ; r e t u r n0 ; 然后执行如下命令: $ a r m - l i n u x - g c c oh e l l o w o r l dh e l l o w o r l d c $ f i l eh e l l o w o r l d 如果输出以下信息,说明成功建立了编译工具。 h e l l o w o r l d :e l f3 2 - b i tl s be x e c u t a b l e ,a r m ,v e r s i o n1 ,d y n a m i c a l l y l i n k e d ,n o ts t r i p p e d 1 8 硕十学位论文 3 2boo tio ad er 的设计和实现 3 2 1b o o tio ad9r 的概念与启动流程 b o o t l o a d e r 是在操作系统内核运行之前运行的一段程序,它类似于 p c 机中的b i o s 程序,通过这段程序,可以完成硬件设备的初始化,并 建立内存空间的映射图的功能,从而将系统的软硬件环境带到一个合适 的状态,为最终调用系统内核做好准备。 通常,b o o t l o a d e r 是严重依赖于硬件实现的,特别是在嵌入式中, 因此,在嵌入式世界里建立一个通用的b o o t l o a d e r 几乎是不可能的。尽 管如此,仍然可以对b o o t l o a d e r 归纳出一些通用的概念来指导用户特定 的b o o t l o a d e r 的设计与实现。 ( 1 ) b o o t l o a d e r 所支持的c p u 和嵌入式开发板。 每种不同的c p u 体系结构都有不同的b o o t l o a d e r 。有些b o o t l o a d e r 也支持多种体系结构的c p u ,例如u b o o t 就同时支持a r m 体系结构和 m i p s 体系结构。除了依赖于c p u 体系结构外,b o o t l o a d e r 还依赖于具 体的嵌入式板级设备的配置。 ( 2 ) b o o t l o a d e r 的安装媒介。 系统加电复位后,所有的c p u 通常都从某个c p u 制造商预先安排 的地址上取指令,而基于c p u 构建的嵌入式系统通常都有某种类型的固 态存储设备被映射到这个预先安排的地址上,系统加电后,c p u 首先执 行b o o t l o a d e r 程序。 ( 3 ) b o o t l o a d e r 的启动过程可以分为单阶段和多阶段两种。通常多阶 段的b o o t l o a d e r 能提供更为复杂的功能,以及更好的可移植性。 ( 4 ) b o o t l o a d e r 的操作模式。大多数b o o t l o a d e r 都包含两种不同的操 作模式:“启动加载 模式和“下载模式,这种区别仅对于开发人员有 意义。“启动加载 模式,也称为“自主模式,即b o o t l o a d e r 从目标 机上的某个固态存储设备上将操作系统加载到r a m 中运行,整个过程 并没有用户的介入,这种模式是嵌入式产品发布时的通用模式;”下载模 式”,在这种模式下,目标机上的b o o t l o a d e r 将通过串口连接或网络连 接等手段从主机下载文件,例如下载内核映像和根文件系统映像等,从 主机上下载的文件通常首先被b o o t l o a d e r 保存到目标机的r a m 中,然 后再被b o o t l o a d e r 写到目标机的f l a s h 类固态存储设备中,b o o t l o a d e r 的这种模式是在系统更新时使用,工作于这种模式下的b o o t l o a d e r 通常 会向它的终端提供一个简单的命令行接口。 ( 5 ) b o o t l o a d e r 与主机之间进行文件传输所用的通信设备及协议,最 1 9 常用的情况是,目标机上的b o o t l o a d e r 通过串口与主机之间进行文件传 输,传输协议通常是x m o d e m y m o d e m z m o d e m 协议中的一种。但是,串 口传输的速度是有限的,因此通过以

温馨提示

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

评论

0/150

提交评论