(通信与信息系统专业论文)嵌入式门禁控制器平台软件设计与实现.pdf_第1页
(通信与信息系统专业论文)嵌入式门禁控制器平台软件设计与实现.pdf_第2页
(通信与信息系统专业论文)嵌入式门禁控制器平台软件设计与实现.pdf_第3页
(通信与信息系统专业论文)嵌入式门禁控制器平台软件设计与实现.pdf_第4页
(通信与信息系统专业论文)嵌入式门禁控制器平台软件设计与实现.pdf_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

摘要 摘要 技术的进步推动着产品的更新换代。以单片机为主流技术的门禁控制系统日 益满足不了人们的需求,为此商业公司选择了极具发展潜力的嵌入式技术来全面 提高其产品性能。而基于平台软件的嵌入式技术逐渐迎合了应用与开发需求,现 已成为发展的主流和应用的热点。 本文介绍了一款为嵌入式门禁控制器设计的嵌入式系统平台软件,它是针对 基于a r m 的嵌入式微处理器$ 3 c 2 4 1 0 而设计的,主要用来组织和管理门禁控 制器的硬件资源,并为控制器应用软件提供了一个运行的平台。 本文研究了嵌入式门禁控制器平台软件的开发技术,并针对具体的需求特点, 设计并实现了基于l i n u x 内核的嵌入式门禁控制器平台软件。具体工作包括了引 导装载程序u - b o o t 程序的移植、l i n u x 内核的移植、设备驱动程序的开发、基于 l i n u x 文件系统的定制等。简要介绍了门禁控制器中一些主要设备驱动程序的开发 过程,其中包括r f i d 读卡器与控制器通过r s 4 2 2 r s 4 8 5 总线通信的串口总线 驱动,基于p h i l i p si s p11 6 1 的u s b 主机控制器驱动程序和专为门禁控制器设计 并实现的基于嵌入式l i n u x 电源管理子系统。 实际测试表明控制器平台软件具有可裁剪、稳定等显著优点,满足了对系统 功能、可靠性、成本、功耗的严格要求。该平台软件的研究,对嵌入式l i n u x 在 嵌入式控制系统中的应用,对嵌入式系统的快速开发具有重要的应用价值。 关键词:a r m 嵌入式系统平台软件l i n u x 内核设备驱动 a b s t f a c t a b s t r a c t a d v a n c i n gt e c h n o l o g yl e a d sn e wp r o d u c t s a c c e s sc o n t r o ls y s t e mb a s e do ns c m c o u l dn o tm e e tp e o p l e sg r o w i n gn 锄sd a ya f t e rd a y n ee m b e d d e dt e c h n o l o g yh a s g r e a tp o t e n t i a la n dc o u l dm e e tt h en e e d so ft h ea p p l i c a t i o na n dd e v e l o p m e n t s u c c e s s f u l l y a n di sh a sb e c o m et h et r e n do f a p p l i c a t i o na n dd e v e l o p m e n l h e r ew ei n t r o d u c ep l a t f o r ms o f t w a r ew h i c hd e s i g n e df o re m b e d d e ds y s t e ma c c e s s c o n t r o l l e r ;, i ti sd e s i g n e df o re m b e d d e dm i c r o - p r o c e s s o r $ 3 c 2 4 1 0w h i c hi sb a s e do n a r mt e c h n o l o g y t h em a i nf u n c t i o no ft h ep l a t f o r ms o f t w a r ei st oo r g a n i z ea n d m a n a g et h ea c c e s sc o n t r o l l e r sh a r d w a r e ,a n dp r o v i d eap l a t f o r mf o rt h ea c c e s s c o n t r o l l e r sa p p l i c a t i o ns o f t w a r e t h i st h e s i ss t u d i e st h ed e v e l o p m e n to ft h ea c c e s sc o n t r o l l e r sp l a t f o r ms o f t w a r e t h ep l a t f o r ms o f t w a r ei sd e s i g n e db a s e do nl i n u xk e r n e la n dr e a l i z e dw i t hs p e c i f i c f e a t u r e s n 圮m a i nw o r k si n c l u d em i g r a t i o no fu b o o ta n dl i n u xk e r n e lt 0c o n t r o h e r , s t u d yt h ec o n t r o l l e r sd e v i c ed r i v e r sa n df i l es y s t e m i ti n t r o d u c e st h ed e v e l o p m e n to f s o m em a i nd e v i c ed r i v e r sw h i c ha r ei na c c e s sc o n t r o l l e r t h e r ea r es e r i a lb u sd r i v e r w h i c hc o m m u n i c a t er f i dr e a d e rw i t hc o n t r o l l e ro nr s 4 2 2 r s 4 8 5b u s u s bh o s t c o n 仃o h e rd r i v e rb a s e do np h i l i p si s p11 6 1a n dp ms u b s y s t e mw h i c hi sb a s e do n e m b e d d e dl i n u xw a sd e s i g n e da n dr e a l i z e df o ra c c 麟c o n t r o l l e r t e s t ss h o wt h a tt h ep l a t f o r ms o f t w 鲫ei sf l e x i b l ea n ds t a b l e ,m e e t st h er e q u i r e m e n t s o ff u n c t i o n , s t a b i l i t y ,c o s ta n dp o w e r i ti sag r e a tv a l u et os t u d yt h ep l a t f o r ms o f t w a r e f o ri th e l p ss t u d y i n gl i n u xa p p l i c a t i o ni ne m b e d d e ds y s t e ma n dp r o m o t et h ed e v e l o p i n g o f e m b e d d e ds y s t e m k e y w o r d s :a r m e m b e d d e ds y s t e mp l a t f o r ms o f t w a r el i n u xk e r n e l d e v i e ed r i v e l 西安电子科技大学 学位论文独创性( 或创新性) 声明 秉承学校严谨的学风和优良的科学道德,本人声明所呈交的论文是我个人在 导师指导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标 注和致谢中所罗列的内容以外,论文中不包含其他人已经发表或撰写过的研究成 果;也不包含为获得西安电子科技大学或其它教育机构的学位或证书而使用过的 材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中做了明确的说 明并表示了谢意。 申请学位论文与资料若有不实之处,本人承担一切的法律责任。 西安电子科技大学 关于论文使用授权的说明 本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即:研究 生在校攻读学位期间论文工作的知识产权单位属西安电子科技大学。学校有权保 留送交论文的复印件,允许查阅和借阅论文;学校可以公布论文的全部或部分内 容,可以允许采用影印、缩印或其它复制手段保存论文。同时本人保证,毕业后 结合学位论文研究课题再撰写的文章一律署名单位为西安电子科技大学。 ( 保密的论文在解密后遵守此规定) 本学位论文属于保密,在一年解密后适用本授权书。 本人签名:型) 盛日期兰! 堡垒! 旦! 堡! 导师签名: 日期曼! ! 墨! 里 第一章绪论 第一章绪论 1 1 项目背景 嵌入式门禁控制管理系统是安防公司利用当前先进的技术平台,以发展的眼 光,使用新技术参与目前成熟门禁市场角逐的战略武器。目前的门禁系统多是以 单片机为核心技术的系统,但由于其功能单一,规模小,不易升级,新产品开发 周期长等问题,越来越不能满足客户和公司的需求。微电子技术、通信技术和全 球信息化的飞速发展,极大地推动了基于微处理器的嵌入式系统在各个领域的广 泛应用。以嵌入式技术为基础的智能门禁系统不仅保留了单片机时代门禁系统的 优点并且有了全面性的提升。嵌入式微处理器具有更高的处理速度,因此可以承 担更多任务;更好使用网络功能,嵌入式门禁系统与管理中心主机是通过局域网 来传递数据的,通信方式采用的是t c p ,m 协议,这为整个门禁系统提供了极大 的灵活性,控制中心的位置可以随意变换,控制器也可以很方便的更换,而不需 要重新布线;系统的升级更新也更加方便等。多功能的嵌入式门禁系统不仅满足 了客户的需求,也将为安防公司带来巨大的活力。 目前国内的智能门禁系统种类比较少且各项功能还不够完善,尽管嵌入式门 禁控制管理系统的有着美好的前景和难得的发展机遇,但国内的厂商总的来说还 是不够踊跃,这其中一方面有技术上的难点;还有如何保护知识产权的问题。嵌 入式技术的难点在于系统平台软件的设计,而使用什么样的平台软件又会涉及到 知识产权保护的问题,因此如何为嵌入式门禁控制器搭建一款合适的平台软件已 经成为亟需解决的问题之一【l “。 1 2 嵌入式门禁控制器概述 嵌入式系统的全称是嵌入式计算机系统。嵌入式系统是计算机技术和计算机 应用领域的一个分支,它是将核心计算单元嵌入到一个对象体系中,实现对对象 体系的智能化控制,从而代替一部分人们的工作,把人们从普通繁杂的单调工作 中解放出来。嵌入式技术是将先进的计算机技术、半导体技术、微处理器技术、 电子技术、通信技术、集成电路技术和各个行业的具体应用相结合后的产物。嵌 入式门禁控制器即是将嵌入式技术运用在门禁控制器中的一个实例。 门禁控制管理系统以嵌入式门禁控制器为核心,结合当前先进的r f i d 阅读 器、传感器等新技术,设计开发一个中高端智能化的门禁系统,本系统在传统门 禁考勤系统的基础上增加安全防范报警的功能和监控的功能。控制器作为智能控 制终端设备负责信息采集,数据处理、响应外设事件、控制外设、进行智能化的 处理并与控制中心通信等等。每个控制器都是一个独立的系统,它可以单独使用 2 嵌入式门禁控制器平台软件设计与实现 以实现门禁的功能;也可以通过网络,由控制中心管理形成一个大规模的门禁控 制系统。如图1 1 所示,门禁管理系统以门禁控制器为中心,从读卡器获得用户的 信息与权限,由控制器进行判断处理,并决定是否允许通行或报警。控制器通过 网络与控制中心进行通信,接受控制中心的命令,如果需要控制中心还可以将控 制器中的考勤数据拷贝到本地存储器中。 图1 1 嵌入式门禁管理系统组成图 嵌入式门禁控制器是基于$ 3 c 2 4 1 0 1 4 ( a r m 9 2 0 tc o r e ) 嵌入式微处理器的。控 制器具有多路可编程g p i o 接口,用以收集数据和输出控制信号,此外它还具有 t c p 口、u s b 、r s 4 2 2 4 8 5 、韦根通讯端口,自适应扩展板接口( p c 1 0 4 ) 。嵌入式 控制器主要负责,接收读卡器数据,采集传感器数据( 门磁、按钮、防拆除等) 以及 本地的处理和校验( 权限核对) ,输出( 继电器) 控制信号、本防区报警控制和报警信 号。所有的输入输出端口都可以由嵌入式应用软件进行灵活的配置,以适应在不 同场合的具体应用。 控制器配备有两种不同的读卡器,r f i d 高频读卡器和w l e g a n d 低频读卡 器,两种读卡器的工作方式和数据传输方式均不相同。i 心d 通过r s 4 2 2 r $ 4 8 5 与控制器进行数据交换,并且它的工作方式是被动的,必须由控制器发命令它才 能将数据上传。而w i e g a n d 是通过中断来发送数据的,并且它是主动发送的, 只要有数据就立即向控制器发送。u s b 接口可以用来更新、升级应用程序,或将 控制器中存储的数据导出。控制器还有诸多的g p i o 接口,通过它们来接收传感 器的信息和发送控制信息。控制器还预留了升级扩展接口,以p c 1 0 4 接口方式 扩展,可以接插扩展板,扩展板带有视频监视控制和触摸屏等接口。 嵌入式门禁控制器需要嵌入式软件系统和硬件设备协同工作以实现具体的功 能,嵌入式软件系统是由平台软件和应用程序组成的。从开发人员的角度将嵌入 式门禁控制器分为三个部分,嵌入式门禁控制器硬件平台,嵌入式门禁控制器平 台软件和嵌入式门禁系统应用程序,分别予以实现。 第一章绪论 门禁控制器硬件平台是嵌入式系统的基础,主要由嵌入式微处理器、总线、 存储器以及i o 接口和设备组成,其核心是嵌入式微处理器。系统的各种硬件资 源需要操作系统的管理,只有这样,不同的应用程序在操作系统环境下才可以高 效地使用这些资源。嵌入式门禁控制器平台软件包含了操作系统的功能,它管理 和组织硬件设备:外设、存储器、内存、c p u 等,为应用程序合理地分配系统资 源,使整个系统的资源得到充分的利用。平台软件是控制器硬件上加载的第一层 软件,是对硬件功能的首次扩充。在系统启动时,它会初始化系统的硬件设备, 为设备添加驱动程序,并为在平台之上运行的其他软件提供较高级别的硬件抽象。 门禁控制器需要嵌入式系统应用软件来实现具体的应用和发挥应有的功能。 平台软件能够将硬件的功能抽象出来,为嵌入式应用软件提供了一个运行的平台, 并为其提供库函数、驱动程序、工具集以及系统调用,将软件开发人员从繁忙的 驱动程序移植和维护中解脱出来,从而方便了程序员的使用。 平台软件负责嵌入式系统的全部软、硬件资源的分配、调度工作,控制协调 并发活动;它必须体现其所在系统的特征,能够通过装卸某些模块来达到系统所 要求的功能。平台软件的作用对于嵌入式系统开发人员来说好比将嵌入式系统的 硬件和软件分开来,使它们能够相互独立的进行开发。软件开发人员只需知道硬 件设备有什么功能,以及如何使用这些功能,而不必考虑这些都是如何实现的。 而硬件开发人员也可以更关注于硬件的设计,比如,如何更好的降低功耗,如何 更好的保证可靠性等,而不必担心如何为软件去提供更好的接口。平台软件为嵌 入式系统提供了良好的可重用性,使得同一硬件的设计可以应用于不同的服务请 求。例如在利用现有门禁控制器硬件资源的基础上,对设备驱动程序做了少量适 当的修改后,重新设计了一个应用程序,整个控制器就完成了一个新的功能。平 台软件为嵌入式应用软件提供了良好的硬件无关性。即便是控制器的硬件有所改 动,只需要修改对应相关部分的驱动程序,而整个上层的功能软件则无需做任何 的改动。 虽然嵌入式系统是面向专业应用的,是软、硬件紧密配合的,但正是平台软 件的介入,使得这种密切性、耦合性正在相对地淡化;随着嵌入式系统规模的扩 大,应用领域的扩展,系统也越来越复杂,引入平台软件已成为一种必然。它有 效地促成了嵌入式系统内部软硬件的合理分家,加速了嵌入式系统的层次化、模 块化。 1 3 主要研究内容和工作 本文的主要内容即是为嵌入式门禁控制器设计平台软件。平台软件在控制器 中的主要作用有两点。首先,平台软件将控制器的开发分为软件和硬件两个部分, 4 嵌入式门禁控制器平台软件设计与实现 这样软、硬件的开发过程可以同时进行,缩短了开发的时间。其次,方便发现问 题的根源,一旦出现问题先确定是软件的还是硬件的,然后再去深入研究,就不 会无从下手了。 本文的主要工作有: 1 为嵌入式门禁控制器设计平台软件; 2 搭建嵌入式系统软件开发环境; 3 移植u - b o o t 、l i n u x 内核以及部分标准设备的驱动程序; 4 为嵌入式门禁控制器的专用设备设计、开发驱动程序; 5 为门禁控制器构建基于l i n u x 内核的嵌入式文件系统 平台软件的核心组件是嵌入式操作系统,我们使用的基于l i n u x 内核的嵌入 式操作系统;引导加载程序负责启动硬件、初始化控制器和加载内核,我们选用 的是u - b o o t 。设备驱动为门禁控制器中所有的外设提供了一个标准的应用接口。 还包括基于l i n u x 的嵌入式文件系统。l i n u x 内核与u - b o o t 都是g n u 计划的 一部分。图1 2 说明了平台软件处于控制器的中间层,以及各部分的组成。使用g n u 组件意味着会得到很多技术人员的帮助,通常可以在该计划的论坛和邮件列表里 找到所有的技术解决方案。在整个嵌入式门禁控制器平台软件的制作过程中,我 们从g n u 计划中获得了大量的帮助信剧5 】。 应用软件 文件系统 平台软件 l i n u x 内核 硬件平台 设备驱剥,砌b o o 盯t 陌丽了 图1 2 平台软件在控制器中的位置及其组成 本文的内容安排: 第二章,嵌入式系统平台软件的开发与运行分别是在不同的体系结构中进行 的,因此平台的构建需要专用的工具和特殊的环境。这里首先介绍一下开发过程 中所需要用到的一些专用工具和需要搭建的开发环境。 第三章,介绍引导装载程序u - b o o t 及其在嵌入式门禁控制器上的移植,以及 u - b o o t 下一些设备驱动移植。 第四章,移植l i n u x 内核到嵌入式门禁控制器,并为控制器的专用设备设计、 实现驱动程序。 第五章,为嵌入式门禁控制器制作根文件系统。 第二章嵌入式系统的调试开发环境 第二章嵌入式系统的调试开发环境 嵌入式系统的资源非常有限,无法在其上进行软件的开发和调试,通常嵌入 式系统的开发环境和运行环境都是不同的。这也是嵌入式系统开发中的一个难点, 因些在开发的过程中常常需要一些特殊或专用的工具来帮忙。“工欲善其事,必先 利其器”,选择一套合适的工具,势必会使嵌入式系统的开发达到事半功倍的效果。 2 1 嵌入式系统集成开发环境 集成开发环境要针对所使用的嵌入式微处理器来选取,每一款嵌入式微处理 器都有自己专有的集成开发环境嘲。a d s 是a r m 公司的集成开发环境软件,它 的功能非常强大,它包含了仿真器和编译器,需要配合硬件调试器m u l t i i c e 来 使用。i c e ( i n c i r c u i te m u l a t o r ,实时在线仿真系统) + j t a g ( j o i n tt e s ta c t i o ng r o u p , 联合测试行动组) + a d s l 2 ( a r md e v e l o p e rs u i t e ,a r i v l 开发工具集) 。不同的集 成开发环境都是由不同组件搭配而成的,性能也相差甚大。将嵌入式门禁控制器 称为目标板,开发的嵌入式软件就是运行在目标板上。将用于开发和调试的p c 机 称之为宿主机,各种开发环境和工具就安装在宿主机上。基于a r m 的集成开发环 境是安装在宿主机的w i n d o w s 操作系统中。如图2 1 所示,宿主机上安装的有 a d s 和m u l t i i c e ,宿主机通过并口连接到j t a g 上,j t a g 通过其2 0 针的接插 线连接到开发板上对应的接口p l 。 图2 1 嵌入式系统开发环境 嵌入式系统开发的一个重要特点是需要软硬件的协同设计和综合开发,并且 嵌入式系统的开发平台和调试平台也是分开的,这些无疑加大了开发的难度。集 成开发环境可以对嵌入式微处理器进行完全透明的操作,并且集成了必要的偏辑、 编译、链接、下载、跟踪和调试,可以显著的提高嵌入式系统的开发效率,缩短 6 嵌入式门禁控制器平台软件设计与实现 开发周期,加快开发进度,节省开发成本,将开发的难度降到了最低,嵌入式集 成开发环境还能够对嵌入式硬件平台进行全面的测试。嵌入式集成开发环境可以 帮忙开发人员缩短嵌入式系统的开发周期,提高目标板的质量,高效、快速的开 发嵌入式系统。 集成开发环境可以将平台软件的各组件写入嵌入式目标板的内存中,并用程 序控制( h a s h 烧写程序) 的方式将内存中的映像或文件写入目标板的f l a s h 中。嵌 入式系统中最初的软件都是通过集成开发环境写入的。b o o f l o a d e r 是嵌入式系统 第一个运行的软件,$ 3 c 2 4 1 0 并没有其它的引导方式,因此只能通过集成开发环 境将b o o t l o a d e r 写入目标板系统之中。集成开发环境还可以协助设备驱动的调 试,因此它是嵌入式系统开发过程中必不可少的一款工具。 在门禁控制器的开发过程中,主要使用集成开发环境将b o o f l o a d e r 烧写到控 制器的f l a s h 存储器中,其次平台软件中许多的功能需要通过集成开发环境来调 试。在开发的初期,由于平台软件的功能还不是很完善,还需要通过集成开发环 境烧写内核,根文件系统和应用程序。在开发的后期这些工作都可以由u - b o o t 通 过网络功能完成。 。 2 2 交叉编译器 与通用计算机应用软件的开发不同,嵌入式系统由于其资源有限开发人员无 法在本地为其编写程序,因此嵌入式系统中的软件大都是宿主机中完成的。与通 用计算机应用软件开发者相似的是,嵌入式系统软件开发人员也需要用到编译器、 链接器、解释程序以及诸如此类的其他开发工具。在本项目中宿主机是一台p c 机,它是x 8 6 结构的,控制器是基于a r m 结构的。它们的体系结构不一样,所 生成的代码也无法相互使用。由于运行应用程序的环境和编译程序的环境并不相 同,在p c 机上开发的代码是运行在嵌入式系统中的,因此在宿主机上需要一种 专门的工具来编译出能够运行在目标板上的程序,这些工具通常被称之为跨平台 开发工具或简称交叉编译器。此外,宿主机作为控制器的开发工具,它的环境要 取决于控制器所使用的系统。嵌入式门禁控制器平台软件的核心是l i n u x 内核, 主要开发工作在宿主机的r e dh a tl i n u x 操作系统中。在宿主机上编译好的程序 映像可以通过集成开发环境或者b o o t l o a d e r 白带的一些工具写入到目标板的存 储器之中。 一般而言,交叉编译器的完整搭建过程大体上都遵循以下流程嘲: 第二章嵌入式系统的调试开发环境 7 2 2 1 选择交叉编译器 图2 2 交叉开发环境的完整搭建过程图 g n ut o o l si 具链因为其免费、功能强大,而被广泛应用。它支持多款处理 器,包括a r m 、m 口s 、p o w c r p c 以及x 8 6 等。自己动手编译一套a r m - - l i n u x - - g e e 需要用到g e e 、g l i b c 、b i n u t i l s 、内核头文件以及g d b 。编译交叉编译器的步 骤一般如下: 1 创建编译环境,设置内核头文件。 2 设置b i n u t i l s ,创建类似a r m - l i n u x 1 d 等工具。 3 设置引导编译器,创建一个交叉编译版本的g e e 。 4 设置c 链接库,创建一个交叉编译版本的g l i b e 。 5 设置设试工具,创建一个交叉编译版本的g d b 。 6 完成编译器的设置,重新创建g e e 和g l i b c 。 由于交叉编译器所需的各个工具都是独立开发的,相互之间并没有什么依赖 关系,所以理论上说,交叉编译环境可以有无数种搭配方式,但是,实际上并非 每种搭配都可以成功,有可能某个版本就会出现冲突,出现这种情况,只能重新 更换版本,而这种更换版本的重复性劳动往往要进行很多次,通过源代码配置安 装一个g n ut o o l s 交叉编译环境比较复杂,如果有现成二进制g n ut o o l s 交叉 编译工具,则建议直接安装使用这些工具,可以极大地减少工作量。 2 2 2 使用现成二进制g n ut o o l s 交叉编译工具 g n u 交叉编译器无需安装,只要将压缩包解压后即可使用,为了方便使用将 所用到的交叉编译命令加入到宿主机的环境变量中。交叉编译器使用的版本是 2 9 5 3 ,它对l i n u x 2 4 内核的支持比较好。新建一个目录u s r l o c a l c r o s s 将交叉 编器的所有程序放在该目录下,并修改e t c b a s h r e 在文件的最后加上一行,e x p o r t 8 嵌入式门禁控制器平台软件设计与实现 p a t h ;u s r l o c a l c r o s s 2 9 5 3 ,b i i l :$ p a t h 。以后在编译内核或其它程序的时候,均 可以直接使用交叉编译器命令a r m 1 i n u x ,就如同使用系统命令一样。 2 3 小结 集成开发环境和交叉编译器是嵌入式系统开发的两种工具,它们不完全一样。 集成开发环境可以用来调试系统和开发系统软件,但其开发过程漫长,成本过高。 在门禁控制器的开发过程中使用集成开发环境强大的调试功能来调试系统,而使 用交叉编译器来完成系统软件,充分利用了两种工具的优势,发挥了巨大的作用。 宿主机中的开发环境是r e dh a t9 00 i n u x 2 4 2 0 ) ,我们工作在根用户环境下,因为 我们要更改很多设置,需要最高的权限才行。然后我们以h o m e 为工作目录所有 与门禁控制器相关的文件和目录都会放在这下面。 本章介绍了嵌入式系统的开发和调试工具,开发过程通常是在p c 机的 l i n u x 操作系统平台下进行,可以在i d e 中调试,也可以利用串口终端进行调试, 然后经过交叉编译移植到嵌入式的硬件平台上。 第三章引导加载程序 9 第三章引导加载程序 对于所有的计算机系统而言,上电后软件开始运行起来的这一过程是很重要 的,两嵌入式系统不象p c 机那样有丰富的资源可供使用,它必须通过软硬件的 协调来共同完成这一过程。本章将详细介绍门禁控制器的嵌入式系统引导加载程 序u _ b o o t 9 1 和其移植过程。 3 1u - b o o t 简介 歇入式系统中的弓 导装载程序统常称做为b o o t l o a d e r t o l ,虽然是软件但却发 挥的是硬件的作用。b o o l l o a d e r 将嵌入式系统中的软件和硬件连系起来,使得嵌 入式操作系统内核能够运行在硬件之上。尤如其名子一样,b o o f l o a d e r 的主要作 用有两个:b o o t 启动嵌入式硬件系统;l o a d e r 加载嵌入式操作系统。因此,如图 3 1 所示。b o o t l o a d e r 是控制器从硬件到软件的必经之路。 图3 1u - b o o t 在嵌入式系统中的作用 支持l i n u x 内核的b o o t o a d e r 有许多,不过u - b o o t 却被认为是其中功能最 多、最具弹性以及开发最积极的开放源码b o o t l o a d e r 。u - b o o t 是由德国d e n x 小 组开发的p p c - b o o t 发展而来的可用于多种嵌入式c p u 的b o o t l o a d e r 程序,是 s o u r c e f o r g e 网站上的一个开放源代码的项目,受到各种开发者的支持。u - b o o t 具 备通过t f t p 、从i d e 或s c s i 磁盘以及从d o c 启动的能力,此井它还提供 j f f s 2 的只读支持,其功能强大,但相对比较复杂。它可对p o w e r p c 、m p c ( 5 x x 、 8 x x ,8 2 x x ,7 x x ,7 4 x x ) ,a r m ( a r m 7 ,a r m 9 ,s t r o n g a r m ,x s c a l e ) ,m i p s ( 4 k c , 5 k c ) 、x 8 6 等处理器提供支持,支持的嵌入式操作系统有l i n u x 、v x w o r k s 、 n e t b s d 、q n x 等。其中它对p o w e r p c 系列处理器的支持最完善,对l i n u x 操 作系统的支持最好【1 1 】。此外u - b o o t 还具有一些特有的功能【1 2 】。 1 0 嵌入式门禁控制器平台软件设计与实现 1 在线读写f l a s h 、d o c 、d e 、i i c 。e e r o m 、r t c ,其它的b o o t l o a d e l 根 本不支持i d e 和d o c 的在线读写。 2 支持串行口k e r m i t 和s - r e c o r d 下载代码,u - b o o t 本身的工具可以把 e l f 3 2 格式的可执行文件转换成为s - r e c o r d 格式,直接从串口下载并执行。 3 ,识别二进制、e l f 3 2 、u l m a g e 格式的i m a g e ,对l i n u x 引导有特别的支 持。u - b o o t 对l i n u x 内核进一步封装为u i m a g e 。即在l i n u x 内核镜像v m l i n u x 前添加了一个特殊的头,这个头在i n c l u d e i m a g e h 中定义,包括目标操作系统的 种类( 比如l i n u x 、v x w o r k s 等) 、目标c p u 的体系机构( 比如a r m 、p o w c r p c 等) 、映像文件压缩类型( 比如g z i p 、b z i p 2 等) 、加载地址、入口地址、映像名称 和映像的生成时间。当系统引导时,u - b o o t 会对这个文件头进行c r c 校验,如 果正确,才会跳到内核执行。 4 。单任务软件运行环境。u - b o o t 可以动态加载和运行独立的应用程序,这些 独立的应用程序可以利用u - b o o t 控制台的i 0 函数、内存申请和中断服务等。 这些应用程序还可以在没有操作系统的情况下运行,是测试硬件系统很好的工具。 5 ,监控( m i n i t o r ) 命令集:读写i o ,内存,寄存器、内存、外设测试功能等。 6 脚本语言支持( 类似b a s h 脚本) 。利用u - b o o t 中的a u t o s c r 命令,可以 在u b o o t 中运行“脚本”。首先在文本文件中输入需要执行的命令,然后用 t o o l s m k i m a g e 封装,然后下载到开发板上,用a u t o s c r 执行就可以了。 7 支持w a t c h d o g 、l c dl o g o 和状态指示功能等。如果系统支持s p l a s hs c ,e , u - b o o t 启动时,会把这个图像显示到l c d 上,给用户更友好的交互。 8 支持m t d 和文件系统。u - b o o t 作为一种强大的b o o f l o a d e r ,它不仅支 持m 1 d ,而且可以在m t d 基础上实现多种文件系统,比如c r a n l f s 、f a t 和i 自f s 2 等。 9 支持中断。由于传统的b o o t l o a d e r 都分为s t a g e l 和s t a g e 2 ,所以在s t a g e 2 中添加中断处理服务十分困难,比如b l o b ;而u - b o o t 是把两个部分放到了一 起,所以添加中断服务程序就很方便。 1 0 详细的开发文档。由于大多数b o o t l o a d e r 都是开源项目,所以文档都不 是很充分。u - b o o t 的维护人员意识到了这个问题,充分记录了开发文档,所以它 的移植要比b l o b 等缺少文档的b o o t l o a d e r 方便。 鉴于u - b o o t 强大的功能和方便的移植特性,本项目的引导加载程序采用 u - b o o t 的1 1 4 版本,它不仅提供对a r m 9 2 0 t 内核的支持,而且直接提供了 对于$ 3 c 2 4 1 0 的板级支持,这大大减少了移植工作的难度。 + 第三章引导加载程序 3 2 1u - b o o t 源代码目录结构 3 2u - b o o t 移植 u b o o t 移植的切入点即是从b o a r d 和e p u 目录开始,主要集中在以下三个 方面: a r m 9 2 0 t _ 嵌入式微处理器c o r e $ 3 c 2 4 1 卜嵌入式s o c s m d k 2 4 1 卜嵌入式开发板 由于使用的是一样的嵌入式微处理器$ 3 c 2 4 1 0 ,这部分完全可以拿过来直接 使用。门禁控制器目标板和s m d k 2 4 1 0 开发板的主要区别在于所选用的f l a s h 芯 片和网卡芯不同,因此我们要对此加以修改以使它们在门禁控制器目标板上能够 正常的工作。 u - b o o t 的代码采用了一种高度模块化的编程方式,它支持为数众多的处理器 架构、开发板类型和大量的硬件设备,它将相互关联的部分都分门别类的放在不 同的目录下。这种安排的方式极大的方便了移植工作的进行,我们可以在每个目 录下面找到已有的或类似的组件来“拼装”成我们所需要的b o o t l o a d e r 。g n u m a k e 工具为我们提供了巨大的方便,我们不需要过多的关注各个目录之间的关系,当 然如果能对这些目录有进一步的了解,对以后的研究将会有很大帮助。 我们的移植工作的重点就放在各个目录中与门禁控制器相关的文件上。u - b o o t 文件目录的具体内容已在r e a d m e 文件中做了详细的介绍,其中与移植相关的主 要目录有以下一些,以后我们的移植工作都是在以下目录中修改完成的: b o a r d :这个目录里存放的是u - b o o t 所支持的目标板类型,和具体开发板的硬 件和地址分配有关。门禁控制器使用的是从s m d k 2 4 1 0 移植过来的 p r o m a 8 6 1 0 。 。c o m m o n :与体系结构无关的文件,实现各种命令的c 文件。 。c p i l :这个目录存放了u - b o o t 所支持的c p u 架构,其中的子目录都是以c p u 命名的,比如有子目录a r m 9 2 6 e j s 、m i p s 、m p e 8 2 6 0 和n i o s 等,其中需要我 们关心的是e p u a r m 9 2 0 t 。每个特定的予目录中都包括e p t t c 和i n t e r r u p t c , s t a r t s 。其中e p u e 初始化c p u 、设置指令c a c h e 和数据c a c h e 等; i n t e r r u p t c 设置系统的各种中断和异常,比如快速中断、开关中断、时钟中断、 软件中断、预取中止和未定义指令等;s t a r t s 是u - b o o t 启动时执行的第一个 文件,它主要是设置系统堆栈和工作方式,为进入c 程序奠定基础。 d o e :文档。 d r i v e r s :通用设备驱动程序,比如各种网卡、支持c f i 的f l a s h 、串口和u s b 嵌入式门禁控制器平台软件设计与实现 总线等。 f s :支持文件系统的文件,u - b o o t 现在支持c r :城瞻、f a t 、f d o s 、j f f s 2 和r e g i s t e r f s 。 - i n c l u d e :头文件,还有对各种硬件平台支持的汇编文件,系统的配置文件和对 文件系统支持的文件。 n e t :与网络有关的代码,b o o t p 协议、册协议、r a r p 协议和n f s 文 件系统的实现。 - l i ba l i l l :与a r m 体系结构相关的代码。 t o o l s :创建s - r e c o r d 格式文件和u - b o o ti m a g e s 的工具。 3 2 2u - b o o t 移植过程 b o o t l o a d e r 和硬件关系紧密,主要工作就是为了初始化硬件和处理器的寄存 器到一个特定的状况,为内核的运行做好准备。为了使移植工作更加快捷,移植 u - b o o t 到门禁控制器仅需要修改与目标板硬件相关的部分即可。主要包括两个层 面的移植:第一层是针对嵌入式微处理器的移植,第二层是针对开发板的移植。 u - b o o t l 1 4 提供了a r m 9 2 0 t 的支持,在目录u - b o o t - 1 1 4 e p u a r m 9 2 0 t 下是 所有与a r m 9 2 0 t 相关的代码。嵌入式微处理器的嵌入式系统的核心,u - b o o t 也 提供了对s 3 c 2 4 1 0 支持,因为嵌入式微处理器的一样的,因此这里我们直接拿过 来用就行了。门禁控制器需要的是$ 3 c 2 4 x 0 这个目录,因为控制器的嵌入式微处 理器是$ 3 c 2 4 x 0 系列中的$ 3 c 2 4 1 0 。 我们从根目录开发修改。首先,我们要修改的是m a k e f i l e 文件,在u - b o o t 根 目录下的m a k e f i l e 文件中修改: ,修改 i f e q ( $ ( a r c i ) ,a r m ) c r o s s _ c o m p i l e = a m - l i n u x - e n d i f 添加 s m d k 2 4 1 0 _ e o n f i g :u n e o n t g m k e o n f i g $ ( :_ e o n t i g = ) 锄a r m 9 2 0 ts m d k 2 4 1 0n u l l s 3 e 2 4 x 0 在这一行的下边我们添加如下两行: p n m 8 6 1 0 _ c o n f i g :u n e o n f i g m k c o n f i g $ ( :_ e o n f i g = ) 锄a r m 9 2 0 tp r o m a 8 6 1 0n u l l s 3 c 2 4 x 0 其中a r m 是嵌入式微处理器类型,a r m 9 2 0 t 是a r m 处理器对应体系结 构,p r o m a 8 6 1 0 是我们的目标板硬件平台在b o a r d 目录中对应的目录名,s 3 c 2 4 x 0 是嵌入式微处理器对应的目录。 第三章引导加载程序 其次,在b o a r d 目录里建立自己开发板的目录和相关文件,我们可以找到 s m d k 2 4 1 0 文件夹,其中s m d k 2 4 1 0 是三星公司为$ 3 c 2 4 1 0 提供的开发板。它里 面就是u - b o o t 针对$ 3 c 2 4 1 0 提供的板级支持,我们可以在它的基础上面进行简 单的修改,修改为我们开发板硬件对应的代码。新建一个以项目名命名的 p r o m a 8 6 1 0 文件夹在b o a r d 目录下,做为我们开发板的硬件平台目录。然后将 u - b o o t b o a r d s m d k 2 4 1 0 下的所有文件拷贝到p r o m a 8 6 1 0 文夹中。该文件夹下一些 主要文件的说明: 。l o w l e v e l i n i t s - 这个文件主要是对嵌入式微处理器进行初始化配置的,需要根 据具体应用进行修改。比如门禁控制器的网卡芯片是连接在嵌入式微处理器的 第一个b a n k l 上的,因此在这里就要对b a n k l 的配置寄存器进行相应的配 置,参考网卡芯片的d a t e s h e e t 。u - b o o t 第一阶段中的初始化命令就是在本 文件中完成的,最低层的全是汇编。初始化时钟、b a n k 寄存器和s d r a m 寄 存器等。 。p n m 8 6 1 0 c 这个文件是从s m d k 2 4 1 0 c 移植过来的,需要改动的地方不多。 主要设置各种总线时钟,打开数据c a c h e 和指令c a c h e ,并设置相关内存参 数。 。m a k e f i l e 修改:o b j s := p r i m 8 6 1 0 0 u - b o o t 1 d s :u - b o o t 的连接文件,不用修改。 。c o n 丘g i n :用于设置程序连接的起始地址,修改3 3 f 8 0 0 0 0 为3 7 f 8 0 0 0 0 。 然后是i n c l u d e c o n f i g s 目录下复制s m d l c 2 1 0 h 为p n m 8 6 1 0 h 。p n m 8 6 1 0 h 是整个目标板的配置文件,因为我们目标板的硬件设计是参照三星公司的 s m d k 2 4 1 0 开发板设计的,很多地方设计都是类似的,因此我们的目标板配置文件 也是从s m d k 2 4 1 0 修改而来的。主要改动的地方是针对于我们的目标板所使作的 资源进行相应的配置。例如,s m d k 2 4 1 0 开发板使用的网卡芯片是c s 8 9 0 0 ,而

温馨提示

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

评论

0/150

提交评论