(计算机应用技术专业论文)基于嵌入式的便携式b超软件系统的设计与实现.pdf_第1页
(计算机应用技术专业论文)基于嵌入式的便携式b超软件系统的设计与实现.pdf_第2页
(计算机应用技术专业论文)基于嵌入式的便携式b超软件系统的设计与实现.pdf_第3页
(计算机应用技术专业论文)基于嵌入式的便携式b超软件系统的设计与实现.pdf_第4页
(计算机应用技术专业论文)基于嵌入式的便携式b超软件系统的设计与实现.pdf_第5页
已阅读5页,还剩69页未读 继续免费阅读

(计算机应用技术专业论文)基于嵌入式的便携式b超软件系统的设计与实现.pdf.pdf 免费下载

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

文档简介

西南交通大学硕士研究生学位论文 第1 页 摘要 近年来,随着计算机技术和电子技术的发展,出现了越来越多的便携式设备。传 统的推车式b 超检查仪也向便携式方向发展,于是就出现了便携式b 超检查仪。国内 各大超声厂商都在竟相开发低成本、多功能、高可靠性、易于维护、容易操作的低价 位便携式超声影像系统,并且取得了一定的成果。但是与发达国家相比,还有一定的 差距。 便携式b 超诊断仪由超声探头和主机组成,主机由f p g a + a r m + d s p 和外围设备 组成。b 超图像的采集是通过超声探头扫描人体发出超声信号,将采集到的回波信号 转化为数字信号传给f p g a ;f p g a 接收到前端的原始数据以后,对数据做预处理;做 完预处理后将数据发给d s p 和a r m ,d s p 对图像做数字化处理,a r m 负责图像的坐 标转换和插值处理等后期处理,最终将图像显示出来。此外,a r m 还负责系统的操作 界面的显示以及对外围设备的控制等。 本文的主要内容是在a r m 平台上的便携式b 超系统终端软件的设计以及b 超图 像的传输与显示设计,主要包括b o o t l o a d e r 的移植、操作系统的裁剪和移植、文件系 统的制作、驱动程序的编写、图像传输接口的设计、图像的显示设计、终端操作界面 的设计以及应用系统的移植。本系统设计了图像显示、病历管理、图像处理、电影回 放、图像测量、图像打印、网络通信等功能。本系统硬件采用美国t i 公司设计的 o m a p 3 5 3 0 处理器,印度m i s t r a l 公司制作的o m a p3 5 3 0e v m ( 评估板) ,使用u b o o t 作为b o o t l o a d e r ,嵌入式l i n u x 作为操作系统的内核,j f f s 2 文件系统作为系统的文件 系统,使用q t j e m b e d d e d 开发图形界面。 关键词:便携式;嵌入式l i n u x ;q t e m b e d d e d ;信号和槽;多线程 西南交通大学硕士研究生学位论文 第1 | 页 a b s t r a c t i nr e c e n t y e a r s ,w i t ht h ed e v e l o p m e n to fc o m p u t e rt e c h n o l o g y a n de l e c t r o n i c t e c h n o l o g y , t h e r eh a v eb e e n ag r o w i n gn u m b e ro fp o r t a b l ed e v i c e s t h ep o r t a b l ei sa d i r e c t i o no ft h et r a d i t i o n a lt y p ebu l t r a s o n i ci n s t r u m e n t ,a n di t i st h ep o r t a b l et y p e b u l t r a s o n i c t h el e a d i n gu l t r a s o u n dm a n u f a c t u r e r s a r e r a c i n g t o d e v e l o pl o w - c o s t , m u l t i f u n c t i o n ,h i g hr e l i a b i l i t y , e a s ym a i n t e n a n c e ,e a s y - t o - l o w c o s tp o r t a b l e u l t r a s o u n d i m a g i n gs y s t e m ,a n da c h i e v e ds o m er e s u l t s b u tc o m p a r e dw i t hd e v e l o p e dc o u n t r i e s ,t h e r ei s a g a p p o r t a b l et y p e bu l t r a s o n i ci sc o m p o s e do ft h eu l t r a s o n i cp r o b ea n dt h eh o s tc o m p o s i t i o n b yt h ef p g a + a r m + d s pa n dp e r i p h e r a lc o m p o n e n t s i m a g ea c q u i s i t i o nb - p r o b e s c a n n i n gt h eh u m a nb o d yb yu l t r a s o n i cs e n du l t r a s o n i cs i g n a l s ,t h ec o l l e c t e de c h os i g n a li n t o d i g i t a ls i g n a l st of p g a ;f p g af r o n t e n do ft h eo r i g i n a l d a t ar e c e i v e da f t e rt h ed a t a p r e p r o c e s s i n g ;d o n ea f t e rp r e t r e a t m e n td a t ad i s t r i b u t e dd s p a n da r m ,d s pd o e st h ed i g i t a l i m a g ep r o c e s s i n g a r mi sr e s p o n s i b l ef o rc o o r d i n a t et r a n s f o r m a t i o na n di n t e r p o l a t i o ni m a g e p r o c e s s i n g ,p o s tp r o c e s s i n g ,t h ef i n a li m a g ed i s p l a y e d i na d d i t i o n , a r mi sa l s or e s p o n s i b l e f o rt h ed i s p l a ys y s t e mi n t e r f a c ea n dc o n t r o le x t e r n a le q u i p m c n t t h em a i nc o n t e n t so ft h i sp a p e ri st h ed e s i g no fp o r t a b l et e r m i n a lb - s y s t e ms o f t w a r e , b i m a g et r a n s m i s s i o na n dd i s p l a yo n t h ea r m ,i n c l u d i n gb o o t l o a d e rm i g r a t i o n , o p e r a t i n gs y s t e m ,c u t t i n ga n dt r a n s p l a n t a t i o n ,t h e f i l es y s t e mo fp r o d u c t i o n ,bu l t r a s o n i c i m a g et r a n s m i s s i o na n dd i s p l a yd e s i g n ,d r i v e rs o f t w a r ea n de n dg r a p h i c a li n t e r f a c ed e s i g n a n dm i g r a t i o n s y s t e mh a sr e a l i z e dt h ei m a g ed i s p l a y , m e d i c a lr e c o r d sm a n a g e m e n t ,i m a g e p r o c e s s i n g ,m o v i ep l a y b a c k ,i m a g ep r o c e s s i n g ,i m a g ep r i n t i n g ,n e t w o r kc o m m u n i c a t i o na n d o t h e rf u n c t i o n s t h eh a r d w a r eu s e so m a p 35 3 0p r o c e s s o rd e s i g n e db yt i ,a n du s e so m a p 35 3 0e v mp r o d u c e db ym i s t r a lc o m p a n y , u s i n gu b o o ta st h eb o o t l o a d e r , e m b e d d e d l i n u xa st h eo p e r a t i n gs y s t e mk e r n e l ,j f f s 2f i l es y s t e mf i l es y s t e ma sas y s t e mt h eu s eo fq t e m b e d d e dg u id e v e l o p m e n tt e r m i n a l k e yw o r d s :p o r t a b l e ;e m b e d d e dl i n u x ;q t e m b e d d e d ;s i g n a la n ds l o t ;m u l t i - t h r e a d 西南交通大学 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并 向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授 权西南交通大学可以将本论文的全部或部分内容编入有关数据库进行检索,可以采用 影印、缩印或扫描等复印手段保存和汇编本学位论文。 本学位论文属于 1 保密口,在年解密后适用本授权书; 2 不保密留,使用本授权书。 ( 请在以上方框内打“v ”) 学位论文作者签名:】钒 朋刍 日期:加卜c 侈 指导老师签名: x l o a d u - b o o t l i n u x k e r n e l , 而一般的开发板没有x l 0 a d 这个过程。 x - l 0 a d 本质是一个u - b o o t 的精简版,因为u - b o o t 太大了,塞不进内部的r a m , 把x l 0 a d 塞进内部的r a m 而不是l o a d 到外部的r a m 。因为当o m a p 3 5 3 上电的时 候,m 酬n o r yc o n t r o l l e r 还没有初始化,怎么去读写外部的r a m 呢? 必须要有人能先初 始化m e m o r yc o n h o l l e r ,任务就交给x l o a d 了。它必须负责初始化外部的r a m 控制 器,把u - b o o t 从n a n d 或者m m c 中读出到外部r a m ,然后跳到u - b o o t 的入口处执 行。 那么x - l 0 a d 又是由谁来l o a d 的呢? o m a p 3 5 3 0 里面带了一个内部r a m ,大小为 6 4 k 。当o m a p 3 5 3 0 上电后,会从n a n d f l a s h 或者m m c 中读取x - l o a d 到内部的r a m 。 然后执行x d o a d x l o a d 然后执行上面所说的任务,最后把控制入口交给u - b o o t 。 x - l o a d 的执行过程如下: 1 首先,执行s t a r ts 文件,完成c p u 模式设置,存储器初始化,代码重定位,堆栈指 针设定等。 2 通过s i g a g p 工具的源码、x l o a d 廿哂o a a p 3 5 3 0 m i 面* l o a d l d s 文件和 h l o a d 抵缸d 、o m a p 3 5 3 帆l i n i 矗g m k 文件可以看出x - i o a d 被加载到的内存地址。 3 在x l 0 a d 源代码的b o a r dc 文件中的宏c f gl o a d a d d r 定义了x - l o a d 将u b o o ! 加载到的内存地址。这里的地址是u b o o t 加载地址并非是运行时的地址,通常在加载地 址与运行地址不同,通过重定位代码实现。 西南交通大学硕士研究生学位论文 第11 页 3 2 软件平台概述 根据交叉开发的方法,搭建软件平台需要做两件事:第一、在p c 机上建立开发环 境;第二、配置目标板的运行环境。 根据开发板的文档说明,s d k 已在u b u n t u7 1 0 x 8 63 2b i t 和r e dh a te m e r p r i s e l i n u x ,w o r k s t a t i o nv 4 ,x 8 63 2b i t 上测试过。因此在本设计中p c 机的操作系统是u b u n t u 8 1 0 ,开发工具是q t e m b e d d e d4 4 3 ,交叉编译器是a r l n n o n e g n u e a b i ,为了便于调试 运行,在p c 机上还装了q t 4 4 3 ,目标板的操作系统是嵌入式l i n u x 2 6 2 2 。 3 2 1u b u n t u 和嵌入式lin u x u b m :1 m 是一个以桌面应用为主的l i n u x 操作系统,其名称来自非洲南部祖鲁语或 豪萨语的“u b u n t u ”一词( 译为吾帮托或乌班图) ,意思是“人性”、“我的存在是因为大家 的存在”,是非洲传统的一种价值观,类似华人社会的“仁爱”思想。u b u n t u 基于d e b i a n 发行版和g n o m e 桌面环境,与d e b i a n 的不同在于它每6 个月会发布一个新版本。 u b u n t u 的目标在于为一般用户提供一个最新的、同时又相当稳定的主要由自由软件构 建而成的操作系统。u b u n t u 具有庞大的社区力量,用户可以方便地从社区获得帮助。 嵌入式l i n u x 是将日益流行的l i n u x 操作系统进行裁剪修改,使之能在嵌入式计算 机系统上运行的一种操作系统。嵌入式l i n u x 既继承了i n t e r l n e t 上无限的开放源代码资 源,又具有嵌入式操作系统的特性。嵌入式l i n u x 的特点是版权费免费:购买费用媒介 成本技术支持全世界的自由软件开发者提供支持网络特性免费,而且性能优异,软件 移植容易,代码开放,有许多应用软件支持,应用产品开发周期短,新产品上市迅速, 因为有许多公开的代码可以参考和移植,实时性能r tl i n u xh a r d h a tl i n u x 等嵌入式 l i n u x 支持,实时性能稳定性好安全性好。 3 2 2 q t 和q t e m b e d d e d q t 是t r o l l t e c h 公司发布的一个跨平台的c + + 图形用户界面应用程序框架。它提供给 应用程序开发者建立艺术级的图形用户界面所需的所用功能。q t 是完全面向对象的, 很容易扩展,并且允许真正地组件编型8 1 。 q t 同xw i n d o w 上的m o t i f ,o p e n w i n ,g t k 等图形界面库和w i n d o w s 平台上 的m f c ,o w l ,v c l ,a t l 是同类型的东西,但是q t 具有下列优点: 1 、q t 支持下列操作系统:m i c r o s o f tw i n d o w s9 5 9 8 , m i c r o s o f tw i n d o w sn t , l i n u x ,s o l a r i s ,s u n o s ,h p - u x ,d i 百t a lu n i x ( o s f 1 ,t i n 6 4 ) ,i r i x ,f r e e b s d , b s d o s , s c o ,a i x , o s 3 9 0 ,q n x 等等。 2 、面向对象 西南交通大学硕士研究生学位论文 第12 页 3 、丰富的a p i 4 、支持2 d 3 d 图形渲染,支持o p e n g l 5 、大量的开发文档 6 、x m l 支持 7 、w e b k i t 引擎的集成,可以实现本地界面与w e b 内容的无缝集成 q t e m b e d d e d 是t r o l l t e c h 公司发布的面向嵌入式系统的图形库,是一个较为高级 和完善的图形支持库。它有着高效的图形渲染效果,还包括t m e t y p e 字体系统及a l p h a b l e n d i n g 半透明处理等。 q t e m b e d d e d 同样具有跨平台的特点,省掉了不少移植软件的功夫,这样的概念和 j a v a 十分接近。同时它还采用模块化设计,其最大的好处是有弹性,q t e m b e d d e d 号 称最小可以缩到8 0 0 k b 左右,最多可以长到3 m b ( f o ri n t e lx 8 6 ) ,这样的弹性也让 q t e m b e d d e d 更适合在嵌入式环境下生存。 q t e m b e d d e d 延续了q t 在x 上的强大功能,在底层摒弃了xl i b ,仅采用 f r a m e b u f f e r 作为底层图形接口。同时,将外部输入设备抽象为k e y b o a r d 和m o u s e 输 入事件,底层接口支持键盘、g p m 鼠标、触摸屏及用户自定义的设备等。 q t e m b e d d e d 类库完全采用c + + 封装。丰富的控件资源和较好的可移植性是 q t e m b e d d e d 最为优秀的一方面。它的类库接口完全兼容于同版本的q t x 1 1 ,使用x 下的开发工具可以直接开发基于q t e m b e d d e d 的应用程序g u i 界面。 西南交通大学硕士研究生学位论文 第13 页 第4 章便携式b 超软件运行环境搭建 4 1b o o t l o a d e r 的移植 4 1 1b o o t l o a d e r 和u b o o t b o o t l o a d e r 就是在操作系统内核运行之前运行的一段小程序【9 】。通过这段小程 序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环 境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。 由于b o o t l o a d e r 的实现依赖于c p u 的体系结构,因此大多数b o o t l o a d e r 的启 动过程都分为s t a g e l 和s t a g e 2 两个阶段【4 】。依赖于c p u 体系结构的代码,比如设 备初始化代码等,通常都放在s t a g e l 中,而且通常都用汇编语言来实现,以达到 短小精悍的目的。而s t a g e 2 则通常用c 语言来实现,这样可以实现复杂的功能, 而且代码会具有更好的可读性和可移植性。 u b o o t ,全称u n i v e r s a lb o o tl o a d e r ,是遵循g p l 条款的开放源码项目。从 f a d s r o m 、8 x x r o m 、p p c b 0 0 t 逐步发展演化而来。其源码目录、编译形式与 l i n u x 内核很相似,事实上,不少u b o o t 源码就是相应l i n u x 内核源程序的简化, 尤其是一些设备的驱动程序,从u b o o t 源码的注释中能体现这一点。 4 1 2u b o o t 移植 b o o t l o a d e r 的移植主要修改的一些地方有以下几点: 1 、c p u 部分的初始化,包括c p u 的工作频率、时钟模块的初始化、大小端配置、 数据和指令c a c h e 的初始化等。 2 、内存的初始化部分,包括了c p u 这些接口寄存器的参数设置,f l a s h 芯片接口 函数部分等。 3 、接口的初始化,常用的接口有串口、网卡接口、l c d 显示接口、g p i o 接口等。 4 、启动参数的修改。 5 、链接编译的地址分配等,主要是在1 d s 文件中。 6 、编译参数的修改,主要修改m a k e f i l e 文件。 u b o o t 的启动执行顺序是从s t a r t s 到b o a r d c 然后到m a i n c o 移植需要修改的文件 包括s t a r t s 、m e ms e t u p s 、f l a s h c 、b o a r d c 、c p u c 、m a k e f i l e 、a r m b o o t 1 d s 等。 在本设计中使用的版本是u b o o t l 1 4 ,在开发板的s d k 中提供了u - b o o t 的源代 码,并且提供了o m a p 3 e v m 的支持,因此只需根据开发板的具体设置进行简单的修改。 1 修改c p u o m a p 3 s t a r t s 文件,这个文件是u b o o t 的入口程序,文件开始的地方放 西南交通大学硕士研究生学位论文 第1 4 页 中断向量表,其中最重要的是r e s e t 服务程序,也就是c p u 复位以后最早执行的程序。 该文件是汇编程序,在完成了中断向量表的定义之后,先关闭c p u 的i r q 和f i q 中断, 然后完成s d r a m 的初始化、配置c p u 的a p l l 和d p l l 、配置处理器的工作模式, 以及工作时钟,最后把a p , j v b o o t 从f l a s h 复制到r a m 中,然后进行地址映射,程序 从汇编跳入到c 程序s t a r ta r m b o o t 完成各种板级初始化。 2 修改b o a r d o m a p 3 e v m n a n d ,c 文件,该程序完成n a n df l a s h 的初始化并且把u b o o t 拷贝到r a m 中。 3 修改i n c l u d e c o n f i g s o m a p 3 e v mh 文件,这个头文件定义了一些设备的参数,主 要针对此文件中的h a n d f l a s h 和网卡韵参数进行修改。 4 编译u - b o o t :m a k e o m a p 3 e v m _ c o n f i g m a k e 5 下载到h a n df l a s h :设置跳线s w 4 ,连接到u a r t 3 ,使用光盘提供的w i n d o w sf 的下载工具d o w e l o a d u t i l i t y 下载u - b o o tb i n 到开发板上。下载u - b o o t 到开发板如图4 1 所示。 - _ _ - _ _ - _ _ 。_ - 。- 。- 。_ 。_ _ - 。_ - _ - _ - 。i 。_ 。_ 。_ 。_ _ 一 i ,h c ec 0 - c 二o :? v h l u e : 珏。m :【r 旺西五3 仍 h i5tr l 图牟l 下载u - b o o l 到开发板( 1 图4 - l 下裁u - b o o t 到开发板( 2 ) 西南交通大学硕士研究生学位论文 第1 5 页 6 为了能够正确引导k e r n e l 还需要下载r e f l 拈h - m i r c o n 臼【t 脚本文件和环境变量 i n i t 目a v m i r c o n t x t :通过超级终端下载他们,如图4 _ 2 所示。 蛔e l :二= 二= = 一2 = = 4 1 = - 2 = i = = = 一2 = 丑; i 癌 = 4 :* et 女。4 # f = u 1 7 5 3 : 一口r 自v :。3 l h0 h r 1 一、 m m b m d 1 自d t 自m t ”u :=一 1 一 。:v 。 一 凹年2 下载f l a s h 脚率判开发扳 然后在u - b o o t 下运行命令r a nr fa l lf s 重启开发板,下载i n i t e n v - m i r c o n t x ! ,运行命令s a v 啪v 4 2 嵌入式l i n u x 内核的移植 421l if l u x 内核结构 l i n u x 内核是一个l i n u x 操作系统的核心主要由5 个子系统组成】:进程调度、 内存管理、虚拟文件系统、网络接口、进程问通信。 1 、进程调度( s c h d ) :控制进程对c p u 的访问。当需要选择下一个进程运行时, 由调度程序选择最值得运行的进程。可运行进程实际上是仅等待c p u 资源的进程,如 果某个进程在等待其它资源,则该进程是不可运行进程。l i n u x 使用了比较简单的基于 优先级的进程调度算法选择新的进程。 2 、内存管理( m m ) 允许多个进程安全的共享主内存区域。l i n u x 的内存管理支持虚 拟内存即在计算机中运行的程序,其代码,数据,堆栈的总量可以超过实际内存的 大小,操作系统只是把当前使用的程序块保留在内存中,其余的程序块则保留在磁盘 中。必要时,操作系统负责在磁盘和内存问交换程序块。内存管理从逻辑上分为硬件 无关部分和硬件有关部分。硬件无关部分提供了进程的映射和逻辑内存的对换:硬件 相关的部分为内存管理硬件提供了虚拟接口。 3 、虚拟文件系统( v h - m a lf i l es y s t 哪,v f s ) 隐藏了各种硬件的具体细节,为所有 的设备提供了统一的接口,v f s 提供了多达敷十种不同的文件系统。虚拟文件系统可 西南交通大学硕士研究生学位论文 第16 页 以分为逻辑文件系统和设备驱动程序。逻辑文件系统指l i n u x 所支持的文件系统,如 e x t 2 ,f a t 等,设备驱动程序指为每一种硬件控制器所编写的设备驱动程序模块。 4 、网络接口( n e t ) 提供了对各种网络标准的存取和各种网络硬件的支持。网络接口 可分为网络协议和网络驱动程序。网络协议部分负责实现每一种可能的网络传输协议。 网络设备驱动程序负责与硬件设备通讯,每一种可能的硬件设备都有相应的设备驱动 程序。 5 、进程间通讯( 口c ) 支持进程问各种通信机制。 各个子系统之间的依赖关系如图4 _ 3 1 4 所示,连线代表它们之间的关系: 图4 3l i n u x 内核系统模块及关系图 除了这些依赖关系外,内核中的所有子系统还有依赖一些共同的资源。这些资源 包括所有子系统都用到的例程。例如,分配和释放内存空间的例程;打印警告或错误 消息的例程;还有系统的调试例程,等等。 4 2 2 相关文件修改 本设计用的l i n u x 内核版本是l i n u x2 6 2 2 1 8 ,由于在开发板光盘提供的s d k 中已 经提供了内核源代码,并且在a r c w a r r n 目录提供了对o m a p 的支持,因此省了很多事。 1 、修改内核根目录下的m a k e f i l e ,指明交叉编译器,修改内容如下: a r c h ? = a r m c r o s s c o m p i l e ? = 8 1 1 1 1 一n o n e l i n u x - g n u e a b i 一 2 、修改f l a s h 分区设置 f l a s h 共有5 个分区:x l o a d e r 、u ,b o o t 、b o o te n v 、l i n u xk e m e l 和f i l es y s t e m 。 各个分区的地址分配如下: 0 x 0 0 0 0 0 0 0 0 o x 0 0 0 8 0 0 0 0x l o a d e r 0 x 0 0 0 8 0 0 0 0 0 x 0 0 2 4 0 0 0 0u b o o t 0 x 0 0 2 4 0 0 0 0 0 x 0 0 2 8 0 0 0 0b o o te n v 0 x 0 0 2 8 0 0 0 0 0 x 0 0 7 8 0 0 0 0l i n u xk e r n l 西南交通大学硕士研究生学位论文 第17 页 0 x 0 0 7 8 0 0 0 0 0 x 10 0 0 0 0 0 0f i l es y s t e m 修改a r c h a r m m a t h o m a p 2 b o a r d - o m a p 3 e v m f l a s h c 文件 s t a t i cs t r u c tm t d _ p a r t i t i o no m a p 3e v m _ n a n d _ _ p a r t i t i o n s = 一共有5 个分区,n a m e 代表分区名字,o f f s e t 代表分区的偏移地址,s i z e 代表分区大 小 i l a m e = ”x l o a d e r - n a n d ”,x l o a d e r 分区 o f f s e t = - 0 , s i z e = 4 ( 1 2 8 木1 0 2 4 ) ,5 1 2 b y t e s m a s k _ f l a g s = m t d _ w r i t e a b l e ,设为只读 ) , n a m e = ”u b o o t - n a n d ”b o o t l o a d e r 分区 o f f s e t = m t d p a r t _ o f s 心p e n d , o f f s e t = 0 x 8 0 0 0 0 s i z e = 15 木( 12 8 半1 0 2 4 ) , 19 2 0 b y t e s m a s k _ f l a g s = m t d _ w r i t e a b l e ,设为只读 ) , n a m e = ”b o o te n v n a n d ”, b o o t l o a d e r 的环境变量 o f f s e t = - m t d p a r t _ o f s 心p e n d , n o f f s e t = o x l0 0 0 0 0 s i z e = 1 唪( 1 2 8 牛1 0 2 4 ) h 1 2 8 b y t e s ) , r l a r l l e = ”k e r n e l n a n d ”, n l i n u x 内核 o f f s e t = - m t d p a r t _ o f s 翼p e n d ,o f f s e t = 0 x 1 4 0 0 0 0 s i z e = 4 0 术( 1 2 8 幸1 0 2 4 ) 1 1 5 m b ) , n a m e = ”f i l es y s t e m n a n d ”, 文件系统 s i z e = m t d p a r t _ s i z _ f u l l , 剩余空间全部都是文件系统 o f f s e t = - m t d p a r t _ o f s 翼p e n d ,| 哺o f f s e t = 0 x 5 4 0 0 0 0 | ) , ) ; 要奎窑望查兰堡主里塞兰兰笙笙塞兰! ! 至 423 配置和编译内核 l i n u x 内核是一个社区共同开发和维护的,具备一个现代操作系统的所有功能,并 且能够对大多数硬件提供支持,但是对于本设计来说,大多数功能并不需要,为了尽 量减少内核体积,配置内核的主要任务就是对需要的功能进行配置和去除不需要的功 能。由于内核配置选项较多,在此只列举了几个重要功能的配置过程。在内核根目录 下运行命令m a k e m e n u c o n f i g ,进入内核配置主界面,第一次运行命令m a k e m c n u c o n f i g 之前需要先安装l i b n c m s c s s d c v 。 1 、配置m 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 内存技术设备) 是用于访问m e m o r y 设备 ( r o m 、f l a s h ) 的l i n u x 的于系统,它是底层硬件和上层软件之间的桥梁。对底 层来说,它无论对n o r 还是n a n d 型f l a s h 都有很好的驱动支持;对上层来说, 它抽象出文件系统所需要的接口函数。配置界面如图4 4 所示: 图4 - 4 配置 a t d 于系统 2 、配置文件系统支持 本设计使用的文件系统是j f f s 2 ,配置界面如图4 - 5 所示: 型。一 z s ! ;8 些i 自地* d 女d ! _ i ! _ l ! ! j 目虹生“ 7 1 一4 t f h 图舡5 配置文件系统 要童耋塑查兰鎏圭塑耋圭耋些笙兰至! :要 3 、配置f r a m e b u f f e r 支持 f r a m e b u f f e r 是帧缓冲驱动,在后面的章节将会详细介绍,配置界面如图4 - 6 所示: 目“配置f r p a n e b u f f e f 4 、配置网络支持 在使用n f s 和图形用户界面设计中,都要用到网络,配置网络支持界面如图 4 7 所示: g z 一划“她一- 一蛳一女一。鲨必 一 图4 4 配置阿结支持 配置完内核之后,就可以进行编译了,因为u - b o o t 只能识别u l m a g e 格式的内核, 所有使用命令m a k eu l m s g e 铖u l m a g e 格式的内核,在编译内核的时候需要用到前面 编译u b o o t 时生成的m k i m a g e 。 西南交通大学硕士研究生学位论文 第2 0 页 4 3 文件系统的制作 4 3 1 嵌入式文件系统 文件系统【1 1 】指文件存在的物理空间,l i n l ”【系统中每个分区都是一个文件系统,都 有自己的目录层次结构。l i n u x 会将这些分属于不同分区的、单独的文件系统按照一定 的方式形成一个系统的、总的目录层次结构。一个操作系统的运行离不开对文件的操 作,因此必须要拥有并维护自己的文件系统。 一般的嵌入式l i n u x 文件系统的目录结构如下: ( 1 ) d e v 目录:里面存放设备文件,一般是用来进行访问的时候用的设备名。 ( 2 ) p r o c 目录:指p r o c 文件系统,一般在系统启动之后由内核中的p r o c 函数生成的。 ( 3 ) e t c 目录:系统配置文件,一般是系统初始化的一些文档。 ( 4 ) s b i n 目录:存放重要的系统二进制可执行程序。 ( 5 ) b i n 目录:存放被认为是系统一部分的基本二进制程序。 ( 6 ) 1 i b 目录:提供m n t i m e 支持的共享函数库。 ( 7 ) m n t 目录:维护其他磁盘所用的磁盘挂载点。 ( 8 ) u s r 目录:额外的工具程序和应用程序。 ( 9 ) h o m e 目录:用户主目录,包括供服务账号所使用的主目录。 4 3 2j f f s 2 文件系统的制作 j f f s 2 的全名为j o u m a l l i n gf 1 a s hf i l es y s t 锄v e r s i o n2 ( 闪存日志型文件系统第2 版) ,其功能就是管理在m t d 设备上实现的日志型文件系统。与其他的存储设备存储 方案相比,j f f s 2 并不准备提供让传统文件系统也可以使用此类设备的转换层。它只会 直接在m t d 设备上实现日志结构的文件系统。j f f s 2 会在安装的时候,扫描m t d 设 备的日志内容,并在r a m 中重新建立文件系统结构本身。除了提供具有断电可靠性的 日志结构文件系统,j f f s 2 还会在它管理的m t d 设备上实现“损耗平衡”和“数据压缩” 等特性。 制作j f f s 2 文件系统的过程分为以下几个步骤:首先要在l i n u x 内核中添加对 j f f s 2 文件系统的支持;然后使用b u s y b o x 来生成文件系统所需要的基本应用程序;然 后是各种配置文件;最后利用工具生成映像文件j 舔2 i m g 。 4 3 2 1b u s y b o x 的配置编译 b u s y b o x 被形象地称为“嵌入式l i n u x 的瑞士军刀,【4 】,它是一个u n i x 工具集。它提 供一百多种g n u 常用工具、s h e l l 脚本工具等。它采用模块化设计,使得它很容易 西南交通大学硕士研究生学位论文 第2 1 页 被定制裁剪,可以根据实际的用途,裁剪出一个最精简的工具集。 ( 1 ) 配置b u s y b o x 在本设计中使用的版本是b u s y b o x1 9 1 ,进入解压后的目录,执行m a k e m e n u c o n f i g 出现配置主界面如图4 _ 8 所示,类似l i n u x 内核配置。 目女? 复叠- : 删- p 。峰z j 二型出= = = 一 图4 - 8b u s y b o x 配置主界面 以下是部分配置选项: b u i l do p t i o n s 【+ b u i l d b u s y b o xa s as t a t i c b i n a r y ( n os h a r e d f i b s ) 这一项将b u s y b o x 编译完静态链接,可咀减少启动时查找动态链接库的时间。 i n i tu t i | i t i e s h i n i t ms u p p o r tr e a d i n g a n i n i t t a b f i l e 支持i n i t 读取e t c i n i t t a b 配置文件 s h d l s c h o o s e y o u r d e f a u l t s h e l l ( a s h ) 【4 】a s h 选中a s h ,可以生成b i n s h 文件 b u s y b o x l i b r a r y t u n i n g c o m m a n d l i n e e d i t i n g 呐- s t y l e l i n ee d i t i n gc o m m a n d s ( 1 5 ) h i s t o r ys i z e h i s t o r ys a v i n g m t a bc o m p l e t i o n 【lu s e m 锄ec o m p l e t i o n 西南交通大学硕士研究生学位论文 第2 2 页 这些选项添加了历史记录、自动补全、删除字符等功能。 最后选择常用工具。 c o r c u t i l t s c p c a t l s m k d i r ( 2 ) 编译安装 配置完成之后,就可以使用m a k e 命令进行最后的编译和安装了,使用如下命令: m a k et a r g e t a r c h = a r mp r e f i x = r o o t f sa l li n s t a l l 安装完成后,会在r o o t f s 目录下 的b i n 、s b i n 、l i b 等目录下生成相应的工具文件和库文件。 4 3 2 2 创建文件系统结构 在上面生成的r o o t f s 目录下面再创建以下几个目录:d e v 、e t c 、p r o c 、u s r 、v a r 、 m n t 、h o m e ,还有文件b a s h r c 和l i n u x r c 脚本文件。 创建d e v 目录时,除了使用m k n o d 命令创建其中的设备文件,也可以把现有系统中 d e v 的文件复制过来,然后删除不必要的文件。复$ 1 d e v 目录的命令如下: c p 曲r d e v r o o t f s d e v ,该命令只复制目录但不复制文件内容,d p 选项不会复制链接 所指的原文件,以保证链接文件的指向不变,属性也不变。 4 3 2 3 制作j f f s 2 文件镜像 由于使用u b u n t u 系统中没有安装制作j f f s 2 文件系统镜像的工具m k f s j f f s 2 ,所有 首先需要安装m k f s j f f s 2 的工具。输入命令s u d oa p t g e ti n s t a l lm t d u t i l s ,自动下载安装, 本设计用的版本是m t d u t i l s2 0 0 8 0 5 0 8 一l u b u n m l 。然后使用如下命令生成j f f s 2 镜像: m k f s j f f s 2 - l q n p e1 2 8 r r o o t f s o r o o t f s j f f s 2 。 4 3 3

温馨提示

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

评论

0/150

提交评论