(通信与信息系统专业论文)嵌入式linux在轮式机器人控制中的应用.pdf_第1页
(通信与信息系统专业论文)嵌入式linux在轮式机器人控制中的应用.pdf_第2页
(通信与信息系统专业论文)嵌入式linux在轮式机器人控制中的应用.pdf_第3页
(通信与信息系统专业论文)嵌入式linux在轮式机器人控制中的应用.pdf_第4页
(通信与信息系统专业论文)嵌入式linux在轮式机器人控制中的应用.pdf_第5页
已阅读5页,还剩72页未读 继续免费阅读

(通信与信息系统专业论文)嵌入式linux在轮式机器人控制中的应用.pdf.pdf 免费下载

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

文档简介

大连理工大学硕士研究生学位论文 摘要 从2 0 0 2 年起,中央电视台联合教育部、科技部连续四年举办了“全国大学生机器 人电视大赛”。本文以此为背景,完成了轮式机器人通用运动平台的构建工作。 对于以竞赛为目的的机器人通用运动平台来说,不但要灵活、可靠,而且还要便于 移植和功能扩展。根据以上要求,本文基本内容组织如下: 首先,本文介绍了嵌入式操作系统在机器人中应用的必要性,使用嵌入式操作系统 便于软硬件的独立开发,便于硬件的管理,便于控制算法的移植。 其次,本文阐述了轮式机器人硬件平台的设计。介绍了c p u 的选型以及外围电路 的设计。采用c a n 总线作为电路扩展,方便机械部分实现分布控制。 再次,本文在硬件平台的基础上,详细地介绍了嵌入式l i n u x 的组织结构以及嵌入 式l i n u x 的移植过程。主要包括交叉编译环境的建立、内核的定制及编译、根文件系统 组成与建立以及驱动程序的编写。然后对l i n u x 的启动过程进行了详细的分析,并对内 核移植过程中使用的主要结构对象进行相应的介绍。 最后,本文探讨了轮式机器人的运动控制,包括直行和转弯控制算法。结合前几届 全国大学生机器人电视大赛比赛情况,对于该平台的性能进行总结。 关键词:机器人;嵌入式k i n u x ;a 阴体系结构;内核移植 焦尚伟:嵌入式l i n u x 在轮式机器人控制中的应用 a b s t r a c t s i n c e2 0 0 2 ,c c t v ,e d u c a t i o nm i n i s t r ya n ds c i e n c e & t e c h n o l o g ym i n i s t r yo fc h i n a h a v eh o l d “c h i n au n i v e r s i t yr o b o c o n f o rf o u ry e a r s i nt h i sp a p e r ,t h eg e n e r a lm o v e m e n t p l a t f o r mo f w h e e lr o b o t si se s t a b l i s h e df o rt h a tc o n t e s t a sf o rc o n t e s t s ,t h eg e n e r a lr o b o t sm o v e m e n tp l a t f o r ms h o u l db ef l e x i b l e ,d e p e n d a b l ea n d e a s yt op o r ta n de x t e n d t h i sp a p e ri so r g a n i z e da sf o l l o w i n g : f i r s t l y ,t h ei m p o r t a n c e o fe m b e d d e d o p e r a t i n gs y s t e m i si n t r o d u c e d b a s e do n e m b e d d e do p e r a t i n gs y s t e m ,i ti sc o n v e n i e n tt od e v e l o ps o f t w a r ea n dh a r d w a r es e p a r a t e l y , m a n a g ec o m p l e xh a r d w a r ea n dp o r tc o n t r o la l g o r i t h r n s s e c o n d l y ,t h ed e s i g no fh a r d w a r ep l a t f o r m ,t h es e l e c t i o no fc p ua n dp e r i p h e r a lc i r c u i t s a r ed e s c r i b e d e x t e n d e db yc a n b u s ,t h ed i s t r i b u t i n gc o n t r o l i sr e a l i z e d t h i r d l y ,t h eo r g a n i z a t i o na n dp o r t i n go fe m b e d d e dl i n u xa r es h o w ni nd e t a i l ,s u c ha st h e e s t a b l i s h m e n to fc r o s sc o m p i l a t i o ne n v i r o n m e n t ,t h et a i l o ra n dc o m p i l a t i o no fk e r n e l ,r o o tf i l e s e t u pa n dd e s i g no fd r i v e r t h e nt h ep r o c e s so fl i n u xs t a r tu pa n dm a i no b j e c t so fk e r n e l p o r t i n ga r ea n a l y z e d f i n e l y ,t h em o v e m e mc o n t r o la l g o r i t h m s ,i n c l u d i n gm o v i n gs t r i c t l ya n dt u r n i n g ,o f w h e e lr o b o t si sd i s c u s s e d c o m p a r e dw i t hf o r m e rc o n t e s t so f “c h i n au n i v e r s i t yr o b o c o n ” t h ep e r f o r m a n c eo f t h i sp l a t f o r mi ss u m m a r i z e d k e yw o r d s :r o b o t s ;e m b e d d e dl i n u x ;a r ma r c h i t e c t u r e ;k e r n e lp o r t i n g 独创性说明 作者签名: 研究工 方外, 大连理 的同志 行的获工氢断蝴燃舡腻 指注不与耙在加果材时人别成的孙个特究过蒯 一一 硕我经学b:。人位献 一盔垄矍三盔堂堡主堑窒生堂垡墼 大连理工大学学位论文版权使用授权书 本学位论文作者及指导教师完全了解“大连理工大学硕士、博士学位论文版权使用 规定”,同意大连理工大学保留并向国家有关部门或机构送交学位论文的复印件和电子 版,允许论文被查阅和借阅。本人授权大连理工大学可以将本学位论文的全部或部分内 容编入有关数据库进行检索,也可采用影印、缩印或扫描等复制手段保存和汇编学位论 文。 作者签名:照垒 导师签名 ,型丝嗌 f 1 绪论 本章首先介绍了课题的研究背景,阐述了嵌入式系统和机器人技术的发展现状。然 后对嵌入式操作系统在机器人上的应用前景作了分析。最后概括了本文总体的组织结 构。 1 1 引言 为了推动我国机器人事业的发展,培养全国高校学生的创新意识和动手能力,中央 电视台联合教育部、科技部从2 0 0 2 年开始连续四年举办了“全国大学生机器人电视大 赛”。机器人大赛充分体现了“科技是第一生产力”的思想,为我国大学生提供了一个 充分展示想象力和创造力的舞台。 1 1 1 我校参加机器人竞赛情况 我校参加了前三届机器人大赛。在第二届大赛中,我校代表队获得全国第三名和最 佳创意奖。在第三届大赛中我校也取得了不错的成绩。目前正为第五届机器人大赛作 图1 i 第四届机器人电视大赛比赛场地俯视图 f i g 1 it h ep l a n f o r mo f t h ef o u r t hr o b o tt vg a m e 焦尚伟:嵌入式l i n u x 在轮式机器人控制中的应用 准备。这里以第四届机器人大赛为例介绍一下机器人比赛的场地和规则。第四届机器人 大赛的意图是通过手动和自动机器人协作,登长城并向5 个火炬和4 堆篝火添加燃料得 分,比赛时间为3 分钟。第四届大赛的场地俯视图如图1 1 所示。 比赛场地为1 4 0 0 0 m m x1 4 0 0 0 m m 的正方形区域。赛场地面用2 m m 厚的聚乙烯片铺 设。聚乙烯片用无光泽的聚乙烯带连接。比赛场地周围有1 0 0 m m 高3 0 m m 厚的木质围 栏。比赛场地由“手动区”、“篝火区”和“自动区”( 包括烽火台) 组成。每个区域 的细节参见所附的赛场透视图图1 2 。 图1 2 第四届机器人电视大赛比赛场地透视图 f i g 1 2t h es c e n o g r a p ho f t h ef o u r t hr o b o tt vg a m e 自动区由9 0 0 0 m m 9 0 0 0 m m 的方形区域组成,四周有1 0 0 m m 高、3 0 m m 厚的木质 围栏。只有自动机器人可在自动区运行。自动区贴有3 0 m m 宽的白色引导线。自动区正 中有一个八边形烽火台,高度1 0 0 m m ,它的四条边长为2 0 0 0 m m ,另四条边长为1 4 1 4 t o n i 。在两条2 0 0 0 m m 的边与自动区地面之间有坡度为1 5 的斜面。自动区中有5 个火 炬。高度为1 8 0 0 m m 的主火炬位于场地正中。另4 个高度为1 5 0 0 m m 的外围火炬在它的 四周。篝火区是由四个直径为1 2 0 0 m m 的圆形区域组成,它们位于自动区的四角。篝火 区中央有直径6 0 0 m m 、高1 0 0 m m 的燃料盘,盘边宽5 0 m m ,盘深3 0 m m 。燃料盘与地 大连理工大学硕士研究生学位论文 面以3 5 0 m m 宽的斜面相连。篝火区的细节参见所附的场地布局平面图。手动区在自动 区和篝火区周围。手动区左、右两边相对配置两队的球库。每个球库可放1 6 个燃料球。 1 2 课题研究背景 参与全国大学生机器人电视大赛不仅是机器人学科研究的需要,同时能够为我校争 得荣誉,向全社会展示我校在机械、电子、自动化、传感器等学科领域的科研水平。为 了进一步推动机器人技术的发展,为了在全国机器人大赛中取得好成绩,有必要研究一 套完善的轮式机器人通用运动平台。 各校参赛的机器人形式不尽相同,轮式机器人所表现的可靠性、灵活性和控制算法 的多样性也十分突出。选用何种硬件体系和控制算法来构建机器人运动平台是机器人设 计过程中的主要问题。从通用性的角度看,往届四次竞赛中无论是手动机器人还是自动 机器人除了实现功能不同外,伺服驱动以及运动控制部分没有大的区别和改变。伺服驱 动和运动控制部分恰恰是机器人平台的根本所在,它们决定了机器人平台的灵活性和准 确性,比如最大运行速度、启动速度、最小转弯半径、转弯角度的准确性等方面。从扩 展性的角度来看,由于机器人平台传感器众多、硬件时序复杂、控制算法复杂,采用单 片机越来越难以满足要求。采用三星公司的$ 3 c 2 4 1 0 处理器以及嵌入式l i n u x 操作系统 不但可以满足以上要求,而且在可靠性、可移植性、可扩展性等方面为将来的功能改进 和扩展打下良好的基础。 本文以上述问题作为研究背景,对轮式机器人的硬件系统的构建、嵌入式操作系统 的移植以及驱动程序、控制算法的分析和设计等方面进行了相应的研究,并最终完成了 轮式机器人通用的运动控制和伺服驱动的硬件设计并扩展了丰富的硬件接口。不仅为下 届的大赛做准备,而且为以后的参赛设计提供参考。 1 3 嵌入式操作系统的发展与现状 嵌入式系统2 j ( e m b e d d e ds y s t e m ) 被定义为:以应用为中心、以计算机技术为基 础、软件硬件可裁剪、适应应用系统,并对功能、可靠性、成本、体积、功耗严格要求 的专用计算机系统。嵌入式系统泛指嵌入于宿主设备以辅助宿主设备高质量完成其功能 为目地的小巧而廉价的计算机系统。它是专门面向用户、面向产品、面向应用的,系统 可大可小,位数可多可少,完全由能满足宿主设备的功能要求来决定。单片机、单板机 控制系统以及一些专用的工业控制计算机都可以称作嵌入式系统。 焦尚伟:嵌入式l i n u x 在轮式机器人控制中的应用 图1 3 嵌入式系统的应用 f i g 1 3 t h e a p p l i c a t i o n s o f t h e e m b e d d e ds y s t e m 嵌入式系统学科和产业的发展使得设计人员能够从容地面对越来越复杂的应用需 求,通过软件和硬件的模块化设计大大地简化和加快了应用系统的开发。嵌入式计算机 在应用数量上远远超过各种通用计算机,广泛应用于制造工业、过程控制、通讯、仪器、 仪表、汽车、船舶、航空、航天、军事装备、消费类产品等领域。纵观嵌入式技术的发 展,大致经历了四个阶段鸭 第一阶段是无操作系统的阶段,是以单芯片为核心的可编程控制器形式的系统,同 时具有与监测、伺服、指示设备相配合的功能。这种系统大部分应用于一些专业性极强 的工业控制系统中,一般没有操作系统的支持,通过汇编语言编程对系统进行直接控制, 运行结束后清除内存。这一阶段系统的主要特点是:系统结构和功能都相对单一,处理 效率较低,存储容量较小,几乎没有用户接口。由于这种嵌入式系统使用简便、价格很 低,以前在国内工业领域应用较为普遍,但是已经远远不能适应高效的、需要大容量存 储介质的现代化工业控制和新兴的信息家电等领域的需求。 第二阶段是以嵌入式c p u 为基础、以简单操作系统为核心的嵌入式系统。这一阶 段系统的主要特点是:c p u 种类繁多,通用性比较差;系统开销小,效率高;一般配备 系统仿真器,操作系统具有一定的兼容性和扩展性;应用软件较专业,用户界面不够友 好;系统主要用来控制系统负载以及监控应用程序运行。 第三阶段是通用的嵌入式操作系统阶段,是以嵌入式操作系统为核心的嵌入式系 统。这一阶段系统的主要特点是:嵌入式操作系统能运行于各种不同类型的微处理器上, 兼容性好;操作系统内核精小、效率高,并且具有高度的模块化和扩展性;具备文件和 目录管理、设备支持、多任务、网络支持、图形窗口以及用户界面等功能;具有大量的 大连理工大学硕士研究生学位论文 应用程序接口( a p i ) ,开发应用程序简单;嵌入式应用软件丰富。 第四阶段是以基于i n t e r n e t 为标志的嵌入式系统,这是一个正在迅速发展的阶段。 目前大多数嵌入式系统还孤立于i n t e r n e t 之外,但随着i n t e m e t 的发展以及i n t e m e t 技术 与信息家电、工业控制技术等结合日益密切,嵌入式设备与i n t e m e t 的结合将代表着嵌 入式技术的未来发展趋势。 l i n u x 从1 9 9 1 年问世到现在,短短的十几年时间已经发展成为功能强大、设计完善 的操作系统之,不仅可以与各种传统的商业操作系统分庭抗争,在新兴的嵌入式操作 系统领域内也获得了飞速发展。嵌入式l i n u x ( e m b e d d e dl i n u x ) 是指对标准l i n u x 经 过小型化裁剪处理之后,能够固化在容量只有几十k 或者几m 字节的存储器芯片或者 单片机中,适合于特定嵌入式应用场合的专用l i n u x 操作系统。 ( 1 ) 广泛的硬件支持 l i n u x 能够支持1 3 8 6 、a r m 、m i p s 、a l p h a 、p o w e r p c 等多种体系结构,目前已 经成功移植到数十种硬件平台,几乎能够运行在所有流行的c p u 上。l i n u x 有着异常丰 富的驱动程序资源,支持各种主流硬件设备和最新硬件技术,甚至可以在没有存储管理 单元( m m u ) 的处理器上运行,这些都进一步促进了l i n u x 在嵌入式系统中的应用。 ( 2 ) 内核高效稳定 l i n u x 内核的高效和稳定已经在各个领域内得到了大量事实的验证,l i n u x 的内核设 计非常精巧,分成进程调度、内存管理、迸程间通信、虚拟文件系统和网络接口五大部 分,其独特的模块机制可以根据用户的需要,实时地将某些模块插入到内核或从内核中 移走。这些特性使得l i n u x 系统内核可以裁剪得非常小巧,很适合于嵌入式系统的需要。 ( 3 ) 开放源码,软件丰富 l i n u x 是开放源代码的自由操作系统,它为用户提供了最大的自由度,由于嵌入式 系统千差万别,往往需要针对具体的应用进行修改和优化,因而获得源代码就变得至关 重要了。l i n u x 的软件资源十分丰富,每一种通用程序在l i n u x 上几乎都可以找到,并 且数量还在不断增加。在l i n u x 上开发嵌入式应用软件一般不用从头做起,而是可以选 择一个类似的自由软件做为原型,在其上进行二次开发。 ( 4 ) 完善的网络通信和文件管理机制 l i n u x 从诞生之日起就与i n t e r n e t 密不可分,支持所有标准的i n t e m e t 网络协议,并 且很容易移植到嵌入式系统当中。此外,l i n u x 还支持e x t 2 、f a t l 6 、f a t 3 2 、r o m f s 等通 用文件系统,这些都为开发嵌入式系统应用打下了很好的基础。 焦尚伟:嵌入式l i n u x 在轮式机器人控制中的应用 1 4 机器人技术的发展与现状 机器人技术作为2 0 世纪人类最伟大的发明之一,它的研究开始于2 0 世纪中期。第 一代遥控机械手1 9 4 8 年诞生于美国原子能委员会的阿尔贡研究所,当时用来对放射性 材料进行远距离操作,以保护原子能工作者免受放射线照射。第一台工业机器人产生于 1 9 5 6 年,是英格尔博格f o e n g e l b e r g e r ) 将数字控制技术与机械臂结合的产物。当时主要 是为了克服串联机构累积的系统误差,以便达到较高的空间定位精度,提出了示教再现 的编程方式,从而使重复定位精度差不多比绝对定位精度提高了一个数量级。1 9 6 8 年, 日本川崎重工引进美国u n i m a t i o n 公司的u n i m a t e 机器人制造技术,开始了日本 机器人时代。1 9 7 0 年,在美国召开了第一届国际工业机器人学术会议。此后,机器人的 研究得到迅速广泛的普及。1 9 7 9 年u n i m a t i o n 公司推出了p u m a 系列工业机器人, 它的关节由电动机驱动,可配备视觉、触觉、力觉传感器。到1 9 9 0 年已有3 0 万台机器 人在全世界使用。其中高性能的机器人所占比例不断增加,特别是各种装配机器人的产 量增加较快,和机器人配套使用的的机器视觉技术和装备也得到迅速发展。进入2 0 世 纪9 0 年代后,装配机器人及柔性装配技术进入了大发展时期。日本一直拥有全世界机 器人总数的6 0 左右。到1 9 9 8 年,美国拥有机器人8 万台,德国为7 万多台,分别占 世界机器人总数的1 5 和1 3 左右。到2 0 0 5 年,全世界的机器人总数约1 0 0 万台。 1 5 嵌入式操作系统在机器人控制中的应用 机器人技术的发展从来都是与嵌入式系统的发展紧密联系在一起的。近年来,由于 嵌入式处理器的高度发展,机器人从硬件到软件也呈现出新的发展趋势,无论从控制系 统的结构还是机器人的智能程度都得到了很大的提高。国外在机器人中使用l i n u x 作为 机器人的操作系统有很多的例子: 2 0 0 1 年9 月富士通发布了基于l i n u x 操作系统的人形机器人系统h o a p 一1 ,这台 h o a p 1 的机器人4 8 厘米高,6 公斤重。 2 0 0 3 年5 月s m a r tr o b o t s 公司推出了新型基于l i n u x 的移动机器人s r 4 。s r 4 使 用嵌入式l i n u x 操作系统。其最大的特点在于能够通过i n t e r n e t 与其它机器人或者人类 进行交流。而交流的方式可以是电子邮件或者是访问w e b s e r v e r 以获取相关的信息。 2 0 0 5 年7 月富士通再次发布了h o a p 3 人形机器人。机器人身高6 0 厘米,体重8 8 公斤。同样它也是基于l i n u x 操作系统。 在国内,机器人智能控制领域刚刚起步,但已经取得了很多成果。典型代表是北京 理工大学设计的人形机器人“汇童”。“汇童”是国家科技部“十五”8 6 3 计划先进制 造与自动化领域机器人技术主题的重点项目。“汇童”具有视觉、语音对话、力觉、平 大连理工大学硕士研究生学位论文 衡觉等功能,并能模仿太极拳、刀术等人类复杂动作。 1 6 课题主要工作和特点 本课题主要设计一套轮式机器人通用运动平台,为轮式机器人研制一套嵌入式控制 系统,为机器人的控制提供一套扩展能力强的硬件平台。本文研究的重点是嵌入式硬件 平台的设计、嵌入式l i n u x 系统移植、相关设备驱动的编写以及轮式机器人运动控制算 法的研究。本课题主要完成的工作如下: ( 1 ) 对a r m 体系结构的特点进行了详细的归纳、总结和分析。 ( 2 ) 采用三星公司的$ 3 c 2 4 1 0 低功耗、高性能嵌入式处理器作为控制系统的核心, 完成了轮式机器人的控制及驱动部分的硬件电路设计。 ( 3 ) 对嵌入式l i n u x 的r o o t 根文件系统的组成与建立过程进行了深入的研究,在此 之上建立了适合轮式机器人二次开发的l i n u x 根文件系统。 ( 4 ) 对嵌入式l i n u x 内核中所提供的和a r m 平台移植相关的代码如内存管理,中 断控制,启动过程等部分进行了深入的研究,给出了分析报告。 ( 5 ) 对嵌入式l i n u x 移植过程进行了深入的分析,在此之上以s b c 2 4 1 0 板为目标完 成了l i n u x 移植工作。 ( 6 ) 对于轮式机器人的运动控制进行了深入地分析研究。 本课题轮式机器人通用运动平台有以下几个特点: ( 1 ) 采用低功耗、高性能的3 2 位嵌入式处理器作为控制系统的核心,与传统的p c 相比,系统总体的功耗变小了,系统复杂程度降低了;与单片机相比,运算能力大大加 强了。 ( 2 ) 采用嵌入式l i n u x 操作系统有利于软件的移植,有利于复杂算法的实现。 ( 3 ) 采用c a n 总线将系统组成分布式操作系统,有利于各机械部分的扩展,便于系 统实时化。 本论文的组织围绕以上工作展开,总共分为六章。 第一章主要介绍了课题的来源背景,并对嵌入式系统的发展过程以及机器人的发展 现状作了简单的介绍,然后介绍了嵌入式操作系统在机器人控制中的应用情况。最后说 明了课题研究的主要内容和论文结构。 第二章主要内容是嵌入式l i n u x 操作系统概述,本章介绍了嵌入式l i n u x 的系统组 成以及开发环境的建立以及r o o t 根文件系统的建立过程。 第三章的主要工作是基于$ 3 c 2 4 1 0 的硬件设计,介绍了硬件结构组成,以及调试环 境的建立。 焦尚伟:嵌入式l i n u x 在轮式机器人控制中的应用 第四章主要介绍了嵌入式l i n u x 操作系统移植,包括嵌入式l i n u x 启动过程、嵌入 式l i n u x 主要数据结构以及嵌入式l j n u x 相关驱动程序的编写。 第五章是本系统在机器人上的运动控制,对电机数学模型的建立、机器人的直线和 转弯控制算法进行了阐述。 第六章是总结和展望,总结了本文研究的机器人的实际应用情况,对一些本文研究 中尚未解决的问题进行说明,希望在今后的进一步研究中解决。 大连理工大学硕士研究生学位论文 2 嵌入式l i n u n 构造过程 本章首先给出了一个嵌入式l i n u x 系统模型,然后介绍了嵌入式l i n u x 的开发步骤。 和其它软件开发一样,嵌入式l i n u x 开发也需要一个开发环境,因此在本章的最后介绍 了构造开发环境和调试工具等方面的建立过程。 2 1 l i f l u x 操作系统的基本组成 从程序员的角度来讲,操作系统提供了一个与计算机硬件等价的虚拟的操作平台, 它抽象了许多硬件细节,程序可以以某种统一的方式进行数据处理,而且程序原则上可 以避开许多硬件细节。从另一个角度来讲,普通用户则把操作系统看成是一个资源管理 者,在它的帮助下,用户可以以某种易于理解的方式组织自己的数据,完成自己的工作 并和他人共享资源。通常我们所说的l i n u x 操作系统都是指l i n u x 内核和包含一些特定 功能的应用程序的文件系统。内核是操作系统的灵魂,它负责管理磁盘上的文件、分配 内存空间、负责程序调度。 如图2 1 所示,l i n u x 内核由如下几个主要部分组成【6 l :内存管理、进程管理、设备 驱动程序、文件系统、和网络管理等。下面分别简要介绍内核的主要部分。 应用程序 内核 图2 1 内核组织结构 f i g 2 1t h eo r g a n i z a t i o no f t h ek e r n e l 焦尚伟:嵌入式l i n u x 在轮式机器人控制中的应用 ( 1 1 内存管理 对任何一台计算机而言,其内存以及其它资源都是有限的,为了让有限的物理内存 满足应用程序对内存的大量需求,l i n u x 采用了虚拟内存的内存管理方式。l i n u x 将内存 划分为容易处理并便于管理的内存页,在系统运行过程中,应用程序对内存的需求大于 物理内存时,l i n u x 可将暂时不用的内存交换到硬盘上,这样空闲的内存也可以满足应 用程序的内存需要。 ( 2 1 进程管理 进程实际上是某个应用程序的一个运行的实体。在l i n u x 系统中,能够同时运行多 个进程。l i n u x 通过在较短的时间间隔内轮流运行这些进程,从而实现多任务。每个进 程都以为只有自己单独占有计算机,从而简化了应用程序的编写。每个进程都有自己单 独的地址空间,并且这些地址空间只能由这个进程访问,这样操作系统就避免了进程之 间的相互干扰。 ( 3 ) 设备驱动程序 设备驱动程序是l i n u x 内核的主要部分。和操作系统的其它部分类似,设备驱动程 序运行在商特权级的处理器环境中,可以直接对硬件进行操作,但正是这样,任何一个 驱动程序的错误都可以导致操作系统的崩溃。设备驱动程序实际控制操作系统和硬件设 备之间的交互。设备驱动程序提供一组操作系统可以理解的抽象接口来完成和操作系统 之间的交互,而与硬件相关的具体操作细节由设备驱动程序完成。 ( 4 ) 文件系统 文件系统是指在个物理设备上的任何文件组织和目录,它构成了l i n u x 系统上所 有数据的基础,l i n u x 应用程序、链接库、系统文件和用户文件都驻留其中,它是系统 中庞大复杂且又最为基本和重要的资源。l i n u x 支持多种文件系统格式,如e x t 2 、e x t 3 、 f a t 、f a t 3 2 、j f f s 等。l i n u x 利用虚拟文件系统来把不同格式的文件系统组织在一起,虚 拟文件系统将各种文件系统抽象为一种统一的公共接1 3 ,屏蔽了文件操作和不同文件系 统之间的具体细节。因此用户和进程不需要知道文件所在的文件系统类型。 ( 5 ) 网络服务 l i n u x 和网络有着非常密切的联系。不仅l i n u x 的开发者使用网络和w e b 进行信息 交换,而且l i n u x 本身也用于各种组织形式的网络支持。l i n u x 不但支持b s d 套接字, 而且还支持全部的t c p i p 协议,l i n u x 内核的网络部分由b s d 套接字、网络协议层和 网络设备驱动程序组成。 l o 大连理工大学硕士研究生学位论文 2 2 交叉编译环境的建立 l i n u x 支持多种体系结构的c p u ,比如1 3 8 6 、a r m 、m i p s 、p p c 等。l i n u x 内核编 译时默认的配置是针对1 3 8 6 平台的,如果要编译特定c p u 的内核首先需要建立编译这 个体系处理器的交叉编译环境。这个交叉编译环境就是指编译内核所需的工具l d 、a s 、 a r 、g c c 以及相关的库文件。如图2 2 所示: 主机 图2 2 交叉编译环境 f i g 2 2e n v i r o n m e n to f c r o s sc o m p i l e 目标机 交叉开发环境的原理是这样的,在主机和目标机体系结构不同的情况下,在主机上 开发那些将在目标机上运行的程序 7 - s 】。比如在p c 上开发a r m 架构上运行的程序,就 是在1 3 8 6 上使用可以将程序编译链接成a r m 可运行代码的编译链接器,将代码生成在 a r v l 上的可执行程序。使用交叉编译环境的主要原因是嵌入式系统资源受限制,无法 建立起所需要的开发环境。 2 2 1b i n u t i s 的建立 b i n u t i l s 包中的工具主要是用来生成目标板二进制目标文件的,该包中最重要的两 个工具就是g n u 汇编器a s 和链接器1 d 。下表完整地列出了b i n u t i l s 包中的工具【9 】。 首先在邱:t i p g n u o r g 下载b i n u t i l s - 2 11 2 t a r g z 源代码包。解开这个包后进入该代 码的目录,然后执行下面的命令; 对于b i n u t i l s 、g e e 、g l i b c 这些源代码在编译之前需要用c o n f i g u r e 命令来对编译选项配 置,一般不同的程序有不同的配置参数,可以用c o n f i g u r e - - h e l p 列出程序的编译参数。 一t a r g e t 选项让我们能够指定为哪个目标板来建立b i n u t i l s ,而一p r e 触选项让我们能够指 定生成的二进制文件安装目录。如果不指定,则默认的安装目录是u s r h o c a l 目录。 焦尚伟:嵌入式l i n u x 在轮式机器人控制中的应用 表2 1b i n u t i l s 工具集 t a b 2 1t o o l so f b i n u t i l s 工具用途 g n u 汇编器 1 d g n u 链接器 g a s pg n u 汇编器预处理器 a r 用来创建与操作档案文件的内容 n 吡 列出目标文件中的符号列表 o b j c o p y复制并转换目标文件 o b j d u m p 显示目标文件内容相关信息 r a m i b 为档案文件的内容产生索引 r e a d e f 显示e l f 格式的目标文件内容有关的信息 s l z e 列出目标文件中各区段的大小 s t r l n g s 列出目标文件中的可打印字符 s t r l o 除去目标文件中的符号 c + + f i i t将因为c + + 函数的重载而损坏的低级汇编语言符号转换成用户层的名称 a d d r 2 1 i n e 将所指定的地址转换成源文件中的行号 2 2 2 内核头文件的设置 因为在后续步骤编译g c c 的时候需要内核的头文件,因此需要在编译g c c 之前,首 先生成内核中与体系相关的头文件。首先在f t p :m i r r o r d l u t e d u c n 下载版本为l i n u x 一2 4 18 t a r g z 的标准内核,然后从f i p :y a p a n n 1 i n u x o r g 下载p a t c h 一2 4 18 - r i n k 7 g z ,这是 a r ml i n u x 为标准内核作的补丁。执行以下命令: 由于内核默认的体系结构是d 8 6 ,因此需要把a r m 处理器类型赋给a r c h 环境变量, 在这个时候不需要太多内核配霞工作,只要在菜单选项s y s t e mt y p e 中将a r ms y s t e m t y p e 选择为$ 3 c 2 4 1 0 一b a s e d 就行了。然后退出m e n u c o n f i g 之后需要重新执行m a k e a r c h = a n nm e n u c o n f i g 命令,这主要是为了在头文件目录下建立链接关系。 大连理工大学硕士研究生学位论文 2 2 3g c c 的第一次编译 g e e 工具包里只包含了一个工具程序( g n u 编译器) ,不过它还支持一些组件,比 如g l i b c 链接库。在这个阶段我们将a r mg c c 第一次编译,该编译器只支持c 语言。等 到下一步g l i b c 链接库编译好之后,会重新编译g c c 使之支持c + + 。 在邱:f t p g n u o r g 下载g c c 一2 9 5 3 t a r g z 和g e e - 2 9 5 3 d i f f b z 2 。g c c - 2 9 5 3 d i f f b z 2 是 a r m l i n u x 为g e c 作的补丁。解开g c c 压缩包并给它打上g c c 2 9 5 3 d i f f b z 2 补丁。 由于是第一次编译g e c ,所以必须对源代码作一些修改,将文件g c c c o n f i g a r m t - l i n u x 中 的t a r g e t _ l i b g c c 2 _ c f l a g s = - f o m i t - f r a m e - p o i n t e r f p i c 改为t a r g e t l i b g c c 2 x f l a g s f o m i tf r a m e - p o i n t e r f p i c d i n h i b i t 一1 i b c - d g t h r _ p o s i x _ h 然后这一行的下面 加上一行t _ c f l a g s = - d i n h i b i t _ l i b e - dg t h r j a o s i x _ h 。加上参数- d i n h i b i t _ l i b c 和 一d g t h r _ p o s i x _ h 的原因是在编译g e c 的时候还没有编译g l i b c ,因此相关的链接库还没 有生成,修改完之后执行下面的命令: r o o t j s wg c c 一2 9 5 3 # p a t h = f j s b i n :$ p a t h r o o t j s wg e e 2 9 5 3 # c o n f i g u r e - - t a r g e t = a r m l i n u x p r e f i x = j s 【r o o t j s wg e c - 2 9 5 3 1 # m a k el a n g u a g e s = c r o o t j s wg c c - 2 9 5 - 3 # m a k ei n s t a l ll a n g u a g e s = c 上面的命令第一条是把第一步生成的b i n u t i l s 工具所在的目录添加到系统路径参数 p a t h 中,因为编译a r mg e c 的时候需要用到这些工具。第二条命令是配置参数一t a r g e t 和- - p r e f i x ,它们的含义和编译b i n u t i l s 是一样的,一w i t h h e a d e r s 是指向先前内核源代码 生成的头文件目录。l a n g u a g e s 这个参数是指定要编译的g c c 编译器,因为此时g l i b e 还没有生成,所以在这里暂时只编译一个c 语言的编译器。 2 2 4 安装g | i b c 链接库 g l i b e 是由许多链接库组成的,它是极其重要的一个组件,目标板必须靠它来执行或 开发大部分的应用程序。在f t p :t i p g n u o r g 下载g l i b c - 2 2 3 t a r g z 和g l i b c l i n u x t h r e a d s - 2 2 3 t a r g z 。安装g l i b c 和以前的工具一样,首先要把源代码包解开,同时把线程库 g l i b c l i n u x t h r e a d s - 2 2 3 t a r g z 的源代码放到g l i b c 的目录中,执行下面的命令: 焦尚伟:嵌入式l i n u x 在轮式机器人控制中的应用 在这一步需要注意的是参数p r e f i x 指向的目录与前面的配置b i n u t i l s 和g c c 时不一样。 因为前面在编译安装g c c 时,在p r e f i x 的目录下面生成了一个a r m 1 i n u x 目录,这个目录 下面的l i b 目录就是用来存放该编译器编译应用程序时所需要的库。在执行了m a k ei n s t a l l 命令之后,g l i b c 的头文件、库文件以及相关工具就会生成在j s a r m - l i n u x 目录下。 2 2 。5 完整编译g c c 在这一步要为目标板安装支持c 、c + + 等的完整编译器。这次不需要对g c c 的源代 码作修改了,只要执行下面的命令就可以了: 整个交叉编译环境到现在已经设置好了,表2 2 是,j s 第一层子目录结构及其用途 表2 2 j s 下第一层子目录 t a b 2 2t h el i s to f f i r s ts u b d i r e c t o r yu n d e r i s 目录内容 b i n交叉开发工具 a r m - i i n u x 目标板专用文件 i n c l u d e 供交叉开发工具使用的头文件 i n f og e e 的i n f o 文件 1 i b 供交叉开发工具使用的链接库 m a n 交叉开发工具的在线说明文件 s h a r e 交叉开发工具与链接库共享的文件 其中有两个目录比较重要:b i n 和a r m 1 i n u x 。b i n 目录包含了交叉开发工具连所有的 工具程序,我们将会在主机上使用这些工具来为目标板编译应用程序。a i m 1 i n u x 目录中 的组件都会应用在目标板上。它的主要内容是目标板的头文件和运行时链接库。表2 3 列出了a r m l i n u x 目录中的第一层子目录并说明了它们的用途: 大连理工大学硕士研究生学位论文 表2 3 i s a r m 一1 i n u x 下第一层子目录 t a b 2 3t h el i s to f f i r s ts u b d i r e c t o r yu n d e r j s a r m - l i n u x 目录内容 b 1 1 2 与g li b c 有关的目标板二进制文件和命令脚本 e t c目标板的e t c 目录中应该存放的文件 i n c l u d e目标板建立应用程序时使用的头文件 i n t og l i b c 的i n f o 文件 1 i b目标板的l i b 目录 l i b e x e c二进制辅助程序。此目录只包含p t c h o w n 文件 s b i n 目标板的s h i n 目录 s h a r e 与国际化有关的子目录和文件 s y s i n c l u d e供g c c 配置命令脚本复制的目标板头文件 其中i n c l u d e 目录包含的头文件会被用来建立目标板的应用程序。而l i b 目录则包含 了目标板使用的运行时链接库。由于l i b 目录的链接库是大型的,大约占用8 0 m 存储空 间。而大多嵌入式系统无法提供这样大的存储空间,在使用之前必须对它进行裁减以减 小链接库的数量和大小。 2 3l i n o x 内核的配置与编译 现在对用前面打好a r m 补丁的l i n u x 内核进行配置。通常情况下,选择已知可用 内核的版本越新越好。因此如果已知目标板上可以使用2 4 1 7 和2 4 1 8 ,则2 4 1 8 应该 是最优的选择。但有些情况下并非如此。 2 3 1 内核的配置 内核支持四种设定配置的方法【1 0 1 : ( 1 ) m a k ee o n f i g 通过该命令接口,依次要求设定每个选项,如果c o n f i g 配置文件 存在,它会根据该文件来设定默认值。 ( 2 ) m a k eo l d c o n f i g :通过该命令接口,自动导入已有的c o n f i g 配置文件,并且只有 在遇到先前没有设定过的选项时,才会要求手动设定。 ( 3 ) m a k em e n u c o n f i g :以终端方式显示配置菜单。如果c o n f i g 文件存在,它会根据 该文件来设定默认值。 ( 4 ) m a k ex c o n f i g :显示以g t k 为基础的xw i n d o w 配置菜单。如果c o n f i g 文件存在, 它会根据该文件来设定默认值,如同m a k ec o n f i g 和m a k em e n u c o n i i g 一样。 以上四种方法都可以用来设定内核配置。它们都会在内核源代码的根目录中产 焦尚伟:嵌入式l i n u x 在轮式机器人控制中的应用 生c o n f i g 文件。一般开发者通常会使用m a k em e n u c o n f i g 。在a r m 和其它体系结构使用 m a k ex c o n f i g 方法时,菜单可能会有问题。要配置内核选项,只需要在命令行上键入适 当的命令和命令参数,对a r m 为基础的用户接口模块,可以使用如下的命令行: 图2 3 是在配置$ 3 c 2 4 1 0

温馨提示

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

评论

0/150

提交评论