(信号与信息处理专业论文)基于armlinux平台的嵌入式信息管理系统的研究与实现.pdf_第1页
(信号与信息处理专业论文)基于armlinux平台的嵌入式信息管理系统的研究与实现.pdf_第2页
(信号与信息处理专业论文)基于armlinux平台的嵌入式信息管理系统的研究与实现.pdf_第3页
(信号与信息处理专业论文)基于armlinux平台的嵌入式信息管理系统的研究与实现.pdf_第4页
(信号与信息处理专业论文)基于armlinux平台的嵌入式信息管理系统的研究与实现.pdf_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

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

文档简介

武汉理工大学硕士学位论文 摘要 随着经济的发展,生活节奏的加快以及信息技术的进步,人们越来越多的 借助高性能的移动手持设备来完成日常工作,目前手持设备处理性能有了很大 的提高,其所能处理的数据量也越来越大,传统的文件系统管理数据方式已经 越来越满足不了需求,嵌入式数据库就随之诞生,为手持设备提供专业的数据 管理。嵌入式数据库的轻量级、被软件产品包含、无需人工数据库管理等特点 使其适合被应用于各类嵌入式系统及手持设备中。使用嵌入式数据库与使用文 件系统进行客户端数据管理相比更加灵活方便、可以高效地实时更新客户端本 地数据。使用数据库完成大量数据的存储和管理,同图形界面软件结合构成嵌入 式系统应用开发的支撑系统。 s q l i t e 数据库作为一种开源的嵌入式数据库,具有体积小,速度快,存储 量大,a p i 使用方便等诸多的优点,目前已经成为被广泛应用的嵌入式数据库之 一。同样的,嵌入式图形界面m i n i g u i 的开源版本也具有体积小,控件比较丰 富,编程难度不高等优点,受到广大嵌入式开发者的喜爱。 本文的主要任务是将m i n i g u i 和s q l i t e 进行有针对的裁剪或添加部分功能 后移植到开发板上,然后将图形界面和数据库相结合在a i m 1 i n u x 平台上建立一 个具有基本功能的嵌入式信息管理系统。首先分析了系统所使用的硬件平台并 研究了软件环境的搭建过程,包括移植b o o t l o a d e l 、移植l i n u x 内核、建立n f s 网络文件系统进行程序调试,然后分别给出了嵌入式图形界面m i n i g u i 和嵌入 式数据库s q l i t e 移植到开发板的过程和它们各自的开发技术,最后详细研究了 如何在m i n i g u i 中连接s q l i t e 数据库,从而将二者结合起来编程以实现本系统 并给出了系统在开发过程中所遇到的关键问题的解决方案,包括屏幕旋转及校 正、设计软键盘进行屏幕输入、利用s q l i t e 存储图片文件。从而证明了当前条 件下在嵌入式系统中实现一个比较简单的信息管理系统是完全可行的。最后讨 论了该领域存在的一些问题和今后需要进一步研究的课题。 关键词:嵌入式数据库,信息系统,a r l n 1 i n u x ,s q l i t e ,m i n i g u i 武汉理工大学硕士学位论文 a b s t r a c t w i t ht h e d e v e l o p m e n to fe c o n o m i c ,t h ea c c e l e r a t i o no fl i f ep a c ea n dt h e a d v a n c e m e n to fi n f o r m a t i o n t e c h n o l o g y , p e o p l e n o wm o r ea n dm o r e u s i n g h i g h - p e r f o r m a n c em o b i l eh a n d h e l dd e v i c e st oc o m p l e t ed a y - t o - d a yw o r k a tp r e s e n t , t h ep r o c e s s i n gp e r f o r m a n c eo fh a n d h e l dd e v i c e sh a sb e e ng r e a t l yi m p r o v e da n dt h e a m o u n to fd a t ai tc a l lp r o c e s sh a sa l s ob e e ng r e a t l yi n c r e a s e d ,t h et r a d i t i o n a lw a yo f m a n a g i n gd a t aw i t hf i l es y s t e mi si n c r e a s i n g l yu n a b l et om e e td e m a n do fp e o p l e , s o e m b e d d e dd a t a b a s es y s t e me m e r g e dt os o l v et h ep r o b l e m t h eu s eo fe m b e d d e d d a t a b a s ef o rc l i e n td a t am a n a g e m e n ti s 缸m o r ef l e x i b l ea n dc o n v e n i e n tc o m p a r e dt o f i l es y s t e m ,a n di tc a ne f f i c i e n t l yu p d a t et h ec l i e n tl o c a ld a t a u s ee m b e d d e dd a t a b a s e s y s t e mc a nd oal a r g ea m o u n to fd a t as t o r a g ea n dm a n a g e m e n t ,a n dc o m b i n e dw i m g r a p h i c a li n t e r f a c es o t h v a r ea p p l i c a t i o nc a nc o n s t i t u t et h ee n v i r o n m e n to fe m b e d d e d s y s t e m sd e v e l o p m e n t a sa no p e n s o u r c ee m b e d d e dd a t a b a s e ,t h es q l i t ed a t a b a s eh a st h es m a l l v o l u m e ,t h eq u i c ks p e e d ,b i gr e s e r v e sa n dm a n yo t h e rm e r i t s ,i th a sn o wb e c o m eo n eo f t h em o s tw i d e l yu s e de m b e d d e dd a t a b a s e 。m i n i g u ii sa g o o dg r a p h i cu s e ri n t e r f a c e o fe m b e d d e dl i n u xs y s t e mf o rn o w , i th a sl i g h t w e i g h t ,c o n f i g u r a b l e ,p o r t a b l ea n d m a n yo t h e rf e a t u r e ,s oi th a sn o wa l s ob e e nw i d e l yu s e db ye m b e d d e dd e v e l o p e r s t h em a i nt a s ko ft h i sp a p e ri sc u to ra d ds o m ef u n c t i o n so fm i n i g u ia n ds q l i t e f o r0 1 1 1 o w na p p l i c a t i o na n dp o r tt h e mo nd e v e l o pb o a r d ,t h e nc o m b i n et h e mt o e s t a b l i s hae m b e d d e di n f o r m a t i o nm a n a g e m e n ts y s t e mo na r m l i n u xp l a t f o r m f i r s to f a l l ,i n t r o d u c e dt h eh a r d w a r ep l a t f o r mw eu s e da n dt h ep r o c e s sh o wt h es y s t e m s o f t w a r ee n v i o r n m n e ti se s t a b l i s h e d ,i n c l u d i n gt h et r a n s p l a n t a t i o no fb o o t l o a d e r , t h e t r a n s p l a n t a t i o no fl i n u xk e r n e l ,s e tu pn f sn e t w o r kf i l es y s t e mf o rd e b u g g i n g a n d t h e ni n t r o d u c e dt h ep r o c e s sh o wt op o r tm i n i g u ia n ds q l i t eo nt od e v e l o p m e n t b o a r da n dt h e i rr e s p e c t i v et e c h n o l o g y t h e nd e s c r i b e di nd e t a i lh o wt oc o n n e c ts q l i t e d a t a b a s ei nm i n i g u li no r d e rt oc o m b i n et h et w ot oa c h i e v et h es y s t e mp r o g r a m m i n g a n dh o ww es o l v et h ek e yi s s u e se n c o u n t e r e di ns y s t e md e s i g n :s c r e e nr o t a t i o na n d n 武汉理工大学硕士学位论文 c o r r e c t i o n ,d e s i g n es o f tk e y b o a r df o rs c r e e ni n p u t , u s os q l i t et os t o r ei m a g ef i l e s s o p r o v e dt h a tu n d e rc u r r e n tc o n d i t i o n si ti se n t i r e l yf e a s i b l et oe s t a b l i s ha ni n f o r m a t i o n m a n a g e m e n ts y s t e mi ne m b e d d e ds y s t e m f i n a l l y , t h ep r o b l e m si nt h ea r e aa n dt h e n e e df o rf u r t h e rs t u d yi sd i s c u s s e d k e yw o r d s : e m b e d d e dd a t a b a s es y s t e m ,i n f o r m a t i o ns y s t e m ,a m l - l i n u x ,s q l i t e ,m i n i g u i i i i 独创性声明 本人声明,所呈交的论文是本人在导师指导下进行的研究工作及取得的研 究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其 他人已经发表或撰写过的研究成果,也不包含为获得武汉理工大学或其它教育 机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何 贡献均已在论文中作了明确的说明并表示了谢意。 关于论文使用授权的说明 本人完全了解武汉理工大学有关保留、使用学位论文的规定,即学校有权 保留、送交论文的复印件,允许论文被查阅和借阅;学校可以公布论文的全部 或部分内容,可以采用影印、缩印或其他复制手段保存论文。 ( 保密的论文在解密后应遵守此规定) 期: 2 0 0 9 0 5 武汉理工大学硕士学位论文 第1 章绪论 1 1 嵌入式数据库的研究背景和意义 随着计算机技术的飞速发展,嵌入式系统己成为计算机领域的一个重要方 面,得到了越来越广泛的应用。“嵌入式 对大众而言不再是个新鲜词,早已深 入生活的角角落落,p d a 、电视机项盒、智能手机、车载设备、m p 4 、汽车、微 波炉、电梯、自动售货机、电子医疗仪器、自动取款机等等,嵌入式设备几乎 触手可及。 在众多的嵌入式应用中,很多应用都存在着对设备中数据的管理问题。在 需处理的数据量不大的情况下,一般系统中都采用文件系统来进行管理。在文 件系统中,数据按其内容、结构和用途组成一系列命名的文件,用户通过操作 系统对文件进行打开、读、写、定位和关闭等操作。但使用文件系统对数据进 行管理也存在一些明显的缺点,比如说:对应用程序编写者来说使用很不方便。 应用程序的设计者必须对应用程序所使用的文件的逻辑和物理结构有清楚的了 解。嵌入式文件系统只提供文件打开、关闭、读、写等一些低级的文件操作命 令,对文件的查询、修改等数据处理都必须在应用程序内解决。不仅如此,对 数据排序这一类操作,在应用程序中解决起来都非常的麻烦。应用程序的维护 工作量很大。因为应用程序的工作是直接建立在文件的基础上的,对文件过分 依赖,所以文件结构的每一次修改都将导致应用程序的修改。我们知道,修改 程序是很费时费力的事情,如果修改者不是程序的原始设计者,则情况变得更 加严峻。修改者不仅要花费很多时间来熟悉原有的程序,而且还要保证修改后 不会引起不应该有的副作用。数据管理不规范。由于数据缺少统一管理,在数 据的结构、编码、表示格式、命名以及输出格式等方面不容易做到规范化、标 准化:在数据的安全和保密方面,也难以采取有效的措施。 针对之前的嵌入式设备上的数据管理缺陷,最好的解决办法就是引入数据 库。在目前常用的数据库产品中,o r a c l e ,s q l s e r v c r 等功能强大,但系统庞大, 需付费使用,适用于大型商业型数据库,而嵌入式由于系统内存容量少,c p u 处 理能力低,嵌入式应用实现的功能往往比较单一和具体,对数据的处理和维护 武汉理工大学硕士学位论文 能力要求不高,在这种情形下,一个功能完备的数据库管理系统不仅没有必要, 而且会使本来就有限的内存资源更紧张。事实上,很多嵌入式应用都只需要数 据库的一部分功能就能完成任务,比如基本的存储和检索功能,而其他的如事 务管理、同步控制等功能却根本不需要。为此,需要一个能够随实际应用的需 要实现功能调节的数据库系统,这样不仅能满足应用的需求,还可以最大程度 地利用系统资源。在这些情况下,我们就需要一种既满足基本功能需求,又能 保持性能及体积的特殊数据库一嵌入式数据库。 简而言之,嵌入式数据库是一种具备了基本数据库特性的数据文件。嵌入 式数据库无须独立运行的数据库引擎,它是由程序直接调用相应的a p i 去实现 对数据的存取操作。嵌入式数据库与其它数据库产品的区别是,前者是程序驱 动式,而后者是引擎响应式。嵌入式数据库的一个很重要的特点是它们的体积 非常小,编译后的产品也不过几十k 。这不但对桌面程序的数据存储方案是一个 很好的选择,也使得它们可以应用到一些移动设备上。同时,很多嵌入式数据 库在性能上也优于其它数据库,所以在高性能的应用上也常见嵌入式数据库的 身影。 目前,基于l i n u x 平台开放源代码的嵌入式数据库像b e r k d e y d b 、s q l i t o 等都为程序员提供了简单易用的a p i 接口【。可以方便的完成对数据的访问和管 理,有很广阔的市场前景。基于上述原因,深入研究一种相对成熟、领先、简 单易用和能改进空间利用率的嵌入式数据库具有重要的意义。 1 2 嵌入式数据库的研究发展现状 目前,嵌入式数据库技术己经成为一个十分活跃的研究领域,并引起了越 来越广泛的关注。以下仅列出了嵌入式数据库系统的几个主要研究方向和国内 外一些重要研究成果: ( 1 ) 数据复制( 一致性) b j 采用移动计算模型的嵌入式数据库系统与传统的数据库系统是不一样的, 嵌入式数据库的一个显著特点是移动终端之间以及与服务器之间的连接是一种 弱连接,即低带宽、长延迟、不稳定和经常性的断开。而为了能在这种环境下 对数据库进行更新操作,嵌入式系统必须提供数据复制与同步功能,使得嵌入 式数据库系统可以随时随地从其它数据库系统获得准确的、最新的、有用的、 2 武汉理工大学硕士学位论文 一致的数据。现在普遍采用乐观复制方法允许用户对本地缓存上的数据副本进 行操作。待网络重新连接后再与数据库服务器或其他终端交换数据修改信息, 并通过冲突检测和协调来恢复数据的一致性。国内外的一些大学、科研机构和 著名的数据库厂商己经在嵌入式数据库系统的数据复制与同步领域进行了大量 的研究工作,并取得了一定的成果。 ( 2 ) 移动事务处理 移动事务是指从移动机上发起的数据操作集合,因为移动事务具有天然的 断接性,一个数据操作集合可能分成几个连接才能完成,所以不能用传统的事 务模型。而且由于网络带宽有限,甚至网络经常处于断接状态,局部复制的数 据难以和主数据版本保持严格一致,使得移动事务具有弱一致性需求。另外移 动事务还有移动机位置不固定,执行时间长,更易出错等的传统事务模型没有 考虑的特征,所以有必要研究新的事务模型来解决。有很多大学例如,p u r d u e 大学对嵌入式数据库技术、移动事务处理等技术进行了大量的研究,如移动数 据库加锁机制,移动事务管理机制等等。r u t g e 大学、m o n a s h 大学( 澳大利亚) 、 p i t t s b u r g h 大学等等也对移动事务处理、位置相关数据的处理等进行了大量研究。 同时也提出了很多种模型,主要有p i o t u r a 和b h a r g a v a 提出一个构建在分布式数 据库系统之上的c l u s t e r i n g 模型,g r a y 提出的一个与c l u s t e r i n g 模型类似的两级 复制模型,它们都实现了在移动环境下保持数据库弱一致性的方案,并能较好 的支持断接操作,但它们资源开销过大,而且没有考虑事务的移动性,对长事 务也不支持。 ( 3 ) 数据的安全性 许多应用领域的嵌入式设备是系统中数据管理或处理的关键设备,因此嵌 入式设备上的数据库系统对存取权限的控制较严格。同时,由于无线连接的网 络远没有固定网络安全,因为无论从何地都可以轻而易举地监听和发射无线电 波,而且很容易被发现,所以数据无线传输比固定线路传输更容易受到盗用和 欺骗。其次,嵌入式设备携带方便,很容易失窃,如何避免嵌入式设备失窃后 对接受和发送数据的盗用以及如何防止碰撞、磁场干扰等问题对个人数据安全 的威胁等等问题都是数据安全需要考虑的问题。保证数据安全的主要措施是:第 一,对移动终端进行认证,防止非法终端的欺骗性接入:第二,对无线通信进行 加密,防止数据信息泄漏;第三,对下载的数据副本加密存储,以防移动终端物 理丢失后的数据泄密。 3 武汉理工大学硕士学位论文 ( 4 ) 实时性要求 嵌入式数据库的很多应用对数据库和实时处理两者的功能均有需求,既需 要数据库来支持大量数据的共享,维护数据的一致性,又需要实时处理来支持 起任务( 事务) 与数据的定时限制。而传统的数据库管理系统不能满足这种实时性 应用的需要,因此产生了将数据库与实时系统相结合的实时数据库系统 ( r t d b s ) 。因为这种实时数据库技术经常被应用在嵌入式数据库中,因此实时数 据库技术也是嵌入式数据库研究的一个重要方向。目前国内外对r t d b s 的研究 非常关注。 1 3 论文的主要工作和内容安排 本文在阅读研究国内外有关嵌入式软硬件系统、嵌入式数据库理论及实现 和嵌入式图形用户界面的相关文献后,综合现实的软硬件资源,实现了一个基 于本人实验室人员的小型嵌入式信息管理系统。论文的主要工作包含以下内容: ( 1 ) 构建a r m l i n u x 开发环境。针对本系统的需求,对几款主流嵌入式处 理器进行比较分析,选择基于$ 3 c 2 4 4 0 平台的开发板作为硬件平台。操作系统、 数据库、图形界面均使用源代码开放的软件包搭建软件开发平台。 ( 2 ) 移植嵌入式数据库s q l i t e 。将s q l i t e 的最新版本3 5 9 版进行定制后移 植到开发板上,为开发作准备。 ( 3 ) 移植嵌入式图形用户界面m i n i g u i 。将m i n i g u i 的最新开源版本1 6 1 0 版进行冗余功能裁剪及修改源代码增添需要功能后移植到开发板。 ( 4 ) 将s q l i t e 和m i n i g u i 相结合,在a r m l i n u x 平台上实现一个具有基 本存储、检索、删除等功能的信息管理系统,并能将查询到的学生详细信息通 过u s b 接口传送到移动存储设备。解决了开发中的中文输入法问题和设计软键 盘进行屏幕输入及使用s q l i t e 存储图片文件的问题。 ( 5 ) 总结。最后对课题所做的工作进行了总结,讨论了该领域存在的一些问 题,展望了下一步的工作。 本文的内容安排结构如下:第一章是绪论,主要包括研究背景和意义、嵌 入式数据库的研究现状和典型应用,同时给出了本文所做的主要工作。第二章 主要研究了系统的硬件资源特性及系统软件平台的搭建。重点对l i n u x 内核在开 发板上移植和使用网络文件系统进行应用程序开发调试作了研究。在第三章中 4 武汉理工大学硕士学位论文 分析了本论文中所用到的主要技术:s q l i t e 和m i n i g u i ,包括如何对他们进行 裁剪并移植到开发板、s q l i t e 的主要特点及重要a p i 函数、m i n i g u i 的框架体 系结构。第四章研究了本嵌入式信息管理系统的设计及实现流程,如何将 m i n i g u i 和s q l i t e 进行结合编程,并给出了u s b 驱动移植及如何将查询到的 结果传送至移动存储设备。第五章重点分析了本系统实现过程中所解决的关键 问题:汉字输入法移植,屏幕软键盘设计及图片格式文件的存储。第六章是结 论部分,对本文的研究做了一个全面的总结,总结了本文研究的主要内容以及 目前的成果,并提出了一些有待改善的地方和尚未解决的问题以及对以后进一 步的工作的展望。 5 武汉理1 。大学硕士学位论文 第2 章开发平台的搭建 2 1 硬件平台简介 考虑到本系统对硬件资源要求不高,只要求有基本的外围接口,故采用广 州友善之臂公司的m i n l 2 4 4 0 开发板,它是一款采用s a m s u n g $ 3 c 2 4 4 0 为微处理 器的低价学习板,外观如图2 - 1 所示。 图2 - 1m i n l 2 4 4 0 开发板外观 论文所要用到的开发板硬件资源特性简要介绍: ( 1 ) c p u 处理器:s a m s u n g $ 3 c 2 4 4 0 a ,主频4 0 0 m h z ,晟高5 3 3 m h z ( 2 ) 内存:6 4 m 的s d r a m 内存 ( 3 ) f l a s h 存储:6 4 m n a n d f i a s h ,掉电非易失 ( 4 ) l c d 控制器( 支持s t n 和t f r 带有触摸屏的液晶显示器) f 5 13 个通道的u a r t ( 6 ) 1 个u s b 主机接口,1 个u s b 设备接口 武汉理工大学硕士学位论文 2 2 软件开发平台搭建 论文的主要工作在软件部分,软件平台的搭建包括向m i n l 2 4 4 0 开发板移植 系统软件和应用软件,系统软件包括嵌入式系统引导代码b o o t l o a d o r ,嵌入式 l i n u x 操作系统和嵌入式文件系统y a f f s ,应用软件这里主要是s q l i t e 和 m i n i g u i 开发环境。图2 2 为系统的软件架构框图。 m i n i g u i + s q l 沁开发环境 之乡 1 y a f f s 嵌入式文件系统 之乡 ib 。0 t l 。a d e 什l i n u x 内核 jl 开发板硬件平台 2 2 1b o o t l o a d e r 的移植 图2 - 2 系统软件架构图 b o o t l o a d o r ( 引导加载程序) 是系统加电后运行的第一段代码。一般它只在 系统启动时运行非常短的时间,b o o t l o a d o r 对与嵌入式系统就好像是b i o s 对于 通用p c 的作用一样,它的主要任务就是将内核映像从硬盘上读到r a m 中,然 后跳转到内核的入口点去运行,即开始启动操作系统。 常见的b o o t l o a d o r 有访v i ,r e d b o o t ,u b o o t 3 】等等,我们这里用到的是v i v i , v i 是韩国m i z ir e a r c h 公司为其开发的s m d k 2 4 1 0 开发板编写的一款 b o o t l o a d o r 。v i 支持使用串口和主机通信,所以使用一条串口电缆来连接目标 板和主机。v i v i 的特点在于,其对$ 3 c 2 4 4 0 芯片和n a n df l a s h 支持较好【4 】。 v i v i 移植要做的主要工作是要指定编译v i v i 时所用到的交叉编译器的路径 及头文件和库文件的路径,还有加入n a n d 分区信息等,简要介绍如下: 下载v i v i 源代码后,修改v i v i m a k e f i l e 文件的三处地方: ( 1 ) 指定编译时需要用到的头文件的位置 7 武汉理工大学硕士学位论文 l i n u x i n c l u d e d i r 2 u s r l o c a l a n n 2 9 5 3 i n c l u d e ( 2 ) 指定编译时需要用到的库文件的位置 a r m g c c - l i b s = u s r l o c a l a r m 2 9 5 3 l i b g c e - l i b a r r n - l m u 2 9 5 3 ( 3 ) 指定交叉编译器 c r o s s c o m p i l e = u s r l o c a l a r m 2 9 5 3 b i n a r m - l i n u x - 然后要加入对n a n df l a s h 分区的信息,这里只分三个区,分别用于存放 v i v i ,l i n u x 内核,文件系统,修已3 u a r c h s 3 c 2 4 1 0 s m d k 2 4 1 0 c 修改为 # i f d e fc o n f i g $ 3 c 2 410 n a n d b o o t m t d _ p a r t i t i o n _ td e f a u l t _ m t d _ p a r t i t i o n s 】= i l a l e : o f f s e t : s i z e : f l a g : ) , n a m e : o f f s e t : s i z e : f l a g : ) , n 锄e : o f f s e t : s i z e : f l a g : ) ) ; 竹v i 访”, 0 , 0 x 0 0 0 3 0 0 0 0 , o ”k e r n e l 什, 0 x 0 0 0 5 0 0 0 0 , o x 0 0 2 0 0 0 0 0 , o ”r o o t , 0 x 0 0 2 5 0 0 0 0 , o x 0 3 d a c 0 0 0 0 , 0 # e n d i f 最后,m a k eu v i 就可以的到一个名为v i v i 的文件,烧到n a n d f l a s h 中启动后 就可以看到啊讥的启动信息了,图2 3 为v i v i 启动后的反馈信息。 8 武汉理 大学硕士学位论文 囡墨墨墨墨 。:、兰二三= = ! 二! , d 喀 营蓦i 由日督 _ | :! 。l k d u n :s h 一 【u s b : h _ e h d p o h t :1o u t 一 t p o | h r :3 2 2 2l i n u x 内核移植 图2 - 3v i v i 启动信息 嵌入l i n u x 虽然具有内核小,效率高,源代码丌放,内核直接提供网络支持 等优点【5 】,但嵌入式系统的硬件资源毕竟有限,需要针对具体的应用通过配置内 核等步骤对系统进行定制,这样才能减少内核体积,节约硬件资源。本论文使 用l i n u x 261 4 的内核。图2 - 4 反映了将l i n u x 移植到一种硬件平台的基本流程。 确定硬件配首,完成 特殊蹬蔷的驰动”发 配簧内桉,包括处理 器类型、设器驱动、 文件系统、交义编译 i h 链的选掸 运行内核,调试 编降内拔,生成 z l m a g e 一进制文件 图2 - 4l i n u x 内核移植的基本流程 武汉理工大学硕士学位论文 移植l i n u x 内核的主要任务及移植方法主要有一下几点f 6 】: ( 1 ) 使l i n u x 内核支持m i n l 2 4 4 0 开发板的c p u 。为此需要修改内核根目录下 的m a k e f i l e 文件,在其中指定开发板c p u 架构类型另外还要指定编译内核 时所用到的交叉编译器: 注释掉以下内容: # a r c h ? = $ ( s u b a r c h ) # c r o s s c o m p i l e ? = 增加如下内容: a r c h = a r m c r o s s c o m p i l e = u s r l o c a l a r m 3 4 1 ,b i n a r m 1 i n u x 一 ( 2 ) 在l i n u x 内核中添加论文所需要用到的各种设备的设备驱动。这一步是内 核移植中最重要也是最困难的一步,系统所用到的各种硬件设备,如n a n d f l a s h ,l c d ,触摸屏,网卡芯片等等都需要在内核中添加相应的驱动支持才 能够使用,设备驱动程序的编写也是一件相当困难的事情,庆幸的是m i n l 2 4 4 0 开发板上的大部分外设都是各类嵌入式系统所常用的主流芯片,所以在网络上 都能找到芯片相应的驱动,我们要做的就是做一些针对本开发板的修改然后在 内核中添加支持就可以了,下面以开发板上n e c 3 5 寸l c d 的驱动来演示如何 在l i n u x 内核当中添加一个特定设备的驱动: 其实l i n u x 2 6 1 4 内核当中的d r i v e r s v i d e o s 3 c 2 4 1 0 f b c 已经是一个通用的 l c d 驱动实现,而我们要做的就是在a r c h a r m m a c h s 3 c 2 4 4 0 c 文件当中根据自 己所用的l c d 来做一些寄存器的初始化然后提供给s 3 c 2 4 1 0 f b c 使用就可以了。 要设置的寄存器的值包括:颜色位数、l c d 屏宽度和高度、5 个l c d 控制寄存 器。这里主要根据l c d 生产厂家提供的d a t a s h e e t 完成设置。具体添加的内 容如下: s t a t i cs t r u c ts 3 c 2 410 f b m a c h i n f os r n d k 2 410 _ i c d c f g _ _ _ m i t d a t a = r e g s= 1 c d c o n l = $ 3 c 2 4 1 0 一l c d c o n i j 下t 1 6 b p p i $ 3 c 2 4 1 0 一l c d c o n l 一t f t l s 3 c 2 4 1 0 _ l c d c o n l _ c l k v a l ( 0 x 0 3 ) , 1 c d c o n 2 = s 3 c 2 410 _ l c d c o n 2 _ v b p d ( 3 ) l s 3 c 2 4 1 0 _ l c d c o n 2l i n e v a l ( 2 3 9 ) l l o 武汉理工大学硕士学位论文 s 3 c 2 410l c d c o n 2v f p d ( 5 ) i $ 3 c 2 4 10l c d c o n 2v s p w ( 1 5 ) , 1 c d c o n 3 = $ 3 c 2 4 10 _ l c d c o n 3 _ h b p d ( 5 ) i $ 3 c 2 4 1 0 _ l c d c o n 3 _ h o z v a l ( 3 19 ) i $ 3 c 2 410 _ l c d c o n 3 _ h f p d ( 1 5 ) , 1 c d c o n 4 = $ 3 c 2 4 1 0 _ l c d c o n 4 _ m v a l ( 1 3 ) l $ 3 c 2 410 _ l c d c o n 4 _ h s p w ( 8 ) , i c d c o n 5 ;$ 3 c 2 4 1 0 _ l c d c o n 5 一f r m 5 6 5l $ 3 c 2 410 一l c d c o n 5 一i n v v l l n el s 3 c 2 410 且c d c o n 5 j n v v f r a m e l $ 3 c 2 4 1 0 - l c d c o n 5 一p w r e n i $ 3 c 2 410 _ l c d c o n 5 _ h w s w p , , f i x e d _ s y n c s =1 , w i d t h = 2 4 0 , h e i g h t =3 2 0 x r e s = r a i n = m a x2 d e f v a l = , y r e s= m a x2 m i n = d e f v a l = ) , b p p= r a i n = m a x 2 d e f v a l = ) , 2 4 0 , 2 4 0 , 2 4 0 , 3 2 0 , 3 2 0 , 3 2 0 , 1 6 , 1 6 , 1 6 , 武汉理工大学硕士学位论文 ; 驱动修改完成后,就可以对内核重新配置,实现对l c d 的支持。启动时能 在l c d 上看到企鹅“t u x 的l o g o 就说明l c d 已经被成功驱动了。 ( 3 ) 使l i n u x 内核支持某种文件系统。文件系统是在内核上一层的系统软件, 而我们的m i n i g u i + s q l i t e 开发环境是建立在文件系统之上的,所以必须要使 内核支持某种虚拟的文件系统。都在论文的程序调试阶段为了避免频繁的程序 烧写,我们可以建立网络文件系统( n f s ) 来调试程序,这就是我们常说的宿主 机目标机开发方式,我们使用n f s 文件系统来存放a r m 可运行的二进制文件, l i n u x 启动后挂载p c 机上的n f s 文件系统,运行二进制文件,查看效果。这样 就免去把二进制文件烧写到开发板存储系统的麻烦,也是对开发板的一种保护 措施。宿主机目标机开发方式流程图如图2 5 所示 7 1 。 图2 5 宿主机目标机开发方式流程图 当我们已经通过n f s 将程序调试好了之后,就需要制作一个磁盘文件系统 来将产品发布,也就是说要制作一个可以固化到存储设备里的嵌入式文件系统, 这样的文件系统有很多,常见的有c r a m f s ,y a f f f s ,j f f s 2 等,我们这里采用 1 2 武汉理工大学硕士学位论文 y a f f s 。使内核支持y a f f s 文件系统的方法比较简单,下载y a f f s 源代码之 后直接指定内核的路径打上补丁然后在配置内核的时候选上有关y a f f s 的选 项,这样重新编译后内核就能支持y a f f s 文件系统了。 经过以上三步之后一个完整的嵌入式l i n u x 内核就移植好了,最后一步我们 需要建立好n f s 就能够在开发板平台上运行二进制可执行文件了。 2 2 3 建立n f s 网络文件系统 l i n u x 内核在系统启动期间进行的最后操作之一就是安装根文件系统。根文 件系统移植是所有l i n d ( 系统不可或缺的组件。在系统启动的的最后阶段,系 统将会寻找i n i t 文件,建立i n i t 进程,并按照e t c 目录的一些脚本文件配置系统, 完成系统的最后启动。 我们可以通过在宿主机上某一个文件夹下面建立上述的目录来创建n f s 文 件系统。具体实现步骤如下【8 】= ( 1 ) 建立基本目录。 在宿主机上建立胁m 以f c 6 l 懿y s t 舶o tn f s 文件目录,并在该目录下分别 建立b i n 、d e v 、e t e 、l i b 、p r o c 、o p t 、t m p 、n m t 目录,并且修改这些目录的 访问权限,使得外部的开发办能够n f s 文件系统的形式访问这些目录。 ( 2 ) 添力h b i n 目录中的内容。 其中包含了必要的用户命令( 二进制文件) 。这里我们采用b u s y b o x 套件来 建立l i n u x 下常用的命令。b u s y b o x 将数以百计的常用u n i x l i n u x 命令集成到一 个可执行文件中( 名为b u s y b o x ) 它体积小巧,功能却不失强大常用l i n u x 命令 实现的功能它都能提供。我们自己开发的应用程序,也可以放入这个目录中。 ( 3 ) 添加d e v 目录中的内容。依照u n i x 的传统,在l i n u x 系统中任何对象( 包 括设备) 都可视为文件。在l i n u x 根文件系统中,所有的设备文件都放在d e c 目 录里。这里我们可以使用d e v f s ( 设备文件系统) 来创建系统所需要的设备文件, 而且这个过程是自动的,选内核配置的时候,选定该功能就可以了。 ( 4 ) 添力w e t c 目录中的内容。系统在安装文件系统的过程中,第一步会读取 e t e i n i t d r c s 文件,该文件包含了对系统运行时的环境设定。该初始化脚本指定 了l i n u x 命令与c 库文件所在的目录、要建立的设备文件、系统网络初始化值以 及控制台初始化值等。 ( 5 ) 添加l i b 目录中的内容。该目录中包含了系统运行所需要的c 库文件。 武汉理丁大学硕士学位论文 ( 6 ) 重新配置编译内核,添加对n f s 文件系统的支持,设置内核启动参数。 至此,我们建立了一个小型的文件系统,这与我们最终要使用的文件系统 是有区别的。这旱n f s 文件系统主要供用户程序开发时使用。虽终我们将制作 能够固化在n a n d f l a s h 上的y a f f s 文件系统,两者的内容基本相同。 内核在系统启动期间,最后完成的步骤是挂载n f s 文件系统。并给出相应 的反馈信息。如图2 - 6 所示。 2 4 小结 图2 - 6n f s 挂载成功后的反馈信息 本章主要分析了系统采用的硬件平台和软件平台的搭建。首先简要晚明了 为什么采用m i n l 2 4 4 0 开发板以及开发板主要硬件资源,然后深入研究了软件平 台搭建的三个步骤:移植b o o t l o a d e r ,移植l i n u x 内核,建立n f s 网络文件系统 平台,其中重点对l i n u x 内核的移植过程作了说明,并通过移植l c d 驱动束说 明了一种设备驱动移植进内核的基本方法。最后分析了如何建立n f s 文件系统 束调试交叉编译后生成的二进制程序。至此本系统开发软硬件平台搭建完毕为 后面的应用软件平台搭建做准备工作。 武汉理工大学硕士学位论文 第3 章s q l i t e 及m i n i g u i 的移植开发 3 1s q l i t e 的移植开发 在当前的许多嵌入式数据库中选择一种作为本论文的应用时,要综合考虑 数据库的体积,速度,价格,是否简单易用等因素。目前常见的嵌入式数据库 有s q l i t e ,b e k r e l y e d b ,m s q l 等,通过查阅资料对比发现b e k r e l y e d b 不是关 系型数据库,不能用标准s q l 语句对其进行操作,使用起来难度大,而m s q l 不是完全开源,使用需支付版权费用,相比这两者而言,s q l i t e 简单易用,访 问速度快,同时提供了丰富的数据库接口,且提供了完善的功能,它小型、快 速和最小化管理的设计思想使得s q l i t e 使用和管理十分的简便。在加上其完全 的开放源码,且无任何版权的限制,所以在论文中选择了s q l i t e 作为系统的数 据库。 s q l i t e 是一个很小的c 语言链接库,这个库本身就完全包含数据库引擎和 接口的功能,而且可以嵌入至其它程序中,完全不用额外的设定。其主要特征如 下【9 】 ( 1 ) 支持原子的、一致的、独立的和持久的( a c i d ) 事务特性,能够在系统崩 溃和断电时不会丢失数据。 ( 2 ) 零配置( z e r o c o n f i g u r a t i o n ) ,无须安装和管理配置。 ( 3 ) s q l i t e 的数据库权限只依赖于文件系统,没有用户帐户的概念,只支持 数据库级锁定,没有网络服务器。 ( 4 ) 支持数据库大小至

温馨提示

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

评论

0/150

提交评论