(电力系统及其自动化专业论文)嵌入式linux开发技术研究.pdf_第1页
(电力系统及其自动化专业论文)嵌入式linux开发技术研究.pdf_第2页
(电力系统及其自动化专业论文)嵌入式linux开发技术研究.pdf_第3页
(电力系统及其自动化专业论文)嵌入式linux开发技术研究.pdf_第4页
(电力系统及其自动化专业论文)嵌入式linux开发技术研究.pdf_第5页
已阅读5页,还剩61页未读 继续免费阅读

(电力系统及其自动化专业论文)嵌入式linux开发技术研究.pdf.pdf 免费下载

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

文档简介

西南交通大学硕士研究生学位论文 第1 i 页 a b s t r a c t n o w a d a y s ,t h ee m b e d d e ds y s t e m i su s e dm o r ea n dm o r e w i d e l y , a l o to f g o o d p e r f o r m a n c ee m b e d d e dp r o c e s s o r s a r ep r o d u c e db ym em a n u f a c t u r e s ,s u c ha s m o t o r o l a ,i n t e i ,a n d s oo n w ec a nd e v e l o p a p p l i c a t i o np r o g r a m o nt h e t r a d i t i o n a r ys i n g l ec h i pd i r e c t l y , h o w e v e ri t i st o od i f f i c u l tt od e s i g np r o g r a m w i t h o u te m b e d d e do p e r a t i n gs y s t e ms u p p o r t i n go nt h ec o m p l i c a t e de m b e d d e d s y s t e m w i t ht h eo p e r a t i n gs y s t e ms u p p o r t i n g ,w ec a n a l l e v i a t ew o r k i n gi n t e n s i t y o fd e v e l o p e re f f e c t i v ea n di s s u et h ep o w e rp e r f o r m a n c eo fe m b e d d e dp r o c e s s o r t h e r e f o r e ,d e v e l o p i n gt h ee m b e d d e do p e r a t i n gs y s t e mi si m p e r a t i v eu n d e rt h e s i t u a t i o n n o w a d a y s ,l i n m xh a sar a p i dt e v e l o p m e n t ,w ec a r ld e s i g no u ro w n e m b e d d e do p e r a t i n gs y s t e mw i t hl i n u x t h el i n u xh a ss o m ea d v a n t a g e s ,s u c ha s , g o o dp e r f o r m a n c e ,w i d e l yp l a t f o r ms u p p o r t i n g ,o p e ns o u r c ec o d e ,p o w e r a c c e s s o f n e t w o r ks u p p o r t i n g t h i sp a p e r , f i r s ta n a l y z e st h ec o n c e p ta n dd e v e l o p i n gp r o c e s so fe m b e d d e d s y s t e m ,i n d i c a t e si t i sat r e n dt h a tu s i n go p e r a t i n gs y s t e mi ne m b e d d e ds y s t e m a n dt h e n ,i n t r o d u c e st h et y p i c a le m b e d d e dl i n u xs y s t e m w ec h o o s et h eu c l i n u x a n a l y z ei t sc h a r a c t e r i s t i c ,i n c l u d i n gt h ea d v a n t a g e ,d e f i c i e n c ya n dh o w t ou t i l i z e i t sa d v a n t a g ea n dr e d e e mi t sd e f i c i e n c y f o rt h ed e v e l o p m e n ta n dr e s e a r c hu s i n g u c l i n u x ,w ee s t a b l i s ht h ec r o s sc o m p i l i n ge n v i r o n m e n tf o ro u rp l a t f o r m w i t h t h er e s e a r c ho fm c 6 8 e z 3 2 8 b o o t s t r a pm o d e l ,w ei m p l e m e n t t h ec o m m u n i c a t i o n o f t a r g e tb o a r da n d h o s tc o m p u t e ra n dd o w n l o a dt h ek e r n e li m a g et ot a r g e tb o a r d t h ee m b e d d e dg r a p h i cu s e ri n t e r f a c et e c h n o l o g ya n d d e v e l o p m e n to f d r i v e ra r e f o c u sp r o b l e m s ,w ea n a l y s et h et y p i c a le m b e d d e dg u i - - m i c r o w i n d o w s ,p o r ti t o no u ro b j e c ts y s t e ma n dd e v e l o pt h ed r i v e ro ft o u c hp a n e li nu c l i n u x f i n a l l y , t os a t i s f yr e q u i r e m e n to f c h i n e s ei n p u ti ne m b e d d e de q u i p m e n t ,w ec o m p a r et w o i m p l e m e n tm e t h o d so fc h i n e s ei n p u t ,t h e nd e c i d et o , u s ep i n y i nt r e et ob u i l di t s d a t as t r u c t u r ea n da r i t h m e t i c ,i m p l e m e n tt h ei n t e l l e e t i v e i n p u t a n dd e s i g nt h e p r o g r a ma n di t sm a k e f i l ef i l e w es u m m a r i z e st h ed e s i g nm e t h o d sa n dm o d e l i n e m b e d d e dl i n u xb a s e do nt h i se x a m p l e k e yw o r d :e m b e d d e ds y s t e m u o l in u x ,k e r n ef 西南交通大学硕士研究生学位论文 第l 页 第1 章绪论 1 。1 课题的背景及意义 嵌入技术兴起于1 9 6 5 1 9 7 0 年集成电路化的第三代计算机期间,当时 的计算机也用来制造仪器仪表、医疗设备、机器人等。8 0 年代将嵌入式应 用所需要的微处理器i o 接口、a d 转换、d a 转换、串行接口以及r a m , r o m 全部集成到一个v l s t 中,制造出而向i o 设计的微控制器,使嵌入式 应用得到了全面而快速的发展。 当今世界,以计算机技术、芯片技术和软件技术为核心的数字化技术得 到了迅猛发展,不仅广泛渗透到社会、经济、军事、交通、通信等相关行业, 而且深入到家电、娱乐、艺术、社会文化等各个领域,掀起了一场数字化技 术革命。现代控制技术、通讯技术、多媒体技术与i n t e m e t 的应用与普及, 促使消费电子、计算机、通信一体化趋势步伐加快,嵌入式技术再度成为一 个研究热点。 11 1 嵌入式系统的定义 嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪, 适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算 机系统。在嵌入式系统中,操作系统和应用软件集成于计算机硬件系统之中, 即系统的软件与硬件一体化。它具有软件代码少、高度自动化、响应速度快 等特点,特别适合于要求实时和多任务处理的情况1 j ”。 11 2 从嵌入式系统到嵌入式操作系统 早期的嵌入式系统很多都不使用操作系统,它们只是为了实现某些特定 的功能以满足特定场合的需要,一般使用一个简单的循环控制对外界的控制 请求进行处理,不具备现代操作系统的基本特征。随着嵌入式系统的功能越 来越复杂,没有操作系统支持成为一大缺点,因为增加项功能就要重新设 计系统。同时随着计算机技术和集成电路的发展,硬件所提供的条件也越来 越好,选择嵌入式操作系统也就成为一种趋势,原因有以下几点:首先,应 用开发者的精力通常集中在自己应用的领域,而没有时间和精力去全面掌握 操作系统,所以需要嵌入式操作系统提供服务。其次,嵌入式系统的最大特 点就是个性突出,每个具体的嵌入式系统都会有自己独特的地方,当其有某 西南交通大学硕士研究生学位论文第2 页 种特殊需要如果操作系统能给予支持,则往往会有事半功倍之效”l 。 1 1 3 典型的嵌入式操作系统 m i c r o s o f tw i n d o w sc e 是一个简洁高效的多平台操作系统。它的模块化 设计允许它对从掌上电脑到专用工业控制器的用户电子设备进行定制。操作 系统的基本内核需要至少2 0 0 k 的r o m 。从s e g a 的d r e a m c a s t 游戏机到 现在大部分的高价掌上电脑,都采用了w i n d o w sc e ,但由于价格太高,使 得整个产品的成本急剧上升。 v x w o r k s 是目前嵌入式系统领域中使用最广泛、市场占有率最高的嵌入 式操作系统。它支持多种处理器,如x 8 6 ,s u ns p a r e ,m o t o r o l a m c 6 8 x x x , m i p sr x 0 0 0 ,p o w e r p c 等等。它使用的是和i i n i x 不兼容的环境,大多 数的v x w o r k sa p i 是专有的,并采用g n u 的编译和调试器。 q n x 是一个实时可扩充的操作系统,它遵循p o s i x ,l ( 程序接口) 和 p o s i x ,2 ( s h e l l 和工具) ,部分遵循p o s i x 1 b ( 实时扩展) 。它的内核非常 小,只提供四种服务:进程调度,进程州通讯,网络通讯和中断处理,因而 速度极快。 p a l m o s 是3 c o m 公司的产品,它在p d a 市场上占有很大的市场份额, 具有开放的操作系统应用程序接口( a p i ) ,开发商可以根据需要自行开发应 用程序。 1 1 4 嵌入式l i n u 义的优势 在常见的嵌入式操作系统如v x w o r k s ,w i n d o w sc e ,p a l mo s ,q n x , uc o s i i 中,高端嵌入式系统要求许多高级的功能,如图形用户界面、网 络支持、设备驱动接口等。很多高端r t o s 供应商已经提供了这些功能,但 其价格也很高,一般人难以接受,并且商业的嵌入式操作系统一般不提供源 代码,只提供应用程序的接口,这对于一般的应用足够了,甚至做的非常好, 但对于特殊的应用显得难以定制。现在需要的是一个便宜、成熟并且提供高 端嵌入式系统所必须特性的操作系统,而嵌入式l i n u x 操作系统以价格低 廉、功能强大又易于移植而正在被广泛采用,成为新兴的力量,所以,众多 商家纷纷转向了嵌入式l i n u x t ”。 l i n u x 最初为基于3 8 6 4 8 6 的p c 机开发,但现在也可以运行在d e c a l p h a 、s u ns p a r c 、m 6 8 0 0 0 ,以及m p s 和p o w e r p c 等计算机上 2 7 , 2 8 j 。 l i n u x 的出现为嵌入操作系统提供了一个极有吸引力的选择,它是 西南交通大学硕士研究生学位论文第3 页 u n i x 操作系统的克隆,其内核由l i n u st o r v a l d s 以及网络上组织松散的黑 客队伍一起从零开始编写而成。l i n u x 的目标是保持p o s i x ( 可移植操作系 统接口,p o r t a b l eo p e r a t i n gs y s t e mi n t e r f a c e ,缩写为p o s i x 足为了读音更 像u n i x ) 的兼容。它是个和u n i x 相似、以核心为基础的、完全内存保护、 多任务多进程的操作系统。l i n u x 具备现代功能完整的u n i x 系统所具备的 全部特征,其中包括真正的多任务、虚拟内存、共享库、需求装载、共享的 写时复制程序执行、优秀的内存管理以及t c p i p 网络支持等。支持硬件平 台广泛,包括x 8 6 ,a l p h a ,s p a r c ,m i p s ,p p c ,a r m ,m o t o r o l a 等大 部分芯片。 l m u x 的发行遵守g n u ( g n ui sn o tu n i x ) 的通用公共许可证 g p l ( g n u g e n e r a lp u b l i cl i c e n s e ) ,源代码公开,任何人可以在遵守g p l 的 基础上修改发行,不用担心w i n d o w s 之类的后门。由于l i n u x 诞生于互连 网,网络资源丰富,几乎所有的u n i x 应用程序都移植到l i n u x 上。同时 l i n u x 拥有优秀的开发工具,利用g n u 项目的c 、c 抖编译器,g d b 源程 序级调试器可以满足绝大多数场合的需要,如著名的v x w o r k s 电使用g n u 的凋试工具。l i n u x 层次结构清晰,可剪裁,定制方便j “”“,。 嵌入式l i f l u x 开放的源代码为我国软件产业的发展和腾飞提供了前所未 有的机遇,这体现在以下几个方面: 1 开发具有自主知识产权的嵌入式操作系统。 2 开发高水平的应用软件。 3 有助于加强嵌入式操作系统的科研和教学。 但将l i _ n u x 用于嵌入式系统也有其不足之处:首先,l i n u x 最初设计为 通用操作系统,其目标是追求整体最佳性能,所以不能很好处理实时任务, 在实时性要求高的场合,必须对其进行实时行改造;其次,如何精简l i n u x 适用于嵌入式环境也是一个难题。 1 2 典型的嵌入式l if l u x 系统 嵌入式l i n u x 是指对l i n u x 经过小型化裁剪后,能够固化在容量只有几 百k 字节到几兆字节的存储器芯片或单片机中,应用于特定嵌入式场合的专 用l i n u x 操作系统。嵌入式l i n u x 的开发和研究是目前操作系统领域的一个 热点。目前,国外不少大学、研究机构和知名公司都加入了嵌入式l i f l u x 的丌发工作,目前较成熟和应用较广的系统有:r t l i n u x 、e m b e d i x 、“c g i n u x 西南交通大学硕士研究生学位论文第4 页 等,下面就来简要介绍一些嵌入式h i n u x 系统。 r t - l in u x r t - l i n u x 最早是由美国新墨西哥理工学院开发的基于标准l i n u x 的嵌 入式操作系统,在设计和实现时力图遵循p o s i x1 0 0 3 1 3 标准。截至目前为 止,r t - l i n u x 已成功地应用于航天飞机的空间数据采集、科学仪器测控和 电影特技图像处理等广泛领域,它可以实现“硬”实时,非常适合对实时行 要求高的场合。r t l i f l u x 开发者并没有针对实时操作系统的特性重写l i n u x 的内核,因为这样做工作量会非常大,而且耍保证兼容性也非常困难。为此, r t l i n u x 利用l i n u x 的内核模块机制,采用插入模块的方式,通过一个独 立的内核来管理实时任务8 9 j 。 r t l i f l u x 目前分为两个商业版本:开放式( g p l ) 和专业版( 二进制形 式发布) 。专业版支持更多的硬件体系结构,包括开放版中没有的性能和特 征。 e m b e d ix e m b e d i x 是由嵌入式l i n u x 行业主要厂商之一l i r e o 推出的,它根据嵌 入式应用系统的特点重新设计的l i n u x 发行版本。e m b e d i x 提供了超过2 5 种的l i n u x 系统服务,包括w e b 服务器等。它基于l i n u x 2 2 核心,并己经 成功地移植到了i n t e lx 8 6 和p o w e r p c 系列处理器上。如其他l i n u x 的发行 版本一样,e m b e d i x 可以免费获得。l i d e o 公司还发布另一个熏要的软件产 品,它可以让在w i n d o w sc e 操作系统上运行的程序能够在e m b e d i x 。可以 说,e m b e d i x 是种较完整的嵌入式l i n u x 解决方案。 红旗嵌入式l i n u x 红旗嵌入式l i n u x 是由中科院计算所自行丌发的嵌入式操作系统,它秉 承了开放的l i n u x 的诸多优秀性能,并经过红旗软件公司的精心优化和裁 减,从而更加适用于嵌入式设备。现在,可以在移动计算平台( p d a 、s m a r t p h o n e 、e b o o k ) 、信息家电( 机顶盒) 、工业( 智能工控设备) 、商业( p o s a t m ) 等众多的嵌入式设备中看到红旗嵌入式l i n u x 的身影】。 b l u e c a t b l u e c a t 是l y n x 实时系统公司的小型嵌入式l i n u x 发行版,l y n x 公司是 实时及嵌入式系统的主要提供者之一,该公司为智能产品开发软件并提供相 西南交通大学硕士研究生学位论文第5 页 应的软件服务。 uc l i f l u x u c l i n u x ( z c l i n u x 在很多场合又被称为u c i n u x ,因此本文后面的 u c l i n u x 通指“c l i f l u x ) 是l i n e o 公司在开放源代码的嵌入式l i n u x 的一个 典范之作,在l i n u x 内核2 0 的时候,u c l i n u x 就产生了。目前,u c l i n u x 已经支持最高l i n u x 内核为2 6 x 。它是专门为不具有内存管理单元( m e m o r y m a n a g e m e n tu n i t ,删) 的处理器设计 1 “。因为嵌入式系统对于成本比较敏 感,因此,无m m u 的嵌入式处理器在市场中大量存在,比如m o t o r o l a 的m 6 8 k 系列,c o l d f i r e 系列,s a m s u n g 的a r m 7 系列等。鉴于u c l i n u x 优 良的性能,最新的l i n u x 2 6 x 已经u c l j d u x 的大部分并入主流内核,使得 标准的l i f l u x 在嵌入式领域得到极大的扩展。本文的嵌入式f l u x 系统研究 与开发,即是在该平台下进行,详细的分析见第2 章和第3 章。 1 3 目前研究内容和研究背景 基于嵌入式l i n u x 的研究与开发是目前嵌入式系统的热点,国内外的公 司和研究机构都积极投身这一领域,目前嵌入式l i n u x 的主要研究内容和方 向表现在以下几个方面: 1 嵌入式l i n u x 内核技术 一个标准的支持各种体系结构的l i n u x 中大约包含4 5 0 0 个c 语言和汇编 语言的文件,分布于大概2 7 0 个子目录中,源代码大约有4 1 0 万行之多。源代 码的分析以及内核的改进,是实现具有自主知识产权的嵌入式操作系统和嵌 入式应用的一个重要工作。 2 ,实时睦的扩展 l i n u x 作为一种通用操作系统,它本身的设计不可能考虑基于它的实时 系统及其兼容性问题。但在嵌入式系统中,尤其是对处理时间敏感的场合, 对实时性的要求比较高。常见的实时性改造有双内核、r t h a l ( r e a l t i m e h a r da b s t r a c t i o nl a y e r ) 等方法。 r t - 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 下的 一般任务。 西南交通大学硕士研究生学位论文第6 页 r t a i 和r t - l i n u x 最大的不同地方在于它非常小心地在l i n u x 上定义了一 组r t h a l ( r e a l t i m eh a r da b s t r a c t i o nl a y e r ) 。r t h a l 将r t a i 需要在l i n u x 中修改的部分定义成一组程序界面,r t a l 只使用这组界面和l i n u x 沟通。这 样做的好处在于可以间接修改l i n u x 核心的程序代码直至最小,这使得将 r t h a l 移植到新版l i n u x 的工作量减至最低。 3 ,嵌入式图形界面技术 图形用户界面是计算机得以广泛应用的重要原因之一,它极大的方便了 非专业用户的使用,人们不再需要死记硬背大量的命令,可以通过窗口、菜 单方便的操作。嵌入式g u i 就是在嵌入式系统中为特定的硬件设备或环境而 设计的图形用户界面。嵌入式g u i 在实际使用中要具有如下特征:轻型、占 用资源少:高性能;高可靠性;可配置。目前国内外大量的科研机构、公刮 都在从事这方面的设计,较为成熟的嵌入式g u i 有如下这些” : m i c r o w i n d o w s 一 , 由g r e g o r y h a e r r 主持开发的一个公开源代码的m p l ( t h e m o z i l l ap u b l i c l i c e n s e ) 的项目,同时用户也可以在g p l 协议下修改发行,它致力于为一些 小型的设备和平台提供现代图形窗口环境,有基于w i n 3 2 x 的两套a p i 接口, 本文第4 章对其进行了分析与移植。 q t e m b e d d e d 由著名的q t 库开发商t r o l r e s h 正在进行的面向嵌入式系统的q t 版本,它 对于各种硬件接口到g u i 工具包提供了完整的图形栈。q t e m b e d d e d 的a p i 同q r d x l l 和q t w i n d o w s 的相同,但并不是基于x 1 l 库,它也是公丌源代码的 l g p l ( l e s s e rg p l ) 项目0s 1 6 1 。 m i n i g u i m i n i g u i 是国内开发的一种面向嵌入式系统或实时系统的公开源代码的 图形支持系统。它遵守l g p l ,主要运行在l i n u x 控制台上,实际上可以运行 在任何一种具有p o s i x 线程支持的兼容系统上1 1 3 ,“1 ”1 。 4 嵌入式库技术 标准的g l i b c 库体积庞大,不适合在嵌入式系统中应用,而将其改造成一 个适合在嵌入式系统中使用的库是一个繁重的工作,因此,目前已有相关组 织开发出专用的应用程序库,比如在u c l i n u x 下的u c l i b c 和u c 1 i b c ,本系统即 采用u c l i b c ,本文第2 章有它们详细的介绍。 5 集成开发环境 l i n u x 和u n i x 传统的应用开发都是使用命令行的方式,对j 丌发人员的 西南交通大学硕士研究生学位论文第7 页 要求比较高,不利于嵌入式l i n u x 的广泛应用,大部分开放源代码的嵌入式 l i n u x 系统也是采用这种方式。因此,实现开发环境的集成化,将编辑器、 调试器、软件仿真器、监视器在良好的图形界面中实现是嵌入式l i n u x 发展 的重要方向,它可以有效地降低开发难度,提高开发效率。 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 渗透的领域包括: 手持设备:数码产品包括掌上电脑、手机、手持智能仪器仪表等,由 一于l m u x 已经实现了完整的t c p f i p 协议,可以方便将这些智能终端接入网 络。 工业自动化:应用于工业控制系统中大量使用的1 6 、3 2 位嵌入式控 制嚣。 信息家电:实现冰箱、空调等的网络化。 因为l i n u x 的开放性、实现多种网络协议,许多人认为l i n u x 非常适合 多数i n t e m e t 应用。他们认为l i m t x 可以支持不同的设备,不同的配置。l i n u x 对厂商不偏不倚而且成本极低,能够很快成为用于各种设备的操作系统。 掌握嵌入式l i n u x 内核技术、开发技术,根据实际的需要定制具体的应 用,开发相应的系统,满足用户的需要,是目前研究嵌入式l i n u x 主要目的。 1 4 本文的主要内容和结构 第1 章为绪论,第2 至5 章为论文主体部分,第6 章为结论。 第1 章绪论部分,介绍了本课题的背景与意义,嵌入式系统的发展, 在嵌入式系统中引入操作系统的意义:简单的分析了l i n u x 的优势以及将 l i n u x 应用在嵌入式系统的优势,并对常见的嵌入式l i n u x 系统及目前围绕 嵌入式l i n u x 所做开发与研究动态的做了介绍。 第2 章介绍了针对开放源代码的系统开发的常见术语,详细分析本文 的研究对象u c i i n u x 操作系统的具体特性:存储管理特征,可执行文件 格式,线程与进程,u c l i n u x 系统小型化的方法,设备驱动以及如何在实际 西南交通大学硕士研究生学位论文第8 页 的嵌入式系统中发挥u c l i n u x 特点和弥补其不足。 第3 章探讨了嵌入式系统软件开发方法,并在该硬件平台上建立交叉开 发环境,包括内核的下载,工具链的创建,配置宿主机。在嵌入式系统底层 调试中,不可避免要和内核打交道,因此在本章分析了m c 6 8 e z 3 2 8 的 b o o t s t r a p 模式,r a m 和r o m 版的调试方法,修改1 d 文件以适合目标平台。 通过分析l i n u x 的源代码结构和剪裁方法,构造了精简的内核。 第4 章分析典型的嵌入式g u i 之一m i c r o w i n d o w s ,并将其移植到目 标系统中,针对目标系统的触摸屏,开发了其在u c l i n u x 下的驱动程序。 第5 章比较了嵌入式系统中两种输入法,并选择了采用何序树的方法掏 造了适合嵌入式系统中使用的输入算法,实现了汉字输入。 第6 章为结论部分。 1 5 课题来源及论文工作 , 课题来源于某研究所的嵌入式操作系统研究项目,通过对嵌入式l i n u x 的研究,分析其体系结构,探讨嵌入式l i n u x 的内核剪裁方法、应用开发方 法。 本沦文工作主要包括:首先分析了目前典型的嵌入式l i n u x 系统,并采 用u c l i n u x 做为研究开发的支撑平台,分析了其特性。建立交叉编译环境、 配置宿主机、目标机。研究嵌入式系统引导技术,并在b o o t s t r a p 模式f 完 成对内核的下载。考虑在手持设备中,图形用户界面的重要性,本文分析了 典型的嵌入式g u i 之一m i c r o w i n d o w s ,并将其移植到目标系统中,针 对触摸屏,开发了其驱动程序并成功的运用于目标系统中。最后本文考虑嵌 入式系统中对汉字输入的需要,结合嵌入式系统的环境,分析比较了两种算 法,并采用生成树的方法构造了算法结构,实现了具有联想功能的汉字输入。 西南交通大学硕士研究生学位论文 第9 页 第2 章u c l in u x 系统分析 2 。1 相关术语介绍 在嵌入式l i n u x 的研究开发中,由于采用开放源代码结构,经常涉及一 些常见的术语,现做如下介绍: p o s x p o s i x 表示可移植操作系统接口,电气电子工程师协会( i n s t i t u t eo f e l e c t r i c a la n d e l e c t r o n i c s e n g i n e e r s ,i e e e ) 最初开发p o s i x 标准,是为了提 高u n i x 环境下应用程序的可移植性。然而,p o s i x 并不局限于i n 皿x 。 许多其它的操作系统,例如d e co p e n v m s 和m i c r o s o f tw i n d o w sn t ,都 支持p o s i x 标准,尤其是i e e es t d 1 0 0 3 1 1 9 9 0 ( 1 9 9 5 年修订) 或p o s i x 1 , p o s i x 1 提供了源代码级别的c 语言应用编程接口( a p i ) 给操作系统的服 务程序。p o s i x 1 已经被国际标准化组织( i s o ,i m e m a t i o n a ls t a n d a r d s o r g a n i z a t i o n ) 所接受,被命名为i s o i e c9 9 4 5 一l :1 9 9 0 标准。p o s i x 现在已 经发展成为一个非常庞大的标准族,某些都分正处在开发过程中。 g n u g n u 是g n ui sn o tu n i x 的递归缩写,它是自由软件基金会的一个项 目,浚项目的目标是开发一个自由的u n i x 版本,这一u n i x 版本称为 h u r l ) 。尽管h u r d 尚未完成,但g n u 项目已经开发了许多高质量的编程 工具,包括e m a c s 编辑器、著名的g n u c 和c + + 编译器( g c c 和2 + + ) ,这 些编译器可以在任何计算机系统上运行。g n u 首先是指g n u 项目的各种软 件,以及由它们组成的软件环境或者平台。所有的g n u 软件和派生工作均 适用g n u 通用公共许可证,即g p l 。g p l 允许软件作者拥有软件版权,但 授予其他任何人以合法复制、发行和修改软件的权利。l i n u x 的开发使用了 许多g n u 工具,l i n u x 系统上用于实现p o s i x 2 标准的工具几乎都是g n u 项目i :丌:发的。l i n u x 内核、g n u 工具以及其他一些自由软件绳成了人们常说 的l i n u x :符合p o s l x 标准的操作系统s h e l l 和外围工具、c 语言编译器和 其他开发工具及函数库、x w i n d o w 窗口系统、各种应用软件、包括字处理 西南交通大学硕士研究生学位论文第1 0 页 软件、图象处理软件等。 g p l g p l 协议是g n u 的核心,它是自由软件的法律基础,其主要目标是保 证用户共享和修改蛊由软件的自由,即保汪软件对所有的用户来说是自由 的,和软件是否免费无关。它用户要求软件以源代码的形式发布,并规定任 何用户能够以源代码的形式将软件复制或发布给别的用户。它提醒每个用 户,对于该软件不提供任何形式的担保。如果用户的软件使用了受g p l 保 护的任何软件的一部分,那么该软件就继承了g p l 软件,并因此而成为g p l 软件,也就是说必须随应用程序一起发布源代码,保证用户在需要时能得到 源代码。g p l 并不排斥对自由软件进行商业性质的包装和发行,也不限制 在自由软件的基础上打包发行其他非自由软件。遵照g p l 的软件并不是可 以任意传播的,这些软件通常都有正式的版权,g p l 在发布软件或者复制 软件时声明限制条件。尽管l i n u x 内核也属于g p l 范畴,但g p l 并不适 用于二通过系统调用而使用内核服务的应用程序,通常把这种应用程序看作是 对内核的正常使用,g p l 适用于自由软件基金会大多数的软件。 在l i n u x 系统中,g p l 的信息保存在源代码目录下命名为c o p y i n g 的 文件早。 l g p l l g p l ( l e s sg p l ) 许可证,也是自由软件联盟开放源代码软件许可证 的一种,原来也称之为l i b r a r y g e n e r a l p u b l i c l i c e n s e ( g n u 库通用公共许可 i i z ) ,可见其是关于库函数的协议。大部分的g n u 软件,包括一些函数库, 原来是受g p l 的保护。而l g p l 许可证,适用于特殊设计的函数库,且与 原来的通用公共许可证有很大的不同,给被许可人较为宽松的权利,所以口u “较宽松的公共许可证”,以准许非自由的程序可以与这些函数库连接。 当个程序与一个函数库连接,不论是静态连接或使用共享函数库,应 用软件可以说是二者结合的作品。原来的通用公共许可证只有在整个结合品 满足其自由的标准时,才允许连接。较宽松通用公共许可则以更宽松的标准 允许其它程序代码与本函数库连接。 在有的情况下,因特殊的需要而鼓励大家尽可能广泛地使用特定的函数 西南交通大学硕士研究生学位论文第1 l 页 库,因而使它成为实际上的标准。为了达到此目标,必须允许非目由的程序 使用此函数库。一个较常发生的情况是一个自由的函数库与一个被广泛使用 的非自由函数库做相同的工作,在此情况下,限制只有自由软件可以使用此 自由函数库不会有多少好处,故引入了l g p l 许可证,允许非自由程序使用 特定的函数库,可以让更多的人们使用由软件的大部分。非自由软件可以不 公布源代码,只需要向用户提供使用的库函数源代码。尽管l g p l 许可证对 使用者的自由是较少的保护的,它却能确保与此函数库连接的程序的使用者 拥有自由,而且具有使用修改过的函数库版本来执行该程序的必要方法。 2 2u c l in u x l i n u x 是一种很受欢迎的操作系统,它与u n i x 系统兼容,开放源代码。 它原本被设计为桌面系统,但是现在其应用非常广泛,从大型机、服务器到 精巧的嵌入式系统都可以看到它的身影,u c l i n u x 正是在这种氛围下产生 的,它是在l i n u x m i c r o c o n t r o l l e r 项目中,将l i n u x 移植到无m m u 的微控 制器的产物。在u c l i n u x 这个英文单词中u 表示m i c r o ,小的意思,c 表 c o n t r o l ,控制的意思,所以u c l i n u x 就是m i c r o c o n t r 0 1 l i n u x ,字面上的 理解就是“针对微控制领域而设计的l i n u x 系统”。现在u c l i n u x 已经广泛 应用在p d a 、口电话、网络监控设备、路由器等产品中。 2 2 1u c l in u x 系统的特点 u c l i n u x 是l i n e o 公司在嵌入式l i n u x 领域的一个典范之作,在l i n u x 内核2 0 的时候,u c l i f l u x 就产生了。目前,u c l i n u x 已经支持最高l i n u x 内核为2 6 x 口1 , 3 4 , 3 5 ,它的新版本几乎和l i n u x 内核新版本同时推出,u c l i n u x 具有如下特点: 1 同标准的l i n u x 相比,u c l i n u x 针对l i r u x 内核的二二进制代码和源 代码都经过重新编写,以紧缩和裁剪基本的代码。这就使得u c i 。i n u x 的内核 同标准的l i n u x 的内核相比体积非常之小,但是仍然保持了i 。i n u x 操作系统 的主要的优点,如稳定性、强大的网络功能、出色的文件系统支持、系统的 可剪裁性、可配置性等。u c l i n u x 包含l if l u x 常用的a p i ,小于5 1 2 k 的内核 和相关的工具、操作系统所有的代码加起来小于9 0 0 k 。 2 具有完整的t c p f p 协议栈,同时支持其他许多的网络协议。l i n u x 诞生于互联网,其网络功能十分强大。u c l i n u x 可以称作是一个针对嵌入式 西南交通大学硕士研究生学位论文第1 2 页 系统的优秀网络操作系统,这在i n t e r n e t 时代尤其重要。 3 支持硬件平台广泛,从最开始在m c 6 8 e z 3 2 8 上成功运行起,现在支 持的处理器包括:a r m 7 t d m ,e t r a x ,m o t o r o l a 的c o l d f i r e 系列、龙珠系列。 u c l i f t u x 已经在手持设备、工控设备、网络路由器、网络监控设备上大量应 用。 、 4 支持多种文件系统包括n f s ,s m b 。e x t 2 s - d o s ,f a t l 6 3 2 ,r o m f s , r a m f s ,j f f s 等。加载n f s 文件系统,是应用软件开发调试中常使用的方法, 通过开启n f s 服务,将l i n u x 宿主机上的目录映射到开发板上,这样我们在 目标机上可以将该目录上的可执行程序调入目标机运行,调试,而不需要每 次都将应用程序烧写到f l a s h 上运行。s m b 是实现和w i n d o w s 互访的服务。 f f s 是在f l s a h 上实现可写的文件系统,以掰补r o m f s 文件系统不可写的 缺点并具有闩志功能,在系统掉电的情况下,对数据具有保护功能。 2 2 。2u c l in u x 存储管理特点 由于u c l i n u x 缺少了m m u 的支持 代替m m ,其存储管理具有自身的特点, 务管理功能受到一定的限制 3 6 , 3 8 , 3 9 , 4 0 。 在源代码的l i n u x 下以m m n o m m u 总的说来更加简单,同时它的多任 i u c l i n u x 由于没有m m u ,因此在多任务的实现上需要待殊地处理, 多任务的实现有多进程和多线程的方法: 多进程 u c l i n u x 中无法实现f o r k ( ) ,而只能使用v f o r k o 。在含有f o r k ( ) 的文 件添j 2 玎女 1 下条件编译指令: # i f d e fu c l i n u x # u n d e r f o r k ( ) # d e f i n ef o r k ( ) v f o r k 0 # e n d i f 这并不意味着不具有多任务功能,而是父进程在调用v f o r k 0 :之_ 后, 进入睡眠队列,等待子进程调用e x e c o 或者e x i t ( ) 芝2 n ,父进程继续执 行。 多线程 出于u c l i b c 中没有线程库,若要使用线程,在对u c l i n u x 内核编 译时应用程序库选择u c l i b c 和p o s i xt h r e a ds u p p o r t ,这样应用程序 可以使用相应的线程库。由于多个线程共享运行空间,从而节省系统开 西南交通大学硕士研究生学位论文 第1 3 页 销,提高效率。 2 标准l i n u x 中内存为应用程序提供接近无限的堆空间和栈空间,在 u c l i n u x 中,如果堆的增长空间太大,它将可能覆盖程序的静态数据段和代 码段。 3 u c l i n u x 中没有自动扩展的栈,也没有b r k 0 调用,用户必须通过使 用m m a p 0 来分配内存空间,用户在编译时指定栈的大小。 4 不具有内存保护机制,任何程序对内存的访问不当都有可能导致内 核崩溃。 5 没有m v i u ,不采用虚拟内存,没有物理地址到虚拟地址的映射, 多个程序可以共享相同的物理地址,在程序被加载到内存时,改变程序中的 寻址指令所使用的地址值为当前被加载的位置。r o m 和r _ a m 统一编址, 在应用程序中可以直接访问这些地址。 2 3l in u x 线程和进程 一个进程包括个可执行的程序和一系列的资源,例如文件描述符表和 地址

温馨提示

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

评论

0/150

提交评论