(信号与信息处理专业论文)嵌入式系统在多通道高速数据采集器中的应用.pdf_第1页
(信号与信息处理专业论文)嵌入式系统在多通道高速数据采集器中的应用.pdf_第2页
(信号与信息处理专业论文)嵌入式系统在多通道高速数据采集器中的应用.pdf_第3页
(信号与信息处理专业论文)嵌入式系统在多通道高速数据采集器中的应用.pdf_第4页
(信号与信息处理专业论文)嵌入式系统在多通道高速数据采集器中的应用.pdf_第5页
已阅读5页,还剩72页未读, 继续免费阅读

(信号与信息处理专业论文)嵌入式系统在多通道高速数据采集器中的应用.pdf.pdf 免费下载

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

文档简介

哈尔滨i :拌人学硕十学位论文 摘要 在水声技术的研究中,数据采集器是不可或缺的重要设备,本论文是以 高性能的多通道高速通用声呐数掘采集器研制为背景展开的,以采集系统的 控制为核心进行的专题性研究。 作为采集系统的控制核心,承担系统内包括模拟通道、d s p 阵列信号处 理、磁盘阵列文件系统管理和人机交互管理在内的综合控制。论文根据系统 控制要求,合理选择了高性能的嵌入式微处理器进行设计。 本文详细阐述了该采集系统的整体硬件结构设计和控制子系统硬件结构 设计,围绕着嵌入式系统在多通道高速数据采集系统中的应用展开了一系列 研究工作,主要完成了以下工作: ( 1 ) 嵌入式控制子系统硬件平台设计; ( 2 ) 子系统软件丌发,包括u b o o t 引导程序、l i n u x 内核、r a m d i s k 文件系统、f r a m b u f f e r 字符驱动和人机交互界面。 关键词:数据采集器;嵌入式系统;u b o o t ;l i n u x 哈尔滨i :程人学硕+ 学位论文 a b s t r a c t i nt h es t u d yo fu n d e r w a t e ra c o u s t i ct e c h n o l o g y , t h ed a t aa c q u i s i t i o ns y s t e m i sn e c e s s a r ya n di m p o r t a n te q u i p m e n t t h i sp a p e ri sb a s e do nh i g l l p e r f o r m a n c e m u l t i c h a n n e l h i g i i s p e e dg e n e r a la c o u s t i cd a t aa c q u i s i t i o ns y s t e m t h e c o n t r o l - c o r eo fd a t a a c q u i s i t i o ns y s t e mi sc o n d u c t e da sas p e c i a ls t u d y t h ec o n t r o l c o r eo fd a t aa c q u i s i t i o ns y s t e mt a k e so nt h es y s t e ms y n t h e s i z e d c o n t r o l ,i n c l u d i n ga n a l o gc h a n n e l 、d s pa r r a ys i g n a lp r o c e s s i n g 、r a i df i l e s y s t e mm a n a g i n g a n dh c im a n a g i n g t h i s p a p e r r e a s o n a b l yc h o o s e s t h e e m b e d d e d m i c r o p r o c e s s o ro nt h eb a s i so fs y s t e mc o n t r 0 1 t h i sp a p e rd e s c r i b e st h ew h o l eh a r d w a r es t r u c t u r ea n dt h ed e s i g no ft h e h a r d w a r es t r u c t u r eo f s u b s y s t e mi n c l u d i n g as e r i e so fr e s e a r c ha b o u tt h e a p p l i c a t i o no fe m b e d d e ds y s t e mt ot h em u l t i - c h a n n e la n dh i g h - - s p e e dd a t a a c q u i s i t i o ns y s t e m ,a sf o l l o w s : ( 1 ) d e s i g n i n gt h eh a r d w a r es t r u c t u r eo fe m b e d d e dc o n t r o l s u b s y s t e m ; ( 2 ) d e s i g n i n gt h es o f t w a r eo fs u b s y s t e mi n c l u d i n gu ,b o o t ,l i n u xk e r n e l , r a m d i s kf i l es y s t e ma n dt h ec h a rd r i v e ro ff r a m b u f f e ra n dh c i k e yw o r d s :d a q ;e m b e d d e ds y s t e m ;u b o o t ;l i n u x 哈尔滨工程大学 学位论文原创性声明 本人郑重声明:本论文的所有工作,是在导师的指导 下,由作者本人独立完成的。有关观点、方法、数据和文 献的引用已在文中指出,并与参考文献相对应。除文中已 注明引用的内容外,本论文不包含任何其他个人或集体已 经公开发表的作品成果。对本文的研究做出重要贡献的个 人和集体,均已在文中以明确方式标明。本人完全意识到 本声明法律结果由本人承担。 作者( 签字) :整必 日期:h 年弓月9e t 哈尔滨l 。稃人学硕十学位论文 第1 章绪论 1 1 论文的研究背景及立题意义 随着海洋丌发的同益深入,声呐技术越来越受到人们的重视。在水声领 域,数据采集系统是整个声呐系统中极为重要和关键的部分,数字信号处理 已经成为了必不可少的重要手段,信号的采集和处理具有至关重要的作用。 由于水声领域的一些特殊性,水声信号处理对信号采集与处理系统也有一些 特殊要求。一般来说,主动式声呐系统大都采用多元阵,基阵输出的信号路 数较多,因此要求相应的采集系统为多通道采集系统;而且一般要求各路信 号为同时采样,以免造成各路样本之b j 的相位差。另外,为了利于后续处理, 一般要求在采集数据之i j 先完成一些信号调理工作,如可变增益放大、滤波、 阻抗匹配等,要完成这些非线性处理极易引入失真、相位变化以及引入噪声, 因此这些功能对于i i i f 置模拟电路性能要求很高;另外,由于水声信号的采样 率比较高,而且通道数又相当多,因此采集的数据量相当庞大,这对数据的 传输和存储以及后续数字信号处理系统的处理速度都提出了很高的要求。 因此,研制和开发性能优异的多通道高速数据采集器是十分必要的。该 数据采集器具有以下特点: ( 1 ) 数据采集系统的硬件平台采取模块化和标准化的设计; ( 2 ) 数据采集系统具有良好的通用性和可扩展性: ( 3 ) 采用嵌入式系统作为采集系统的控制核心,承担系统内包括模拟通 道、d s p 阵列信号处理、磁盘阵列文件管理和人机交互在内的综合控制。 1 2 国内外研究现状 通过对市场上常见的数据采集器进行了一些调查,选择了其中典型的几 种与本文设计的数据采集器进行了比较,这些采集器的一个普遍的特点就是 采集某些固定种类的信号,而且动态范围也比较小,通道数一般比较少以及 必须与主机进行接口等等,这些都限制了其具体的应用范围,这就需要从实 际要求出发,设计一套适合于水声数据采集的较为通用的系统。将这些数据 哈尔滨i 。张人学硕十学位论文 采集器与本系统进行比较。结果如表1 1 所示。 表1 1 国内外数据采集器与本系统比较情况表 公司名称 中泰研创 n lh e u 产鼎型号p c i 8 3 3 5 bu s b 7 3 3 5 a ,bp c i 6 2 5 9u s b 6 0 1 5 本系统 通道数3 28 成1 61 6 或3 21 66 4 采样率 l o o l ( h z 5 0 0 k h z ,1 2 5 m h z2 0 0 l u _ b o o t g z;生成压缩文件 如果编译成功,会生成四个文件:u b o o t 、1 1 b o o t b i n 、u b o o t s r o c 、u b o o t g z 。 其中u b o o t 是e l f 二进制文件格式的u b o o t 映像;u b o o t b i n 是u b o o t 的 原始二进制映像,可写入引导存储设备:小b o o t s r o c 是使用m o t o r o l a 的 s - r e c o r d 格式的u b o o t 映像;u b o o t g z 是u b o o t b i n 的压缩文件”胴n 1 1 。 3 2 5a t 9 1 r m 9 2 0 0 引导程序固化 固化a t 9 1 r m 9 2 0 0 的引导程序,需要涉及到4 个文件:l o a d e n b i n ,b o o t b i n , u b o o t b i n ,u b o o t g z 。下面对这几个文件所起的作用进行简单的说明。 3 2 5 1 映像文件执行流分析 ( 1 ) l o a d e r b i n 执行流程。这个文件主要在片内启动,当从串口下载代码 时会用到,特别是在一张裸板,在外部的f l a s h 中还没有任何固化程序的时 候需要用到。l o a d e r b i n 关键的程序片段如下: 哈尔滨f :稃人学硕十学位论文 l o a d e r e n t r y si n i tc p u b m a i n c r t 0 s c o p y d a t a 一 c l e a r b s s 一) bb o o t m a i n c 一 b o o t p g e ti n t e r n e lr o ms e n r i c ea d d r e s s * 产i n i to fr o ms e r v i c e ss t r u c t u r e | p a t g l = a t 9 1 c _ r o m _ b o o t _ a d d r e s s ; px m o d e mi n i t i a l i z a t i o n | 一- p a t g l 一 o p e n s b u f f e r 一 p a t 9 1 一 o p e n s v c x m o d e m ps y s t e mt i m e ri n i t i a l i z a t i o n l a t 9 1 f a i c c o n f i g u r e l t pe n a b l es ti n t e r r u p t + a t 9 1 f a i c e n a b l e r a t g l f _ d b g u p r i n t k ( ”x m o d e m :d o w n l o a du b o o t ”) ; j u m p s j u m pt ou b o o tb a s e a d d r e x e c j u m p ( ( u n s i g n e di n t ) a t 9 1 c _ u b o o t _ b a s e _ a d d r e s s ) 可以看出,l o a d e r b i n 主要完成c p u 必要的初始化操作,并且接受从p c 机的串口发下来的u b o o t b i n 程序,然后程序跳转到u - b o o t b i n 处运行。 ( 2 ) b o o t b i n 执行流程。该文件会在从片内启动时被下载到板子上,以后 还会被烧写到片外f l a s h 中,以便在片外启动,执行程序的关键片段如下: b o o t e n t r y s bm a i n c r t o s 一 c o p y d a t a 一 c l e a r b s s 一 bb o o t a 鸸1 f - d b g u _ p r i n t k ( ”) a t 9 1 f _ _ d b g u _ p t i n t k ( ”) ; a t g l f _ d b g u _ p r i n t k ( “。+ w e l c o m et oa t 9 1 r m 9 2 0 0 + ”) ; a t 9 1 f _ d b g u _ p r i n t k ( ”+ + + + + 8 。+ + 。+ + + + + + + ) ; b o o t r a i s e s | u n z i pu b o o t b i n 簪i d e c o m p r e s s _ i m a g e ( s r c ,d s t , l e n ) - g u n z i p 3 4 哈尔滨l :稃人学硕+ 学位论文 j u m pt ou b o o t b a s e a d d re x p x , 这罩跳转到解压u - b o o t g z 的地址处直接开 始执行u - b o o t a s m ( ”m o vp c , 0 ”:”r ”( d s l ; 可以看出,b o o t b i n 程序主要功能是拷贝压缩文件u - b o o t g z ,并且完成 对u - b o o t g z 的解压,最后跳转到解压后的u - b o o t b i n 的目标地址处执行程序一 ( 3 ) 叶b o o t b i n 执行流程,主要程序片段如下: u - b o o t c p u a t 9 1 r m 9 2 0 0 s t a r t s s t a r t 一- r e s e t c o p y e x - - - 印t 匈f f - 耐l 4s e tu pt h es t a c k + - - s t a r t _ a r m b o o t u - b o o 们i b _ a r m b o a r d c i n i t f n c t i n i ts e q u e n c e = c p u _ i n i t ,b a s i cc p ud e p e n d e n ts e t u p | b o a r d j n i t 。卜b a s i cb o a r dd e p e n d e n ts e t u p | i n t e r r u p t _ i n i t ,tu pe x c e p t i o n s + e n v _ i n i t 。i n i t i a l i z ee n v i r o n m e n t l i n i t _ b a u d r a t e 。l i n i t i a l z eb a u d r a t es e t t i n g s | s e r i a l _ i n i t ps e r i a lc o m m u n i c a t i o n ss e t u p | c o n s o l e _ i n i t j ,ps t a g e1i n i to fc o n s o l e | d i s p l a yb a n n e r , ps a yt h a tw e a r eh e r e | d r a m _ i n i t c o n f i g u r ea v a i l a b l er a m b a n k s l d i s p l a y _ d r a mc o n f i g , c b e c k b o a r d , n u u l ; 一 s t a r t _ a r m b o o t 一 c a l li n i ts e q u e n c e 一- f l a s h _ i n i t 一 d i s p l a y _ f t a s hc o n f i g 一 h a n di n i t 舯1 fd a t a f l a s h l n i t d a t a f l a s h _ p r i n ti n f o 一 e n v _ r e l o c a t e d r y v f d j n i t d e v i c e s _ i n i t 一 j u m p t a b l e _ i n i t 哈尔滨f :拌人学硕十学位论文 c o n s o l e i n i t r 一 m i s e i n i t r 一 e n a b l e _ i n t e r r u p t s c s 8 9 0 0 _ g e t _ e n e t a d d r 一 b o a r d _ _ p o s t _ i n i t 一 u b o o t c o m m o n m a i n c f o r ( ;) s h e l lp a r s e r + m a i n _ l o o p0 u _ b o o t _ h u s h _ s t a r t 一 r e a d l i n e 一 a b o r t b o o t 一 p r i n t f ( ”h i ta n yk e yt os t o pa u t o b o o t :2 d ”b o o t d e l a y ) ; ;。 以上是a t 9 1 r m 9 2 0 0 启动并进入u b o o t 的执行流分析。当u b o o t 完全 运行起来后,通过u ,b o o t 中设置环境变量,以及内核的命令行启动参数,在 引导l i n u x 内核的时候,u - b o o t 还会将l i n u x 内核的u l m a g e 解压到特定的位 置并丌始执行内核代码,然后挂载l i n u x 文件系统,最终让整个l i n u x 操作 系统运行起来。 3 2 5 2 烧写u b o o t h a s h 第一扇区用于存放u b o o t ,分区情况如图3 4 所示。 0 x 1 0 0 00 0 0 0 o x l 0 0 0 0 x 1 0 0 0e 0 0 0 o i 10 0 0 0 8 0 0 ti m a g e 2 4k b x c e s f r e e 3 2k b ,t e s e n v i r o n m e n tv a r i a b l e sbk 【脚5 u b o o t g z p p e d i m a g e 6 4 k b y 怕$ 图3 4f l a s h 第一扇区分区情况 哈尔滨| 掣人学硕十学位论文 首先在p c 机上打丌超级终端,设置好串口的波特率为1 1 5 2 0 0 ,8 n 1 , 将丌发板的跳线设置b m s 为高电平,让开发板从片内启动。加电,这时终 端会打印若干c c c 。 然后用x m o d e m 协议发送文件l o a d e r b i n ,发送完毕后接下来发送 u - b o o t b i n 文件,完毕后u b o o t 就运行丌发板上了。 下面要做的就是将u b o o t 固化到f l a s h 中,实际上,就是利用u b o o t 自身的f l 弱h 烧写功能来烧写u b o o t 的映像文件。烧写过程如下所示: ( 1 ) u b o o t p r o t e c to f fa l l ;取消f l a s h 写保护 ( 2 ) u - b o o t e r a s e1 0 0 0 0 0 01 0 0 1 f f f f;擦除第一扇区 ( 3 ) u 。b o o t l o a d b2 0 0 0 0 0 0 0;发送文件b o o t b i n ( k e n _ i a t 协议) ( 4 ) u b o o t c p b2 0 0 0 0 0 0 01 0 0 0 0 0 0 0 5 f f f;烧写b o o t b i n 到f l a s h ( 5 ) u b o o t l o a d b2 0 0 0 0 0 0 0;发送文件u b o o t g z ( k e r m i t 协议) ( 6 ) u b o o t c p b2 0 0 0 0 0 0 01 0 0 1 0 0 0 0f f f f;烧写u b o o t g z 到f l a s h 至此,u b o o t 已经烧写到f l a s h 上了。断电,设置b m s 为低电平,重新 上电就可以看到u b o o t 自动运行了,如图3 5 所示。 图3 5u b o o t 运行在丌发板上 哈尔滨i 稃人学硕十学位论文 3 3 嵌入式l i n u x 操作系统平台的研究与实现 由于嵌入式l i n u x 系统使用非常灵活,可以根据用户需要进行相应的裁 减、定制。嵌入式l i n u x 操作系统平台主要由两个部分组成:嵌入式l i n u x 内核和文件系统。本节主要研究l i n u x 系统,如何对系统进行裁减和移植, 然后对l i n u x 文件系统进行了一些介绍,研究了嵌入式l i n u x 目前比较流行 的r a m d i s k 文件系统,最后介绍了r a m d i s k 的制作过程9 。 3 3 1l i n u x 简介 最初的l i n u x 代码是1 9 9 1 年由芬兰的大学生l i n u st o r v a l d s 写的。他将 l i n u x 的原始代码放在i n t e r n e t 上,让人们自由下载。此后,l i n u x 被世界上 其他的程序员持续修改而发展迅速,1 9 9 4 年初,l i n u x l 0 终于诞生了,它已 经是一个功能完备的操作系统,而且内核紧凑、高效,可以充分发挥硬件的 性能。 l i n u x 的生命力来自于它的丌源思想,自l i n u s 公开l i n u x 代码以来,世 界各地的程序员和软件爱好者不断地对l i n u x 系统进行修改和加强,其版本 从最初的0 0 1 发展到2 0 x 、2 2 x 、2 4 x 直到现在的2 6 x ,同时,l i n u x 也 从最初的x 8 6 平台被移植到p o w e r p c 、a r m 、s p a r e 、m i p s 、6 8 k 等几乎市 面上能找到的所有体系结构上。在丌源运动的带动下,数不胜数的应用软件 出现在l i n u x 系统上,大大加强了l i n u x 系统的实用能力。 如今,从个人使用的桌面p c 到支持企业级应用的大型服务器,乃至嵌 入式系统的世界,l i n u x 已经无处不在。 3 - 3 2l i n u x 系统总体结构 从总体上看,运行在计算机硬件系统之上的l i n u x 操作系统可分为l i n u x 内核与应用程序两大部分。从上到下分别是; ( 1 ) 应用程序。应用程序是运行在l i n u x 操作系统上的一个庞大的软件 集合,它出系统应用程序和用户应用程序组成。这里的系统应用程序指的是 l i n u x 操作系统运行密切相关的应用程序,例如s h e l l 、图形界而、系统管理 和维护程序以及g c c 编译程序等,这些系统应用程序是用户使用l i n u x 的接 哈尔滨l 稗人学硕+ 学位论文 口,用户通过这些程序来访问和控制l i n u x 操作系统的运行。 ( 2 ) 系统调用接i = l 。系统调用接1 = 1 是l i n u x 内核的一部分,它是应用程序 与l i n u x 内核问的接口,各种应用程序通过这个接口调用内核提供的功能和 服务,以实现特定的任务。 ( 3 ) l i n u x 内核。l i n u x 内核是i j n t l x 操作系统的核心和灵魂,它负责管 理磁盘上的文件、内存、启动并运行程序以及从网络上接收和发送数据包等。 ( 4 ) 硬件。硬件包括了l i n u x 安装和运行时需要和管理的各种物理设备, 如c p u 、内存、硬盘、网络硬件等。 3 3 3l i n u x 内核特点 ( 1 ) l i n u x 内核的重要特点是可移植性,支持硬件平台广泛,在大多数体 系结构上都可以运行。 可量测性,即可以运行在超级计算机上,也可以运行在很小的设备上 ( 4 m b 就能满足) ;标准化和互用性,遵守标准化和互用性规范;完全的网络 支持;安全性,开放源码使缺陷暴露无疑,它的代码也接受了许多专家的审 查;稳定性和可靠性;模块化,运行时可以根据系统的需要加载程序。 ( 2 ) l i n u x 内核支持的处理器体系结构 l i n u x 内核能够支持的处理器的最小要求:3 2 位处理器,带或不带m m u 。 需要说明的是,不带m m u 的处理器过去是u c l i n u x 支持的。l i n u x 2 6 内核 采纳了m 6 8 k 等不带m m u 的部分平台,l i n u x 支持的绝大多数处理器还是带 m m u 的。 l i n u x 内核既能支持3 2 位体系结构,又能支持6 4 位体系结构。 ( 3 ) l i n u x 内核遵守的软件许可 l i n u x 内核全部源代码是遵守g p l 软件许可的免费软件,这就要求在发 布l i n u x 软件的时候免费丌放源码。 ( 4 ) 开放源码驱动程序的优点 基于庞大的l i n u x 社区和内核源码工程,有各种各样的驱动程序和应用 程序可以利用,而没有必要从头写程序。 丌发者可以免费得到社区的贡献、支持、检查代码和测试。驱动程序可 以免费发稀给其他人,可以静态编译进内核“。 哈尔滨l 拌人学硕+ 学位论文 3 3 4 嵌入式l i n u x 操作系统内核移植 对于嵌入式ii 删x 系统来说,有各种体系结构的处理器和硬件平台,用 户需要根据需求定制,内核移植是嵌入式l i n u x 系统中最常见的一项工作。 对一个l i n u x 内核的丌发,主要涉及到以下几个方面。 ( 1 ) 建立交叉编译环境 编译l i n u x 内核前需要在宿主机上建立a r m 的交叉编译环境,选择交 叉编译工具为a r m 1 i n u x g c c 3 4 1 版本,一般安装位置在u s r l o c a l 目录下,在 编译l i n u x 内核的时候必须指明交叉编译器的路径。 ( 2 ) 配置l i n u x 内核 下载稳定的最新的l i n u x 内核版本:l i n u x 2 6 1 7 ,解压后得到l i n u x 内 核源码。在安装好内核源码和交叉丌发工具之后,需要根据自己的需要对内 核进行配置:首先要修改内核目录树下的m a k e f i l e 文件,指明交叉编译器的 路径和处理器的结构为a r m ;设置p a t h 环境变量,使其可以找到交叉编译 工具链。用m a k e m e n u c o n f i g 进入配置界面,如图3 5 所示。 图3 5 嵌入式l i n u x 内核配置界面 哈尔滨i :拌人学硕十学位论文 ( 3 ) 编译k i n u x 内核 在命令提示符下输入以下命令编译l i n u x ,生成u l m a g e 内核映像。 撑m a k ec l e a n清除以前的编译生成文件 挣m a k e 编译,生成v m l i n u x 文件 刚生成的v m l i n u x 文件是不可以直接放到板子上运行的,还需要将其转 换成没有调试信息的、纯机器码的映像文件l i n u x b i n ,处理方法如下: 舟a r m l i n u x - o b j e o p y - 4 3b i n a r y sv m l i n u xl i n u x b i n 生成l i n u x b i n 文件后,还要将其压缩并使用m k i m a g e 工具将其构造为 u b o o t 可以引导的格式,先执行压缩命令,生成l i n u x b i n g z ,然后再利用 m k i m a g e 工具,生成u l m a g e 文件。具体操作如下: 撑g z i p - v 9l i n u x b i n 群m k i m a g e - aa r m - - ol i n u x - cg z i p _ a0 x 2 0 0 0 8 0 0 0 - c0 x 2 0 0 0 8 0 0 0 - d l i n u x b i n g zu l m a g e 至此,嵌入式h n u x 系统的内核映像已经生成了,下面介绍如何制作 l i n u x 的文件系统“。 3 4 嵌入式l i n u x 文件系统的研究与开发 l i n u x 的根文件系统具有非常独特的特点,它应该包括支持l i n u x 系统正 常运行的基本内容,包含着系统使用的软件和库,以及所有用来为用户提供 支持架构和用户使用的应用软件。因此,至少应包括以下几项内容: 1 基本的文件系统结构,包含一些必需的目录比如:d e v ,p r o c ,b i n , e t c ,1 i b ,u s r ,t r a p 等。 2 基本程序运行所需的库函数,比如g l i b c u c 1 i b c 。 3 基本的系统配置文件,比如r e ,i n i t t a b 等脚本文件。 4 必要的设备文件支持:d e v h d * ,d e v t t y * ,d e v f d o 。 5 基本的应用程序,如s h ,i s ,印,m v 等四。 3 4 1 嵌入式l i n u x 文件系统简介 嵌入式l i n u x 的文件系统和标准l i n u x 文件系统的目录结构相似,包含: b i n 、d e v 、e t c 、l i b 、m n t 、p r o c 、s b i n 、t m p 、u s r 、v a t 和t o o l s 。可以在根目录 4 l 哈尔滨i 稃人学硕十学位论文 下创建这些子目录。 目前在嵌入式u n u x 操作系统中的文件系统中较为流行的是r a m d i s k 、 j f f s 2 和u 下s 。 3 4 1 1r a m d i s k 文件系统 m m d l s k 就是把指定的内存区域模拟成磁盘设备,它属于块设备驱动 程序。基于r a m d l s k 的块设备,可以建立e x t 2 格式的磁盘文件系统。在 内核启动之前,通常需要把e x t 2 文件系统的压缩镜像解压到内存指定位置, 然后就可以把i l a m d l s k 设备挂载成根文件系统。 r a m d i s k 的最大特点是运行速度快,因为文件系统是内容全部保存在 内存中。反过来,因为它会占用一些物理内存,而且系统重启无法保存上次 运行的信息。所以r a m d i s k 比较适合较小并且不需要永久保存数据的文件 系统。 在磁盘文件系统中,b o o t i n i t r d - x - x x i m g 文件就是一个r a m d i s k 映像。 i n i t r d ( i n i t i a lr a m d i s k ) 一般可以用束辅助引导l i n u x 系统。它包含一个基本 的文件系统和必要的驱动程序以及文件系统的修复工具。还包含一个l i n u x r c 的脚本,执行i n i t r d 具体操作命令,实现加载一些模块和安装文件系统等。 启动过程中,b o o t l o a d e r 先把映像加载到内存,内核再把r a m d i s k 设 备挂载成根文件系统,然后加载需要的驱动程序并且挂载真正的磁盘分区, 最后把磁盘文件的文件系统转换成根文件系统。 在使用f l a s h 的嵌入式系统中,r a m d i s k 一般可以直接作为根文件系统 使用,也可以结合可存储的文件系统使用,例如:把一块j f f s 2 类型的文件 系统m t d 分区挂载到指定目录纠。 3 4 1 2j f f s j f f s 2 文件系统 j f f s ( j o u m a l i n gf l a s hf i l e s y s t e m ) 是瑞典的a x i s 通讯公司( a x i s c o m m u n i c a t i o n sa b ) 设计丌发的,使用在他们的嵌入式设备中,并且在1 9 9 9 年术基于g n ug p l 发布出来。 j f f s 2 ( j o u m a l i n gf l a s hf i l e s y s t c mv e r s i o n2 1 是r e d h a t 公司基于j f f s 文 件系统丌发的,它是j f f s 的改进版。 哈尔滨l 。稃人学硕十学位论文 j f f s 和j f f s 2 都是丌源的同志文件系统,最适合在f l a s h 芯片上使用。 它们的同志结构能够保持文件系统的连续性。即使文件系统崩溃或者非正常 掉电,重启的时候也不要执行f s c k 。另外,它们还考虑了f l a s h 存储介质的 物理特点。 , j f f s 是完全同志结构的。这个文件系统就相当于f l a s h 介质上的大量节 点列表。每一个几点0 f f s _ n o d e 结构体) 包含了有关文件的一些信息,也可以 包含这个文件名,还有一些数据。在数据存在的情况下,j f f sn o d e 会包含一 个字段,用来说明那些数掘在文件中的位置。这样,新数据可以覆盖老数据。 j f f s 2 是j f f s 的改进版。它在下列方面有些改进。 ( 1 ) 了解和处理按照擦除扇区( s e c t o r ) 级写f l a s h 。这样做有各种好处,例 如垃圾回收可以基于扇区而不是整个文件系统。 ( 2 ) 能够标记坏块扇区并且继续使用剩余的好扇区,这样可以提高设备使 用寿命。 ( 3 ) 垃圾回收导致的阻塞时间更少。最小可以只擦除一个扇区,不像j f f s 需要把整个文件系统数据都压到垃圾回收区。 “) 文件系统设计就提供了本地数据压缩。 j f s s 2 设计支持r o m 、n o rf l a s h 和n a n df l a s h 芯片。支持磨损平衡, 从而延长f l a s h 寿命。运行时总是把f l a s h 目录结构保存在队m 中,提高系 统性能。采用压缩格式存储数据可以存储更多文件”小“。 3 4 ,1 3 圃f s 哪s 2 文件系统 y a f f s ( y e ta n o t h e rf l a s hf i l i n gs y s t e m ) 是c h a r l e sm a n n i n g 为a l e p ho n e 公司设计开发的,它是第一种专门为n a n df l a s h 设计的文件系统。 y a f f s 基于闩志的文件系统,提供磨损平衡和掉电恢复的鲁棒性。它还 为大容量的f l a s h 芯片做了很好的调整,针对启动时日j 和r a m 的使用做了优 化。它使用于大容量的存储设备,已经在l i n n x 和w i n c e 商业产品中使用。 y a f f s 充分考虑了n a n d 闪存的特点,根据n a n d 闪存以页面为单位 存取的特点,将文件组织成固定大小的数掘段。利用n a n d 闪存提供的每个 页面1 6 b 的备用空问来存放e c c ( e r r o rc o r r e c t i o nc o d e ) 和文件系统的组织信 息,不仅能够实现错误检测和坏块处理,也能够提高文件系统的加载速度。 哈尔滨i + 稃人学硕+ 学位论文 y a f f s 采用一种多策略混合的垃圾回收算法,结合了贪心策略的高效性和随 机选择的平均性,达到了兼顾磨损平均和系统开销的目的。 岍s 的核心是y a f f s d i r e e t ,可以方便地合并到实时操作系统和嵌入 式操作系统中。可以获取到引导程序和文档。尽管设计目的是为了保留n a n d f l a s h 的使用效率,但是它也能支持n o rf l a s h 和r a m 。 y a f f s 2 是y a f f s 的第2 个版本w l f f s 版本1 支持具有5 1 2 b 页和1 6 1 3 备用空间( o o b ) 的n a n df l a s h ,但是不能支持具有2 0 4 8 字节页和6 4 字节备 用空日j 的新f l a s h 。y a f f s 更适合这些新的芯片,它支持的页面更大,性能 更好。 目前l i n u x 内核还没有证式支持岍s ,所以需要通过补丁修改l i n u x 内核。另外,f s 也需要m t d 设备驱动的支持网。 3 4 2 制作嵌入式l i n u x 文件系统 根据设置,建立以e x t 2 为基础的r a m d i s k 映像供目标板使用。尽管 e x t 2 是r a m d i s k 最常用的文件系统,不过你也可以使用其它的磁盘文件 系统,例如有些丌发者使用c r a m f s 文件系统。下面介绍制作一个r a m d i s k 文件系统的步骤: n ) 首先为根文件系统建立一个空的文件系统映像。 群c d $ p r j r o o t # m k d i rt m p i n i t r d 撑d di f = d e v z e r oo f = i m a g e s i n i t r d i m gb s = l kc o u n t = 3 0 7 2 此处以d d 命令建立了一个3 0 7 2 k b 的文件系统映像,并且以d e v z e r o 对 它进行初始化,这样当使用g z i p 压缩整个映像时,将让文件系统中未使用的 部分获得最大的压缩比。 ( 2 ) 对文件系统初始化之后,接着对它建立文件系统并且挂载它。 撑s b i n m k e 2 f s - f v _ m o i m a g e s i n i t r d i m g 群m o u n t - - ol o o pi m a g e s i n i t r d i m g t m p i n i t r d 此处,f 选项将迫使m k e 2 f s 在文件上运行,- v 选项指出m k e 2 f s 应该以 v e r b o s e 模式执行,m 0 指出不必在文件系统上为“超级用户”保留任何区块, 因为在嵌入式系统中,通常建立成单用户系统。 哈尔滨i 。稃人学硕+ 学位论文 但这时的文件系统仅仅是一个空的文件系统,什么事情都不能做。对于 一个文件系统来说,至少需要对l i n u x 基本命令的支持,这些命令可以通过 编译b u s y b o x 获得。比较直接的办法是模仿标准的l i n u x 文件系统进行创建 文件系统,也可以直接对现有的嵌入式l i n u x 文件系统进行改造升级,增加 一些交叉编译文件。 ( 3 ) 将根文件系统复制到r a m d i s k ,然后卸载它。 静c p - a vr o o f f s + n n p i n i t r d 静u m o u n t t m p i n i t r d 群e x i t 执行完第一个命令后,将会看到根文件系统中所有文件的完整列表,现 在i m a g e s i n i t r d i m g 文件中包含了目标板的整个根文件系统。 ( 4 ) 交叉编译b u s y b o x ,获得l i n u x 系统所需的命令。 用b u s y b o x 一1 0 0 版本,g c c 为a l l a 1 i n u x 一3 4 1 ,其配置界面如图3 6 所示。 图3 6b u s y b o x 选项配置界面 哈尔滨i 拌人学硕+ 学位论文 配罨完b u s y b o x 之后,就可以运行编译命令,然后运行m a k ei n s t a l l ,生 成b u s y b o x 及b u s y b o x 1 i n k s 。替换r a m d i s k 中的b u s y b o x ,并重新建立链接。 命令如下: # m a k em c n u c o n f i g 孝m a k e 撑m a k ei n s t a l l ( 5 ) 最后一个步骤就是压缩文件系统以便产生一个经压缩的r a m d i s k 。 群g z i p - v 9 i m a g e s i n i t r d b i n 使用g z i p 命令压缩文件系统。9 选项用来告诉此命令使用最高级的压缩 算法。此处建立的r a m d l s k 映像,i m a g e s i n i t r d b i n ,放到目标板适当的设 备上,并设定b o o t l o a d e r 配置”1 。 3 5 本章小结 本章首先简要介绍了嵌入式l i n u x 操作系统;然后系统地介绍了系统的 b o o t l a o d c r ,以及u b o o t 的移植过程;最后详细地介绍了嵌入式l i n u x 操作 系统内核的裁减、定制和移植及其嵌入式l i n u x 文件系统的制作。 至此,嵌入式l i n u x 操作系统就可以运行在目标板上了,接下来就可以 丌发目标板的设备驱动程序和应用程序了。 哈尔滨i :剧人学硕十学付论文 第4 章嵌入式l i n u

温馨提示

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

最新文档

评论

0/150

提交评论