![(电路与系统专业论文)基于嵌入式Linux软件平台技术的研究[电路与系统专业优秀论文].pdf_第1页](http://file.renrendoc.com/FileRoot1/2019-12/13/d27c41bb-960c-46a9-80ce-d58a702899f8/d27c41bb-960c-46a9-80ce-d58a702899f81.gif)
![(电路与系统专业论文)基于嵌入式Linux软件平台技术的研究[电路与系统专业优秀论文].pdf_第2页](http://file.renrendoc.com/FileRoot1/2019-12/13/d27c41bb-960c-46a9-80ce-d58a702899f8/d27c41bb-960c-46a9-80ce-d58a702899f82.gif)
![(电路与系统专业论文)基于嵌入式Linux软件平台技术的研究[电路与系统专业优秀论文].pdf_第3页](http://file.renrendoc.com/FileRoot1/2019-12/13/d27c41bb-960c-46a9-80ce-d58a702899f8/d27c41bb-960c-46a9-80ce-d58a702899f83.gif)
![(电路与系统专业论文)基于嵌入式Linux软件平台技术的研究[电路与系统专业优秀论文].pdf_第4页](http://file.renrendoc.com/FileRoot1/2019-12/13/d27c41bb-960c-46a9-80ce-d58a702899f8/d27c41bb-960c-46a9-80ce-d58a702899f84.gif)
![(电路与系统专业论文)基于嵌入式Linux软件平台技术的研究[电路与系统专业优秀论文].pdf_第5页](http://file.renrendoc.com/FileRoot1/2019-12/13/d27c41bb-960c-46a9-80ce-d58a702899f8/d27c41bb-960c-46a9-80ce-d58a702899f85.gif)
已阅读5页,还剩72页未读, 继续免费阅读
(电路与系统专业论文)基于嵌入式Linux软件平台技术的研究[电路与系统专业优秀论文].pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基予歉入式l 盔h x 较俘平台技术的磷究 中文摘要 32 位高性能嵌入式处理器的广泛使用,一方面满足了嵌入式高速处理的需 求,舅一方殛为稳定、意逮、可靠躬运行嵌入式操佟豢绞提供了硬徉平台。嵌入 式操作系统的使用极大地加速了软件开发过程,提商了系统的稳定性和安全健, 怒目前嵌入式 f 究的重点。其中源码开放的l i n u x 猩价格上有很大优势,其内 核擞小、资源睾富瑟且霹裁骛配置,在嵌入式系统中德到了广泛後瘸,蒡逐步镪 到妲内人士的认可。采用u n u x 进行嵌入式开发面对的主要闯磁脊两个:个 憋操作系统的改造,裁减内核或是直接敬写l 几u 的内存管理、进程调度机僚4 镣;另一个裁蹩为应蠲程垮静震要开发疯层设备驱动壤摩。 本文以在产业界广为使用的s 3 c 2 4 i o x ( a r m 9 2 0 t 核) 处理器为硬件核 心,系统地介绍了s 3 c 2 4 1 0 处理器殿系统的硬件平台结构。并在此基础上熬 患辑究了系统软搏乎台静开发,荬孛茸麓磅究了綦予“n u x 熬嵌入式较箨开发 环境的构建。之后详细地分析了嵌入式l i n u x 的启动引导程序设计,并在分析 l - n u x 内核结构的基础上,研究了内核移植及配置编译的具体方法和过程。本文 熬悫分辑了足令关键驱动糕寒戆实瑰积移援,劳绘出了详缨敦实蠛方寰。其内容 包括串口驱动、l c d 驱动、触摸屏驱动投控制键盘的1 2 c 总线驱动。文章的最 艏介绍了基于q v e m b e d d e d 开发应用程序的方法,并总结了将q t o p i a 图形 器嚣系统匆鬟入戮c 糟m 冬文转系统孛瓣方法。 关键字: 嵌入式l i n u x ,b o o t l o a d e r , 内核编译, q t 芒m b e d d e d 第j i 页 基于嵌入式l i n u x 软件平台技术静骈究 a b s 乏r a c t t h ew i d e l yu s e d3 2 _ b i t se m b e d d e dc p un o to n l y8 a t i s f i e st l l en e 酣o f h i g h s p e e d p 燃e s s 遗娶b 越采s op f 。v i d 妫ap l 鑫专岛m lw 援e h 璜纛e s 氇ee 氆b 礤d 穗锋。f a 融g s y s t 鲫sn m8 t e a d i l y s p d i l y a i l dc r e d i b l yt h eu s eo ft l l ee m b e d d e do p e m t i n g s y s t e m 黟e a l l ya c c e l e m t e sm es o 脚a r ed e v e l o p m e n ta n dc n h a n c e st l l es y s t e r n s s t 8 蕊l i | y 鞠ds e c 溺弼珏p l a y s 鑫珏i m p o 娃蠲t 糙l e 弧饿ee 曲e d d 舔蠡e 撼,a s 恕 a d v a n t a g eo fp r i c e ,t i n yk e m e la l l dr i c h 糙s o u r c e ,l i n u xh a sb e e l l 晰d e i yu s e di n e r “b e d d c ds y s t a m 、t h 盯ea r ct w op r o b l e m st os 0 1 、他i na d o p t i n g “h u x :c u t t i n gd o w n 歉稚l 矗丑珏dd e v e l o p i 珏g 鞋。w 蠢e v 主e e 越v e 裕。 t 陆sp a p e ri n 廿0 d u c e dm es 3 c 2 4 lo xc p ua 1 1 dt h es y s t e ms m l c t u r e b a s e do n m i s ,i tm a i n l yr e s e a r c h e dm ed 钾d o p m e n to fs y s t e ms o f h a r e ,f i r s t l yt l l ep a p c r d 描c 曲e dh o w 轴e 斑b l i 虫攮ec f o s sc 雠l 努i l 沁ge n 穗饼黼撼t ,妇穗瓣越a l y z l 孰 、帕f k i n gp r o c e s so f 也e 锄1 b e d d e db o o tl o a d e r 姐db a s e do nt h ea n a l y s e so f 也el i i l u x k e m e ls 细c t l l r et 圭l ep a p e rd i s c u s s e dt h em o m o d so fk e m e lp o r t i n ga n dc o n f i g u r a t i o n + 孙张t | l ep 姆群p 槽s 懿t e d 巍e 氇r yo f 珏娃馘& v 主c 。蘸v o f s ,瑟dd e s i 翳磁s e v 懿l 莪掣 d 棚c e 血v c r s ,a n dg a v e 龇d e t a j li m p l e n l e i l ts c h 锄e t h e s e 血v e r si n c l u d es e r i a l p o 巩l c d ,t o u c b s c r e e n ,a n d 垃cb u sd “v e rw 圭l i c hi su s e dt oc o 弱咖lk e y b o a r d 瓣狂瑾l l x 巍ep 神群8 珏8 l y z 蠢穗et 撑i e a l 锄b 穗d 融g 疆一q 晓撙b e d d 稚,i 纳础e 舔臻e m e t h o d so f a p p l i c a t i o nd e v e l o p m e n ta 1 1 ds u h l n l 撕z e dm em e m o d so f a d d i n gq t o p 从 t ot 董l ec 托哪! f b 矗l es 、毽t e m s 。 k e yw o r d s : e 强【b e d 蠢醚b 矗u x ,b o o t 毛。勰e f ,k e m e l m 蟊 $ ,q 浇m b e d d 藤 第1 l i 髓 基予激入式“n b 较俘平台蕴术豹疆究 西北大学学位论文知识产权声明书 本人完全了解学校有关保护知识产权的规定,即:研究生在校攻 读学位期间论文工作的知识产权单位属于西北大学。学校有权保留并 内国家有关部门或祝梅送交论文的复印彳孛帮漱予舨。本人允许论文被 查阅和借阅。学校可以将本学位论文的全部或部分内容编入有关数据 艨进行检索,可以采震影印、缩印线摆摇等复铡手段操露秘汇编本学 俄论文。同时,本人保证,毕业后结合学位论文研究课题褥撰写的文 寒一律注明作者单位为谣北大学。 保密论文待解密螽逑用本声明。 学位论文作者签名:! 丑! 骘指导教师签名:蠼婆 f 拓一#年i 是透劫,去年6 劳1 曩 西j 艺大学学位论文独餐性声明 本人声明:所墅交的学位论文是本人在导师指导下进行的研 究工终及取得豹研究成果。蕹我掰翔,狳了文中特掰翱苏标注鞫 致谢的地方外,本论文不包含其他人已经发表或撰写过的研究成 果,也不包含为获德嚣霓丈学藏其它教育飒秘的学楚域证书西健 用过的材料。与我同工作的同志对本研究所做的任何贡献均已 在论文中馋了明礁的说明著表示谢意。 学位论文作者签名: f 习盘殳驾 和,6 年6 月目 第l 页 基于嵌入式l i “x 软件平台技术f 孽研究 置。l 课题的研究背景 第一章绪论 随着i n t e m e t 的发展和尉p c 时代的刹来,嵌入式系统已成为当前i t 产业的焦 点之一。由于嵌入式系统具霄功耗低、体积小、性能可靠性高及面向行业应用的突出 特糕,嚣蘸云经广泛逢渗透裂莘萼学骚究、王程 曼诗、零攀技术、蜀鼗文纯艺寒、焱乐 业以及人们的日常生活等方方颟面。我们熊够想象有人w 能从来没有接触过计算机, 但不能想象他从辩乏没有接触过嵌入式系统。因为嵌入式系统无处不谯,从家庭的洗农 穰,耄球稳,蠡移车,枣汽孳,蘩办公室璧戆远程会议系统等,这鍪部属于褒入斌懿 产翮。目前嵌入斌技术已成为一个研究与皮用的热点。 早期的嵌入斌应用相对简单,一般只越为了实现菜魑特定功能以满足特定场会的 需餮,翔应塌予专泣性较强懿备类工盈擦翻、飞褫及导弹等武器装蓊审等等,在遂垡 系统中,运行的软件就是一个简单的控制循环,因此一般不使用操作系统,但是随着 嵌入戏系统的应髑领域目益扩大,其功能越来越复杂,这样完全由糨序员来驾驭整个 系统箍然是链力不够,露盈每蹭鸯鼙一矮功藏要重薪竣诗系统,导致了极大匏獒滚滚 费和璧复劳动。湖时随着计算机技术和集成电路的发展,硬件所提供的条件也越来越 好,因此选择嵌入式操作系统也成为一种必然的趋势。 嵌入式搡佟系统菰是支籍焱入式系统工作斡操俸系统。它在弼谈体系和技本本矮 上与通用操作系娩没有太大的区别,一般用于比较复杂的嵌入式系统软件开发中f 1 1 。 能够有效管理复杂的系统资源,完成进程管理、处理器调度、存储器嚣理、设备管理、 中辫簸理等搡俸系统任务;能够把硬件痿磁化,使褥开发入员簸繁憾的驱动程序移檀 和维护中解脱出米;能够提供库函数、驱动程序、工具熊以及应用程序。嵌入式操作 系统是嵌入式系统重要的运行环境和开发甲台,它是否蹒效、稳定、安全等将直接关 系到嵌入式系绞麓成效,已成为嵌入式系绕设许和开发酶重点。 从八十年代末开始,已陆续出现了一憋比较著名的嵌入式操作系统,如q n 、 v x w o r k s 、p s o s 、w i n c e 等【“,它们体敬小,功能强大,调试开发方便,但价格舄 第l 页 基于嵌入式l i n “软件平台技术的磺究 贵、这样在对成本非常敏感的嵌入式领域它们的使用就受到了一些限制,同时它们源 芪碣懿阂,嚣户曩法撮据鑫己懿嚣求进行瘦鬻开发,一翻耧蔹羧予臻佟系统供应褒鬟 供的支持。与此相比,l i n u 操作系统具有价格低廉,稳定可靠、有丰富的开发工舆, 容易开发、而且源代码开放,可根据用户需求裁剪等优点【引,为嵌入筑系统提供了一 令极蠢骧萼| 力的选铎。鳝蘸鼗入式“n “x 豹开发霸繇究已艘为操幸謇系绕领域孛憨一个 热点m 】。 但是l i n u 最翩是为台式机开发的,这与在嵌入式系统中使用会有一些差别,如 内存容羹与台式梳秘院有羧等,掰隧翔 莓凳瓣n u x 改造成嚣羹夺、稳定镶藩显荔予殍发 的嵌入式操作系统就成为了至关重要的问题。这也意味着嵌入式l i n u 攥作系统应用予 数字化产品及工控等领域还需裂徽大量豹工作。 l 、b o 。t b a 蠢e r 移植 p c 机加电后的启动引导过程是由b i o s 程序和存放在硬盘m b r 中的引导程序究 成的,但在嵌入我襞统中,出予经济价格方蕊的考虑,通常并没有像b 1 0 s 那样的固件 程痔,蠢此需要赉髑户编写程膨米完成p c 搬静b i o s 程垮葶拜弓| 等程痔掰完成豹萌髓, 在嵌入式系统中称之为b o o t l 0 a d e r 程序。生簧功能是在嵌入式操作系统及用户应用稷 序运杼之前,完成系统的初始化,劳加载操作系统及应髑程序。 2 、嵌久式u n u 豹移植 如果选用的平台l n u x 不支持,还需要把l i n u x 内核中与硬件平台相关的部分改 写,使之支持所选髑的平台。阉射由于嵌入式系统资源嚣常有艰,因此,需要根据实 际情掇瓣内核进行懿鬟载减,嫒内核菲常精籁。 3 驱动程序的开发 嵌入式应用翻髓广泛纯、多样纯,在务类电子类家恕、芋持设备中郄有应用,如 彩电、v c d 、p d a + 手梳产品笛等。不同的波用就决定了对处理器静经疑、存储嚣、 应用规模和功能的黉求各不相同,这样就决定了具体产品中所选用的周边硬件设备及 其体始硬馋电路的配置各不提潮。爨此设备鞲动程痔筑开发就是非常黧要的工搀。 4 图形界西 域代的操作系统如果没有个发好的界面是没有说服力的。p c 机的l i n u x 系统使 用了传统熬xw i n d o w 系统的模式一一c “e n t s e w e r 结梭。但xw i n d o w 对于嵌入式 第2 页 基于嵌入式l i x 软件平台技术的研究 产品来说显得过于庞大。因此,需要开发适用于嵌入式l i n u 上的图形界瑟系统,并将 图形界面加入到文件系统中。 1 2 课题的项目背景 本文的工作以与西安某公司合作的一个远程红外抄表器项目为研究背景。该抄表 器是专门为住宅区物业管理人员抄取电表、水表、煤气表设计的,抄表器系统与对方 仪器采用红外方式读取抄表数据,传输距离可达十几米,抄表数据存放在系统的r a m 中,为了防止突然掉电,同时抄表数据还会同步的保存到系统的f l a s h 中,最终的抄 表数据可通过u s b 或串口等方式传输到计算机中进行统一管理。 远程红外抄表器的研制,不仅为物业管理带来了很大的方便,提高了工作效率和 管理水平,也让住户居住更加方便放心,减少了治安隐患,体现了科技服务生活,以 人为本的理念,具有非常重要的社会经济意义。 本系统采用s a m s u n g 推出的1 6 3 2 位r i s c 处理器s 3 c 2 4 1 0 x ,它是专门为p d a , i n t e r n e t 设备和手持设备等开发的高性能、低功耗的微处理器曲j ,处理器内部集成了 绝大多数的外围设备,这样降低了整个系统的成本。操作系统使用免费的、开放源码 的嵌入式l n u 操作系统,图形界面采用q t e m b e d d e d 。 整个项目开发涉及到硬件平台设计、软件平台设计以及基于该软硬件平台的应用 程序开发。包含的内容多而且广。本人在项目中主要研究的内容包括:嵌入式系统交 叉开发环境的构建、b o o t l o a d e r 引导过程和l i n u 操作系统裁剪配置方法的分析研 究、系统周边硬件模块驱动程序的设计,q 丁e m b e d d e d 图形用户系统的研究等,最 主要的是深入地研究了系统周边硬件模块驱动程序的设计。 1 3 论文的内容安排及相关工作介绍 本文是作者在硕士学习期间,对抄表器嵌入式软件平台研究开发工作的总结。整 个文章可分为三大部分: 第一部分介绍了论文的研究背景、项目背景以及主要研究内容,这一部分包括第 一童。 第3 页 基于簸入式l 如u x 较佟平台技术的研究 第二部分研究了嵌入式开发的硬件平静,这一部分包括第二章,主要分析了微处 毽器s 3 c 2 4 王o 瓣特点、疆转麓统豹整体缝构及系统存德空蠲秘分配。 第三部分研究了嵌入式软件平台的开擞与设计,这部分包括第三、四、五鬻。 其中麓牵所包括的内容如下: 第三章嵌入式h n “x 黪雩l 霉过程及肉孩移禳 研究了嵌入戏软件开发环境的构建,详细地分析了嵌入式l n u 的启动引导过穰, 并深入地研究了u n u x 内核工作原理以及移檬及配置编译的方法步骤。 夺第霆章嵌入式疆n u x 繇渤程序设计 猩研究l n u x 设备驱动设计方法的基础上,针对项目需求,分析了本文硬件平静 中串鞠、l c d 、触摸屏及1 2 c 总线模块的电路设计及基本工作原理,并深入地研究弗 实联y 孩上模块在睚n u x 系统中的驱动程序设讦。 审第五章嵌入式图形用户界面的实现 作为一个手挎便携式产品,需要为抄表器系统移植一个图形用户界鬻,本意醋究 了诺影e m b e c l d e d 斑孀程序嚣发及籍q 阳p l a 闺形舞霞系统加天虱e 滞m 怨文箨系缓 中的方法。 娥后是本文的个简短总结鞠对将来的工作展望。 第4 磷 基予嵌入式l 曲“较俘平台技术的研究 第二章基于s 3 c 2 4 l o x 的嵌入式硬件系统介绍 送行嵌入式攒稼系统及驱动程痒瓣移壤,赛霉要慰掰要移攮熬嚣搽硬磐平鑫蠢魄 较深入的理解。本文选用的嵌入式开发平台采用s a m s u n g 公司的基于a r m 9 2 0 t 核的 s 3 c 2 4 l o x 微处瑷器,是专门为p d a ,i n t e m e t 设备和手特设备等开发的高性能、低 功耗豹袭楚理嚣。零耄主要分辑s 3 c 2 4 王0 徽照瑾器特点、系统匏熬体续搀及转杰, 并简单介绍了系统的存储空间分配情况。 2 1s 3 c 2 4 王o x 处理器介绍 s a m s u n g 公司推出的1 6 ,3 2 位r i s c 处理器s 3 c 2 4 1 _ 0 x ,为手持设备和一般融甩 提供了低价格、低功耗、嵩性髓的小型微控制器解决方案。为了降低熬个系统的成本, s 3 c 2 4 i o x 提供了i 三乏下躲内郝设各:分开瓣1 6 k bl c a c h e 和1 6 l 安装需求: 2 g b 以上的分区,n t f s ,非系统盘。 第1 l 页 基予嵌入式l i n u x 软件平台技术静研究 3 。l 。2 交叉开发工具链 g n u 交叉开发工具链由一套用于编译、汇编、链羧和调试内核及应用程序的缮件 组成。这些组件包括【1 1 】: g c c :g n uc 编译器,霹支持c 、c + + 、0 b e c c 、3 a v a 、挖怒n 等多种离 级语言。 b i n u t i i s :用于操作二进制文件的实用程序集合,包括诸如a r 、a s 、l d 、o b j d u mp 、 o 谚c o p y 等实爆程序,是爨黪g e c 豹主鼗较箨,其中a r 翅于生成| 毽档文箨,a s 是 g n u 汇编器,l d 是g n u 链羧器,o b j d u m p 用于代码发汇编,o b j c o p y 用于转羧文 件内容等等。 m a 埏:是一挚争 弋玛维护王其,它疆攥獠净各个模块蚋受藜绩况,叠动维护窝黛蠛 目标代码。主要任务是读入h a k e f i i e ,并檄据这个文件定义的规剐和步骤,完成羧个 软件项目的维护和代码生成等工作。 g o b :g n u 淫试器,宅翅寒调试用c 、c + + 霾冀键语言编写瓣程穿。 由上述组件就可以建立一个交叉编译器环境。这个交叉编译器运行在8 6 处理嚣 上,却可以编译、调试我们需撰的运行于a r m 处理器上的程序,所以我们称之为交叉 拜发工其。 本文使用如下版本的文件建立a r m f - n u x 交叉编译环境,源码可以从网上下载: a r m i | n u g c c - c y g w j n - 2 9 5 3 t g z a r m l n o 。基l n u t l l s c y g ¥嫒n 一2 。9 。5 。0 。3 7 。勾z 1 b c 6 一a r m c r o s s 一2 1 3 1 9 t a z | b c 6 一d e v a r m c r o s s 一2 1 3 1 9 t a z 蜀使蠲招r 念令将这些工其安装在u s l o c a l ,曩录下嚣。 3 2 嵌入式l i n u x 系统的启动过程研究 p c 辍豹痿动孳| 警过程是凌瑟l o s 翟穿秘存款在矮纛m 8 爻中懿弓l 警程露宠戒瓣。 但程嵌入式系统中,出于经济价格方面的考虑,通常并没有像b i o s 那样的固件程序 ( 注:有的嵌入式c p u 也会内嵌一段短小的启动程序) 【1 2 1 ,因此整个系统的加载启动 餐务裁宠全壹雩l 簿狴彦8 0 0 t 沁a d e r 来宠成。 第1 2 页 基予激入式l i n u x 软住平台技术的骈究 8 0 0 l o a d e r 是嵌入式系统软件开发的第一个环节,它紧密地将软硬件衔接在一 莛,瓣子一个嵌入式设备后续瓣软俘开发至关重要【1 孤。 3 。2 。ib o o t i o a d e r 相吒述 3 ,2 。生。王b o o 耄l o a d e l i 奔缀 简单地说,b o o t l o a d e r 就是在操作系统内核或用户应用程序运行之前运行的一 段小稔序。它对开发板上的主要部件如c p u ,s d r a m ,f l a s h ,串c 】等进行初始化, 建立内存空阕豹跤射溪( 包捺谈饕系统难筏鞠系统启动参数区等) ,献藤将系统豹软璇 件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境 j 。然 后跳转到操作系统内核的入翻,将系统控制权交给操作系统,之聪系统的运行潮 b o o t 溺a d e r 孬蠢任褥关系。零文中,系绕在上龟或复像时是获逾疆溆0 0 0 0 0 q 0 0 处开始执行的,程这个地址处存放的是系统豹b o o t l o a d e r 程序。 蠲前,b o o t l o a d e r 的开缴通常都是基予一些开源的8 0 0 t l o a d e r ( 如v i v i 、u 一8 0 斌、b l 曲、鹣d b o o t 等) 殴诗懿,它枢在设诗愚路上有诲多襁遐之楚。整3 2 列出了几种比较流行并且支持l i n u x 操作系统的b o o t l 0 a d e r 并对它们进行了简单的 比较 1 s 1 。 b 0 0 t l 惦d o描述 l i l 0x 8 6j 陷七i j 埘墩自勺b d o t l ,0 a d 嚣 g 襄u bg 掰褒重串l 嚣力熬势缓换我 r 。d b o o t熬于e c o s 的b o 呲,o a d 日 b 1 0 b 盯项目中的b o o t l o a d e r ,翻越很多s 端4 o 蕊i 考5 用砖 o b 够 羧穆接悉来女8 黻“e 飘“x u b 0 0 t 支持体系结构最劳的运用b o o 饥雌d 口,代确谶完整,功能最眷全 v 甜i 专门为a r m 9 设计的,支持s 3 c 2 4 1 0 匿3 2支持l l n u 搽作系统的b o o t l o a d e r 3 2 1 。2b o o t l o a d e r 的弓l 导模式 囊动加载模式 第1 3 煎 薹王壁茎垒璺燃墼生垩鱼羹查笪蛾篓 f 载模式 彝动船载( s o o tl o a d 哟) 筷式:瞧称必”叁主”滔u t o n o m o u s ) 搂式m 这季争模式需 要直接将内核映象文件和根文件系统烧霹入f i a s h ,这样设备肩动时b o o t l o a d e r 会 将f i a s h 中的内核及根文件系统映象读入s d 凡a h 指定位置并从同一位澎启动内核, 整个过撩拨有用户鲍赍入。这是8 0 。t 幻a d e r 的正常工撵摸式,在墩入式产晶发毒的 时候,b o o t l d e r 舒矮童俸于这静模式。 下载( d o w n i o a d i n g ) 模式:这种横式在系统启动前不需要烧写内核和根文件系 统。设螽启动时b o o t 沁a d e r 通过串 : 或网络等通信手段从主机下载内拔缺像和根文 孛 系绕靛徽等。鼠主规下戴靛支舞逶掌繁惫被b o 跌强a d e r 操存羁嚣橱概斡r a 秘串, 然后再被b o o t l o a d e r 弼劐目标板的f l a s h 类固态存储设备中。b o 。t l o a d e r 的这 种模式道常在第一次安装内核与根文件系统时被使用 此外,在以后系统更新时也会 使用8 0 0 t l 。a d e r 的这种:e 乎# 模式。工作习:这种模式下的b o o t l o a d e r 遇常都会向它 懿终端臻户提供一个簿蕈靛螽令行接l = :l 。 象v 、u b o o t 等这些功能强大的b o o t l 0 a d e r 部同时支持这两种模式,而且 可以在遨两种工作模式之间切换。在启动时处于正常的扁动加载模式,但是它会延时 l o 秒等特楚端用户按下醚车键之卦的 壬慧键箍切换到下鼗模式。翅果在l o 秒疼没有 用户接键,捌直接启动l _ n u x 内核。 因为v i v i 目前只支持使用串口和主机通信,所以必绷使用一条串口电缆来连接目 标扳和主机 1 ”。在本文硬件中,使用的是一条标礁公母串口线,传输协议是 x 砸o d e r n 。 3 。2 1 3烧写f i a s h 还肖个问题是谁将b o o t l o a d e r 装入没有b i o s 的嵌入式设备上。解决这个问 题有两种常用的技术: 专瓣较谗+ 蕊囊嚣; 微小的引导代码棚n y _ b o o t c o d e ) c l ”。 专用软件可以通过仿真器直接与目标板上的闪存设备( 如f i a s h ) 进行燮互并将可 挠行的二逐铡文件安装在闽存静费定爱嚣孛。摇,率文袋麓的e m b e s 公司并发的 f l a s hp r o g r a m m e r ,可凳现对f l a s h 进行下载、上博、空白检鸯、擦除、编程、 第1 4 页 基予嵌 式“n h 敬稚平台技术的臻究 计嚣校验和保护铸操作,它适用于基于a r l 系列处理器开发的嵌入戏系统中f l a s h 芯嚣的壤程,籍裂适宫选器贻冀f 瞌s 拜浆用户,蘧载释必矮配含葵旃褥公司生产戆 系列a r m 仿真器箴其他指定设备使用。 3 网a s h i i n u x 蹩一种用予鼹接写闪存的粤l 导程序。吏抟为数众多的闪存芯片;它 在童擞上撬嚣菸遵过j 强。g 羧霹捷薅菇器端岛谚遮霹舔麴勰存蕊背。当然了这藏簧求 目标设备有一个髀行接口以使戗能与主机邋信。】f l a s h i | n u x 在l ,n u 和w i n d o w s 舨本中部可使用,可以在命令行中用以下命令启动它1 8 】: 3 程a s 聂一l n u 3 。2 2v v j 分析 圣3 2 。2 。王¥i 蛾篱奔 v i v i 是韩国m i z l 公司开发的一种b o o t l o a d e r ,适合于a r m 9 处理器,赢持 s 3 c 2 4 1 0 x 。其源代码可以在h t t p :w w w m j z i c o m 下载。解压v i v j 源码包后,会 影成熟下簿垂录缝梅;盎踅魏:院嚣录孛氧含了v i v ;支狳浆嚣禄蔽黔予霪录,蒸中蠢 s 3 c 2 4 l o x 目录 d r i v e r s :此目录中包含了引导内拨需要的驱动程序,其中只有 m t d 和s e r j a i 两个子目录,m t d 目录下又榭m a p s 、n a n d 、n o r 三个子目录,v i v i 支持从n a n 援a 鲡黎n o 婚矗s h 存德器襄裁:l n e l 韬d e :龀鞲录是头交 串魏登莛鼙慕, 其中s 3 c 2 4 1 0 h 中包括了对s 3 c 2 4 i 0 处理器内部寄存器的定义;还包括m t d 、 p j a 硒m 1 、p r o c 三个子目录;p j a 怕r m 予目录中的s 3 c 2 4 l o - _ g e n m e m m a p b 定义了存罐空穗浚射送蠛范困定义;i n i t ;密藏裙戆繇代码,其中毒巍个文箨m 最鼢。e 和v e 惜i o n c ;l i b :各个平台公共库函数代码集。 3 。2 2 。2v i v i 运行过程分橱 尚予瑟o o t 豳a d e r 鳃实瑷依赖于e p u 的体系结褥,爨诧六多数8 0 0 t l o a d 封郡 分为s 蛔g e l 和s t a g e 2 两个阶段执行 1 钔。依赖于c p u 体系结构的代码,比如设备 初始化代码等,邋常都放在s t a g e l 中,两鼠通常都用汇编语言来变现,以达到短小 薅诨憨譬静。囊s t a g e 2 裂逶鬻建c 潘富采实壤,这榉霹潋实瑗更复杂鼹珐裁,瓣且 代码念其有更好的可读性和可移植性。 v i v i 乍为糖8 0 0 t l o a d e r ,其运行过程也分成掰个黔段。第输段豹代码在 第1 5 煎 基于嵌入式l i n u x 软件平台技术的研究 v i v i a r c h s 3 c 2 4 l o 伪e a d ,s 中定义,大小不超过4 k b ,包括从系统上电飚在 0 0 0 0 0 0 0 0 0 羹薹垃开始执行静部分。遨部分代码逐行在f | a s h 中,它雹瑟对 s 3 c 2 4 1 0 x 基席:硬件的初始化及l e d 和审口的设置,并为加载第二阶段准备r a m 空 间等等,之后跳转到第二酚段执 亍。第二盼段的代码在v i v i i n i t m a i n c 中,圭黉是 进行一些开发撩初始纯、内存映射帮蠢存管理单元褫始纯等工佟,最后会蹒转至 b o o l o l v v i ( ) 幽数中,引导内核启动或进入v i v i 命令行处理。 需要注意的题当v i v i 从n o r 积a s h 中启动时,衣执行内存映射之前,v i v i 怒在 f l a s n 中撬聿亍靛,之后在m e m m a p j n i t ( ) 丞数中调溺c o p y v l v j o r a m ( ) 将v i 、,i 代码拷贝刹s d r a m 巾执行。图3 3 给出了v i v i 详细的运行过程。 圈3 3v i v i 从n o rf | a s h 中窟动的运行过程 描蓊蕾奔绍,s t a 9 e 2 的代码通常用c 语言来实现,以便于实鞴燹复杂的璃鼹秘 取得疆好的代码可读性和可移植性。但是与普通c 语言成用程序不同的是,在编译和 链羧8 0 0 t l o a d e r 这样豹程黟时,我们不熊使用g | b c 黪孛戆饪何支持遗数。因此从 哪摄跳转迸m a l n ( ) 菌数就威为髓题,丽把m a n ( ) 函数的起始地址作为整个s t a g e 2 执行映像的入口点也有两个缺点: 1 ) 无法通过m a n ) 蘑数传递丞数参数; 第1 6 页 基于嵌入式“n u x 软件平台技术的磷究 2 ) 无法处理r n a i n ( ) 函数邋圆的情况。 狰较兔巧妙静方法是稠瘸t 洎m p o l i n e ( 弹簧床) 静概念2 翻。辔静,精汇编罨骞篝 一段t r a m p o i n e 小程序,并将这段t r a m p 0 1 n e 小程序来作为s t a g e 2 可执行映缘 豹执行入口点。然后我们可以在t r a m p o “n e 汇编小程序中用c p u 跳转指令跳入 r n a l n ( ) 函数中去砉l l 行;两当m a ;n ( ) 丞数运强辩,c p u 执行路径显然搿次隧赘我们鹣 t r a m p o i n e 程序。简而言之,这种方法的思想就是:用这段t r a m p o n e 小程序来 作为m a i n ( ) 函数的舶部包裹。 v i 中静t r a m p o l n e 覆膨如下: i d rs p ,d w j l a c k s t a r t s e t u ps t a c kp o m t e r m o v f p ,孝o n op r e v i o u sf r a m e ,s of p = o m o va 2 ,雾0 s e ta 峭vt on u l l b im a i n c a | im a i n m o v p c ,嚣f l a s h b a s e o t h e n ,i s e ,r e b o o t 歪常情提下纛j l 蓼应该是一蠢不复运戆,毽莛热鬃蠢镶7 ,羲酲蘩7 袋螽一条添霹 重新扁动系统。 3 2 2 3v i v i 妁启动方式 懑硬俘平台中游辩配鬟7n o r 爨a s h 帮n a n d f | a s h 瓣。v i v l 再滚鼠楚a 拜蠢曩a s 魏 或从n o rf i a s h 中艏动【2 卜2 2 1 ,选择从不同焱型的f i a s h 启动,使用方法会有一些差别, 存储器地址分配也不同,见第二章中图2 3 。 n a 拜d 嚣鑫$ 瓤癌动 如果v i v i 是烧笃到n a n d 纠a s h 中的,那么v i v i 是从n a n df i a s h 启动的,n a n d f l a s h 因为没有专门的地址线,所以它在系统中根本就没有地址空间( 它的结构是必 丽缝簸和数据总线,分时的发送童| 鎏琏秘数掇】疆引,只逶合爝来存藏数攥,不麓够蠢接 在其上执行程序指令( x i p ) 。为了支持n a n df l a s h 的系统引导,s 3 c 2 4 1 0 舆 备了一个内部s r a m 缓冲器,嬲馓s t e p p i n g s 蛔n e 。惑系统感动对,n a n df l a s h 存储器豹前瑟4 ( 8 将被鑫动载入至ls t e p p l 订g s t o n e 中,然后系统自动执行这些载入 的引姆代码。n a n df i a s h 的最开始部分就怒h e a d s ,_ 在h e a d s 的飚部v i v i 将执行 c o p y m y s e f 代码段将自身拷贝到馆m 中,然后习转到阳m 中豹m a i n ( ) 函数,野 第1 7 撼 萋予嵌入式l n h 软 牛平台技术的骈究 始远行。 n o r 羁a $ h 房动 如果v v i 慰烧写到n o rf l a s h 中的,那么v i v i 慰从n o rf i a s h 启动的,因为 n o r 列a s h 具有x i p 特性( 能够直接在其上执季亍程序攒令) ,所以,v v i 一童在n o r 同a s h 上运行,畿捌送入m a n ( ) 蚕鼗孛完成凌存获毒| 纛,方会跷蘩s d r a m 串执行。 3 3 嵌入式l i n u x 内核的定制移植 3 3 王l i n u x 内核结构 嵌入式操作系统是相对于其他常规操作系统而言的,一般是指系统的内核。操作 系统内孩胃麓莛焱痰孩,毫爵麓是萃逮核( 又穆荛宏内核m l c k e f n e l ) 。 其中,单内核( m o n o l i t h i c ) 是将操作系统的所有功熊都放入内桉中,而且所商的 部件在一起编译谶接。也就是说内核是许多服务进程的集合,它们彼此相互调用,这 样戆後系统豹备郄分壹攘淘逶,有效薅缭矮经务之阕麴镒换鼓闼,爨麓系统豹晌疯速 度和c p u 的利用率,且实时饿好;但在系统比较大时体移 也比较大,i 酊且独立性与配 置性有限。 藤傲蠹棱( m i e r o 妇拜e 埝爨在逡孩孛昃镶籍了一些蒸零懿内核囊貔,麴翻建饔翮狳 任务、任务调度、内存管理和中断处理等部分,而文件繇统、网络协议栈等部分都是 在用户内存空阃运行。这种结构执行效率不如单内核结构,但大大减小了内核的体积, 两辩巍方便了蘩令系统熬秀缀、维护露移麓。 由于一些历史等原因,l - n u 采用单内核结构,但撼l i n u x 使用了一种独特的模 块机制,内核只保留系统启动必需的代码,掰其他运行时才需要用到的代码( 如网络、 文终系统和各耪驱动程痔等】翔被设诗成菇痰孩模块,程运行薅壹内棱蠡动装入痰存。 如果一个被装入内存的模块很久未被访问,内核将其从内存中删除以节约内存空间。 l i n u x 的这种模块机制在一定程度上弥补了单内核剪裁、配置能力蓑的缺点。 不论采用那耱绪橡,搡终系统肉孩舔惫括遴程调菠横涣、存德慧遴模获、文佟系 统模块、进程间通信模块和网络接口模块。 3 。3 1 1 进瑕管理 第1 8 页 基于嵌入式l i n u x 软件平台技术的研究 l i n u 是分时多用户系统,它有多进程的特点。进程调度模块负责控制进程对c p u 资源的使用。当需要选择下一个进程运行时,调度程序选择一个程序使之投入运行。 所采取的调度策略的目标是使各进程能够公平合理地访问c p u ,同时保证内核能及时 地执行硬件操作。 l j n u x 中每个进程用一个t a s k s t r u c t 数据结构描述,它包含进程的所有信息。 当系统创建一个进程时,l - n u 为新进程分配一个t a s k s t r u c t 数据结构,同时将指 向该结构的指针加入到t a s k 数组中,用来记录系统中进程数目的全局变量n l t a s k s 自增1 ;进程结束时又回收t a s k s t r u c t 结构,进程也随之消失,n l t a s k s 自减l 。 c u r r e n t 指针指向当前运行的进程。 3 3 1 2 内存管理 内存管理负责进程的虚存管理,允许多个进程安全的共享主内存区域。l i n u x 的 内存管理支持虚拟内存,即在计算机中运行的程序,其代码,数据,堆栈的总量可以 超过实际内存的大小,操作系统只是把当前使用的程序块保留在内存中,其余的程序 块则保留在磁盘中。必要时,操作系统负责在磁盘和内存间交换程序块。 内存管理从逻辑上分为硬件无关部分和硬件有关部分。硬件无关部分提供了进程 的映射和逻辑内存的对换;硬件相关的部分为内存管理硬件提供了虚拟接口。 l _ n u x 采用分页机制,虚拟内存和物理内存都被分为大小相同的页面( 4 k 或8 k ) , 每个页面都有一个唯一的页面号,一个虚拟地址由页内偏移地址和页面号( p f n ) 组 成。处理器在遇到一个进程虚拟地址时将其分解为虚拟页面号( v p f n ) 和页内偏移地 址,通过查进程页面表( p a g et a b i e ) 把v p f n 转化为物理地址的p f n ,最后将p f n 与页内偏移地址相加,得到要访问的物理内存的地址。 3 3 。l 。3 虚拟文件系统 虚拟文件系统可分为实际文件系统和设备驱动程序。实际文件系统指l n u x 所支 持的文件系统,如e t 2 ,f a t 等,设备驱动程序指为每一种硬件控制器所编写的设备驱 动程序模块,它提供了一个所有设备的公共文件接口,虚拟文件系统抽象了不同硬件 设各的细节,负责各种文件系统和设备的访问。 l i n u 的文件系统呈树形层次结构,无论什么类型的文件系统,都被装配到某个 目录上,由被装配的文件系统的文件覆盖该目录原有的内容。 第1 9 页 基于嵌入式l i n l l ) 【软件平台技术的研究 3 3 1 4 进程间通信 l i n u x 支持进程间的各种通信机制,如信号量、管道、套接字等等,它负责进程 的同步,资源的共享及数据交换 3 3 1 5 网络接口 网络接口( n e t ) 提供了对各种网络标准的存取和各种网络硬件的支持。网络接 口可分为网络协议和网络驱动程序。网络协议部分负责实现每一种可能的网络传输协 议。网络设备驱动程序负责与硬件设备通讯,每一种可能的硬件设备都有相应的设备 驱动程序。 3 3 2 内核定制 嵌入式系统资源的有限性,就要求嵌入式系统的软件代码必须非常精简,尤其是 像操作系统之类的常驻系统软件。因此就需要对l n u x 进行裁剪定制,以使整个l | n u x 系统能够存放在容量较小的f l a s h 中。目前,l i n u 系统主要采用以下3 种裁剪技术: 共享库裁剪、采用具有同样功能的替代软件包、修改源码。 3 3 2 1 共享库裁剪 共享库是被应用程序反复使用的公用代码,其中保存着预先编译好的目标代码。 在l | n u 系统中,应用程序与库之间可以静态链接或动态链接。静态链接时,链接器 从库中选取应用程序需要的代码,然后复制到生成的可执行文件中。显然,当静态库 被多个程序使用时,内存中会有多份冗余拷贝。动态链接时,链接器并不真的把库代 码复制到可执行文件中:仅当可执行文件运行时,加载器才检查该库是否已经被其它 可执行文件加载进内存,如果内存中不存在才从磁盘上加载该库。这样多个应用程序 就可以共享库中代码的同一份拷贝,节约了存储空间。因此当系统运行的应用比较少
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 广东省东莞市2022-2023学年九年级上学期期中化学试题(含答案)
- 2025医院消毒中心技能知识题库
- 电石炉知识培训课件
- 高级职称评定课件模板
- 电焊课件教学课件
- 电焊机维护保养课件
- 电焊技法知识培训课件
- 3-Oxo-deoxycholoyl-CoA-生命科学试剂-MCE
- 软件开发及技术服务协议
- 保洁员考试试题及答案选择题
- 室外雨污水、消防管网施工方案
- 传染病学总论-人卫最新版课件
- (中职)计算机组装与维修电子课件(完整版)
- (高职)旅游景区服务与管理电子课件完整版PPT全书电子教案
- 人音版六年级上册音乐全册教案含教材分析
- 部编版七年级语文上册教案(全册)
- 高处作业吊篮安装验收表(范本模板)
- 《汉服》PPT课件(完整版)
- 某国有企业精细管理降本增效经验交流汇报材料企业降本增效.doc
- 主要负责人任职证明
- 潜水非完整井单孔抽水试验经验公式
评论
0/150
提交评论