(计算机系统结构专业论文)基于windowscenet的卫星导航设备显控手柄设计.pdf_第1页
(计算机系统结构专业论文)基于windowscenet的卫星导航设备显控手柄设计.pdf_第2页
(计算机系统结构专业论文)基于windowscenet的卫星导航设备显控手柄设计.pdf_第3页
(计算机系统结构专业论文)基于windowscenet的卫星导航设备显控手柄设计.pdf_第4页
(计算机系统结构专业论文)基于windowscenet的卫星导航设备显控手柄设计.pdf_第5页
已阅读5页,还剩59页未读 继续免费阅读

(计算机系统结构专业论文)基于windowscenet的卫星导航设备显控手柄设计.pdf.pdf 免费下载

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

文档简介

摘要 随着卫星导航技术被广泛应用,导航设备的研究逐渐成为当前嵌入式领域的 研究热点。本文以北斗卫星导航定位系统为应用背景,论述了一种基于i l l l c l p x a 2 5 5 微处理器、采用w i n d d w sc e n e t 作为操作系统的导航设备显控手柄的设 计与实现,详细介绍了系统的设计、开发过程。 本文首先对嵌入式系统、w i n d o w sc e n l i l 操作系统进行了简单介绍,分析其 主要特点和性能优势;而后根据系统功能的需求,给出了显控手柄的总体设计方 案,分析了硬件的主要结构,介绍了硬件设计原理;然后描述了w i l i d o w sc e n e t 系统的整个移植过程,从b 订o a d e r 、内核启动部分,设备驱动、文件系统等方面 详细介绍了移植的方法和内容。最后介绍了串口、键盘驱动程序的原理以及设计 与实现。 关键宇:w i n d w 惦c e n 卫t 板极支持包驱动导航 a b s t r a c t w i t ht h ew i d ca p p i i c a t i o f 韶t c i l i t en a v i g a t i o nt e c h l o g y ,n a v i g a t i c q u i p m e n t g m d u a l l yb e c o m e 锄b c d d e di nt h er e s e a r c hf i e l do fs t l l d y b a s c d t h eb e i d 叫鼢t e l l i t c n a v i g a t i o n 卸dp o s i t i o n i l l gs y s t e mf o i b a c k 伊叫n d ,t h i sp a p e rb a s e d t h eh i t c l p 畅5m i a 印r o c c s 飘w i t hw i i l d o w sc e n e to p e m t i n gs y s t 锄签as 咖墒c a n t n a v i g a t i o ne q u i p m e n td e s i 印柚di i l l p l e m e n t a t i o ft h e n t r o lh 锄d l e ,t h cd e t a i l so f t h ed e s i 弘d “e l 叩m e n tp f o s s 1 1 l i sp a p e rf i r s l 锄b c d d e ds y s t e m ,w i n d o w sc eo p c n t i n gs y s t 锄f o ra 蜊e f p c r f o m l a n c c 翘a l y s i so fi l sm a i nc h a 珀c i e r i s t i c s 柚da d v 卸t a g c s ;u n d e rt l l el a t t c rs y s t e m d 锄a i i d ,t h eo v 哪l ld e s i 印i s 舀v e ns i 伊i f i c a n tc o n t f o lh a l l d l e ,t h em a i ns t m c t u r eo ft h e h a r d w a r e ,t h eh a f d w a md e s i g np f i n c i p k s ;t h e nd e s c r i b et h ew b o l ep r o c c s so fo i g 柚 仃a n s p l a n ts y s 6 咖w i n d o w sa e n e t f r o mb ( 腻l o a d e f ,s l a f t c dk 锄e l ,d e v i c cd f i v e l f i l es y s t e ma n do t h c rd e t a i l so f t h em e t h o d 卸d t e mo f t h c 仃a n s p l 姐t f i l l a l l y t h e r i a l ,k e y b o a r d - d t ! i v 髓p r a c e d u r e sa n d t h ed e s i 印柚di l n p l e m e n t a t i o no ft h cp r i 撕p l e s k e y w o r d :w i n d w 硝c e n l tb s pd e v i d r i v e rn a v i g a 6 蛐 独创性声明 秉承学校严谨的学分和优良的科学道德,本人声明所呈交的论文是我个人在导 师指导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标注 和致谢中所罗列的内容以外,论文中不包含其他人已经发表或撰写过的研究成果; 也不包含为获得西安电子科技大学或其它教育机构的学位或证书而使用过的材 料。与我同工作的同志对本研究所做的任何贡献均已在论文中做了明确的说明 并表示了谢意。 申请学位论文与资料若有不实之处,本人承担一切的法律责任。 本人签名;i 窿噬日期域舀厶璀 关于论文使用授权的说明 本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即;研究生 在校攻读学位期间论文工作的知识产权单位属西安电子科技大学。学校有权保留 送交论文的复印件,允许查阅和借阅论文;学校可以公布论文的全部或部分内容, 可以允许采用影印、缩印或其它复制手段保存论文。同时本人保证,毕业后结合 学位论文研究课题再攥写的文章一律署名单位为西安电子科技大学。( 保密的论文 在解密后遵守此规定) 本学位论文属于保密,在一年解密后适用本授权书。 本人签名:鳢 翩躲耻 日期地z 盈:2 i = 日期迦2 :盘:纱 第一章绪论 1 第一章绪论 1 1 系统开发背景 卫星导航定位系统是2 0 世纪6 0 年代中期发展起来的一种新型导航系统。到 9 0 年代,进入全面运行和盛行时期。应用已扩展至经济和军事的各个领域1 1 1 。全 球卫星导航业务一直被美国的g p s 【2 l 所垄断。当前,g p s 以其技术优势和廉价的 使用成本,在全球得到广泛应用。目前除美国的g 赆之外,还有俄罗斯的 g 【d n a s s 【3 l 、欧洲的伽利略系统啪及我国的第一代北斗系统嘲。 北斗系统由空闻星座、地面控制中心和用户终端三部分组成。地面控制中心 作为整个系统的功能中枢,完成用户终端位置解算、通信信息转发、用户数据保 存、系统监控管理等一系列功能,可为用户提供定位、通信和授时服务。用户终 端是直接由用户使用的设备,用于发送定位请求、通信信息、接收定位信息、通 信信息和定时信息,实现单机定位和双向数字简短报文通信功能,也可作为自主 导航和精确授时设备。 导航设备作为一种重要的军事和民用设备在实际中有广泛的应用前景。基于 北斗系统的设备具有定位导航以及通信等功能,它由射频、基带、电源以及信息 显示控制手柄组成。显示控制手柄是北斗用户机的人机接口装置,它通过串口与 北斗用户机主机进行控制指令和数据交互,实现对北斗用户机工作状态的控制和 信息显示。通过相应的接口,可以与导航数据接模块进行信息交互。 显示控制手柄应具备的功能如下: 具有一定的信息存储功能。 设备包含必要的外设接口如u s b ,串口等,便于系统功能的扩展。 采取触摸屏输入与键盘输入相结合的方式与用户进行交互。 采用“m 彩色显示器。 1 2 信息处理系统 显控模块实际是嵌入式系统的一种。嵌入式系统是以嵌入式计算机为技术核 心,面向用户、面向产品、面向应用,软硬件可裁减的,适用于对功能、可靠性、 成本、体积、功耗等综合性能有严格要求的专用计算机系统【刀。 嵌入式系统应具有的特点是:高可靠性,在恶劣的环境或突然断电的情况下, 系统仍然能够正常工作;许多嵌入式应用要求实时性,这就要求嵌入式操作系统 2 基于w i n d o w a l n e t 的卫星导航设备显控手柄设计 具有实时处理能力;嵌入式系统和具体应用有机地结合在一起,它的升级换代也 与具体产品同步进行:嵌入式系统中的软件代码要求高质量、高可靠性,一般都 固化在只读存储器中或闪存中,也就是说软件要求固态化存储,而不是存储在磁 盘等载体中。 1 2 1 显控手柄的硬件组成嗍 嵌入式系统的核心是嵌入式微处理器。但随着嵌入式硬件技术的发展,已使 其不仅限于以往的单片机,并且广泛的使用了各种新型器件。 处理器 目前嵌入式系统中的处理器分为微处理器( m p u ) 、微控制器( m c u ) 、数字信号 处理器( d s p ) 等几大类,应用最广泛的还是各种档次的8 1 6 3 2 位微控制器,例如 i n t e lx s c a l e 系列芯片、s 锄s u n g 公司的s 3 c 2 4 1 0 等基于a r m 内核的高性能微处 理器正在得到广泛的应用。 存储设备 传统的i 认m 存储器如s d r a m 、r a m :r o m 存储器有掩膜r o m 、p r o m 、 e p r o m 。而新兴的存储器有e e p r o m 、n a s h 则逐渐流行起来。其中采用代码驻 留就地运行技术x i p ( e x e c u t e 面啊a c e ) ,用大容量f l 幅h 来替代磁盘驱动器的方 法,更加符合嵌入式系统的需求。 输入,输出设备 传统的输入输出设备主要是按键和黑白“m 显示。新型的手持设备已经采用 触摸屏作为主要的输入设备,采用有源和无源i c d 彩色显示屏,使得手持设备的 人机交互能力得到更大的加强。 数据总线、通信接口 早期的嵌入式系统主要通过串行和其他设备、计算机进行数据通信。随着电 子技术的发展,数据通信的接口有了很大发展。在嵌入式系统中,逐渐采用网络、 u s b 、m m c 等作为数据信息传送的方式。 1 2 2 显控手柄的软件组成 显控手柄的软件主要是指系统软件与应用软件。应用软件主要是指通过硬件 系统接收导航数据,为用户提供导航信息、位置查询、参数设置等功能。还可以 第一章绪论 3 包括w o r d 、e x 。d 等办公软件,m e d i ap l a y 盯等娱乐软件,扩展系统的使用功能。下 面简要介绍一下嵌入式系统软件。 1 2 2 1 嵌入式操作系统 嵌入式操作系统e o s ( e m b e d d c do p e m t i n gs y s t c m ) 是一种用途广泛的系统软 件,过去它主要应用于工业控制和国防系统领域。e o s 负责嵌入系统的全部软、硬 件资源的分配、调度作业、控制、协调并发活动。它必须体现其所在系统的特征, 能够通过装卸某些模块来达到系统所要求的功能。目前,已推出一些应用比较成 功的e 0 s 产品系列。随着h l t e m e t 技术的发展、信息家电的普及应用及e o s 的微型化 和专业化,e o s 开始从单一的弱功能向高专业化的强功能方向发展。嵌入式操作系 统在系统实时高效性、硬件的相关依赖性、软件固化以及应用的专用性等方面具 有较为突出的特点。e 0 s 是相对于一般操作系统而言的,它除具备了一般操作系统 最基本的功能,如任务调度、同步机制、中断处理、文件处理等外,还有以下特 点1 9 l = 可装卸性、开放性、可伸缩性的体系结构。 强实时性。e 0 s 实时性一般较强,可用于各种设备控制当中。 统一的接口。提供各种设各驱动接口。 操作方便、简单、提供友好的图形g u l ,图形界面,追求易学易用。 提供强大的网络功能,支持t c p 口协议及其它协议,提供1 m i d p 仰p p p 协议支持及统一的m a c 访问层接口,为各种移动计算设备预留接口。 强稳定性,弱交互性。嵌入式系统一旦开始运行就不需要用户过多的干预, 这就要求负责系统管理的e o s 具有较强的稳定性。嵌入式操作系统的用户 接口一般不提供操作命令,它通过系统的调用命令向用户程序提供服务。 固化代码。在嵌入式系统中,嵌入式操作系统和应用软件被固化在嵌入式 系统计算机的r o m 中。辅助存储器在嵌入式系统中很少使用,因此,嵌入 式操作系统的文件管理功能应该能够很容易地拆卸,而用各种内存文件系 统。 更好的硬件适应性,也就是良好的移植性。 1 2 3 常见嵌入式操作系统介绍【1 0 】 1 2 3 1p a l m0 s p a l i n 是3 c o m 公司的产品,其操作系统为p a l mo s 。p a l mo s 是一种3 2 位的嵌入 4 基于w i n d o w s c e n e t 的卫星导航设备显控手柄设计 式操作系统。p a l m 提供了串行通信接口和红外线传输接口,利用它可以方便地与 其它外部设备通信、传输数据;拥有开放的o s 应用程序接口,开发商可根据需要 自行开发所需的应用程序。现在有大约数千种专为p a l mo s 编写的应用程序,从程 序内容上看,小到个人管理、游戏,大到行业解决方案,p a l mo s 无所不包。在丰 富的软件支持下,基于p a l mo s 的掌上电脑功能得以不断扩展。 p a l n l0 s 操作系统的最大特点就是省电以及系统资源开销少。核心只有几十 k b ,与w i n d o w s 旺的几m b 相比,有很大优势。 u n u x 是一个类似于u n i x 的操作系统,是现在最为流行的一款开放源代码的操 作系统。u n l l ) 【从1 9 9 1 年问世到现在,短短1 0 年的时间内已发展成为一个功能强大、 设计完善的操作系统,伴随网络技术进步而发展起来的u n 眦o s 已成为m i c r o s o f i 公司w i n d o w s 系列的强劲对手。i j n u x 系统不仅能够运行于p c 平台,还在嵌入式系 统方面得到非常广泛的应用,在各种嵌入式i j n l l 【o s 迅速发展的状况下,l j n 慨o s 逐渐形成了可与w i n d a 哪c e 等e o s 相抗衡的局面。 l j n 畎的最大特点是它是开放源代码的,产品的成本比较低。但它也同样存在 着系统不稳定、开发难度比较大、开发工具使用复杂等诸多缺点。 1 2 3 3w i n d o w sc e w i n d o w sc e 是微软开发的一个开放的,可升级的3 2 位嵌入式操作系统,是基 于掌上型电脑的电子设备操作,它是精简的w i i l d o w s 9 5 。w i i i d a w s c e 的图形用户 界面相当出色,其中c e 中的c 代表袖珍( c c 眦p a c t ) 、消费( c o n s 岫e r ) 、通信能 力( c o 衄e c t i v i l y ) 和伴侣( c 彻1 p 弛i ) ;e 代表电子产品( e l e d r o n i 岱) 。与w i n d o w s 9 5 9 8 、w i n d o w sn t 不同的是,w i n d o w sc e 是所有源代码全部由微软自行开发的 嵌入式新型操作系统,其操作界面虽来源于w i n d o w s9 5 9 8 ,但w i n d o w sc e 是基于 w i l l 3 2a p i 重新开发的、新型的信息设备平台。w i n d a w sc e 具有模块化、结构化 和基于w i n 3 2 应用程序接口以及与处理器无关等特点。w i n d o w sc e 不仅继承了传 统的w 枷o w s 图形界面,并且在w i n d o w sc e 平台上可以使用w i n d o w s9 5 9 8 上的编 程工具( 如v i 蛐a lb a s i c 、v i 鲫a lc + + 等) 、使用同样的函数、使用同样的界面网格, 使绝大多数的应用软件只需简单的修改和移植就可以在w i n d o w sc e 平台上继续使 用。 w i n d o w sc e 有着许多嵌入式系统开发人员梦寐以求的特性,如支持蓝牙无线 通信技术、广泛的c i u 选择、对多媒体的普遍支持、使用m 浏览器以及丰富的开 第一章绪论 5 发工具等,同时其开发公司m i 锄脚f t 拥有的强大力量,因此w i n d o 僻c e 已经获 得众多软、硬件厂商的支持,有许多第三方工具可供使用。从1 9 9 6 年微软发布 w i n d o w sc e1 0 版到现在已经更新到5 0 版,并且以其快速的开发流程、灵活的软 硬件选择和强壮的最终产品特性成为越来越多嵌入式产品开发操作系统的首选。 w i n d o w sc e4 2 被简称为w i n c e n i t 系统,是我们在项目中用到的系统版本。 另外,常见的嵌入式操作系统还有v x w o r k s 、s m a np h o n e 、s y m b i 锄、p o c k e t p c 。 它们也在各个领域有着不同的应用。 1 3 课题的提出和研究内容 本系统的设计与开发,是针对导航设备中的显示与控制系统。传统的显控系 统功能单一,人机交互性差,软件不能与p c 机很好的兼容,接口不够丰富,缺少 必要的办公与娱乐软件。 针对这些问题,本课题采用了高性能低功耗嵌入式处理器h l t e lp x a 2 5 5 和通 用嵌入式操作系统w i n d o w s c e n l 叶t ,提出了系统的整体方案,完成了硬件的原理 设计,在x s b 髂e 2 5 5 开发板上进行了操作系统的移植并完成了串口、键盘和触摸 屏等驱动程序的开发。 本系统具有很高的集成度,硬件扩展性强,实现了设备的小型化、整体低功 耗设计。系统使用通用嵌入式操作系统w i n d o w sc e n e ,r ,用户界面友好方便。 1 4 论文结构 本文探讨了p x a 2 5 5 平台下基于嵌入式操作系统w i n c e n e t 的手持导航设备 的开发过程,文章结构如下: 第一章给出课题开发的背景意义和发展现状,阐明课题基本内容。 第二章介绍了嵌入式系统的可移植性和嵌入式操作系统w i l l c e n e t 内核的 特性,包括系统结构、模块化组织、内存管理、设备管理、中断处理以及实时特 性分析等。 第三章介绍了硬件平台的构建原理,各个模块的组织方法。重点对器件的特 性、硬件系统的组成原理进行了介绍。 第四章对基于w i n c e n e t 操作系统在p x a 2 5 5 平台上进行b s p 开发进行了 详细研究,重点分析实现了b s p 包中的启动程序b 0 0 t l o a d e f 和相应其它0 a l 层 程序,初步创建w i n c e n e t 最小内核系统。 第五章研究了在w i n c e n e t 操作系统下的设备驱动开发、测试过程,设计 了串口驱动和键盘驱动并进行了实现。 !薹王w 协d o w s c e n e r 的卫星导航设备显控手柄设计 第六章对已实现的系统进行总结和分析。 第二章- ii n d s c e n e t 操作系统简介 7 第二章w i n d o w s c e n e t 操作系统简介 2 1 系统架构 w i n c e n e t 被设计成为一种分层的结构,如图2 1 所示,从底层向上层分别 为硬件层、o e m 层、操作系统层和应用层。每一层由不同的模块组成,每个模块 又由不同的组件构成。这种层次性的结构试图尽量将硬件和软件、操作系统与应 用程序隔离开,以便于实现系统的移植,便于使硬件、驱动程序、操作系统和应 用程序等开发人员的分工合作【1 1 1 。 r 广1 ii晌d o w s c e 应用程序l 应用层 l - - 一 【 j 丑 三歪巫 r 广1 ii 客户和服务开发 i o e m _ = o ) n ms y s 哪t 砌三s c 腿d ; 重新调度 e i s er c t u ms y s i n i rn o p ; ,不再执行任何操作 c u r l 订s e c 累计了从w i n d o w sc e 启动到当前总共产生了多少个时钟滴嗒。实现 系统时钟后还要实现o e m l d i e 函数,当没有线程准备运行时o e m i d i e 被调用, 0 e m i d l e 函数将c p u 置于空闲模式,但在空闲模式下仍然要累计系统时钟。该部分 还实现了实时时间查询和设置功能定时器的控制。通过调用g e t r l t i m e 函数来查 询当前的时间;调用s e t r l c r i m e 函数设置实时时钟;调用0 e m s e t a 珊t i m e 函数 来设置闹铃时问。 4 4 4 中断服务程序 中断服务程序( 1 l l t e m l p ls e r v i c cr o u t i n c ,i s r ) 是处理目标平台上中断请求 ( h l t c 咖p tr e q u e s t s ,i r q s ) 的程序。i s r 是0 a l 的核心,负责确定中断源、屏蔽 该中断源,并向w i n d o w sc e 内核返回一个唯一的标识号( 1 d ) 以确定哪一个驱动 需要处理事件。w i l l d o w sc e 通过o 础每个中断和l s r 联系起来。当中断发生时, 内核的异常处理程序就会根据中断源调用相应的i s r 。一般i s r 有下列特征1 3 0 j : 执行最小的中断处理,最小的中断处理指能够检验、答复产生中断的硬件, 而把更多的处理工作留给中断服务线程( i n t e m l p t s e r v i c e l l l r e a d ,i s t ) 。 当i s r 完成时向内核返回中断l d ( 中断i d 大部分是预定义的) 。 首先在o a i j n t r - h 中定义了w i n d o w sc e 系统所支持的中断标识号,包括为系统 常用的中断预定义了的中断标识号,如s y s 刑t rs e r h l 、s y s i n r rp o w e r 、 s y s 烈郴t c 等;以及系统板上所支持的其它中断,如s y s i m 限s e r n l 2 ( 串 口2 中断) 和s y s 哪tt o u c h ( 触摸屏中断) 等。 当驱动程序调用1 1 1 t c 删p t i l l i t i a l i z c 、h t e 肌p t d i s a b l e 、i n t e m l p t d o n e 函数时,触 发内核调用0 e m i n t e 丌i l 邮n a b l e 、o e m h l t e m l p t d i 妇b i c 、0 e m i n t e 删p t d o n c 函数。 这3 个函数均需要根据硬件平台进行修改。 o e m i n t e 删d t e n a b i e 兰茎王婴! 垫螋丛翌塑里星量堕堂鱼里墼圭塑堡生 完成允许一个设备产生特定的中断所必需的任何硬件操作。根据设置的中 断标识号进行判断,设置中断优先级、始能g p i o 端口、清除任何未处理中 断源。 0 e m i n t e r n l p t d i s a b l c 关闭响应端口的硬件中断。 o e m i n t e m l p t d o 通知内核中断服务结束,并重新打开中断。 4 4 5 内核i o 内核i ,0 函数通常是指0 e m i o c 0 n t r o l 函数,这是o a l 中必须编写的当驱动程 序或应用程序调用k c 玎l e l i o c o n t r o l 函数时,内核会调用0 e m l 0 c 0 n t r o l ,允许驱动或 应用程序与内核模式的o a i 代码进行通信。 4 5 系统移植的过程 在完成系统b o o t l o a d e r 的开发,o a i 层的设计以后。就需要通过p l a t f o i m b u i l d e r 中要求的配置文件,生成操作系统映像,生成过程主要分成以下4 个部分【刈a 4 5 1c e s y s g e n 这一阶段主要将在生成过程中使用的所有头文件、用于生成d l l 的d e f 文件以 及其它文件挑选出来。该过程将删除没有在系统映像工程中选择的系统部件。这 一过程由s y s g e n 变量来定义。当定制一个新平台完毕后,系统会为这个平台生成一 个c e s y s g c n b a t 文件。p l a t f o 加b u i l d e r 就会根据这个c c s y s g c n b a t 生成所需的文件 系统的生成如图4 8 所示。 在实际的配置过程中,这是一个较长的过程。但在配置中进行成批更改时就 需要这样做。一但确定了系统的配置,通常就不需要对每个生成重复该阶段。所 以,该阶段一般只在确定系统基本配置后进行一次 第四章w i n d w s c e h 唧的移植 完整的头文件 系统特定的头文件 和源代码文件 完整的系统库已链接的库 c e s y s g e n 。 模块定义( ,d e f )特定的d c 玟件 咖s g b a t 4 5 2b s p 阶段( b u i l d e x e ) 图4 - 8 系统生成过程 b s p 阶段将编译和链接图形、窗口和事件自系统( g w e s ) 、内核、0 e m 适配 层以及设备驱动程序等。所有这些部件都非常依赖于目标设备和硬件规格。内核 将链接到0 a l 已生成内核映像。 该阶段使用了一组特殊的文件,这些文件是生成过程的指南,他们确定了需 要编译和链接什么。d l r s 文件用于定义生成系统应当在哪里查找要生成的内容。 s o u r c e s 文件定义了要生成什么和如何生成它。 d i r s 文件的语法非常简单,以平台中d r i v e f s 目录下的d 氓s 文件为例: d i r s = 、 k e y 、 b a t t d r s e f i a l 、 幻f 蛔妒| u s b 、 e z h c d 可以看到,它只是生成系统要扫描的目录列表。在b s p 阶段,将读取d l r s 文件,并扫面该文件中列出的目录内是否有另一个要处理的d i r s 文件或 s o u r a 舔文件。 s o u r c e s 文件用于设置链接器和编译器,并指出在模块的生成时需要的源代 码文件。下面以键盘的驱动为例,说明s o u r c e s 文件的作用。 3 8 基于w m d o w s c e n e t 的卫星导航设备显控手柄设计 t a r g e l n a m e :n 哪k e y p r e p r o c e s s d e f f i i j 巳= l d e f f l l e = n e w k e y d e f d u 。文件的名称 模块函数导出的定义文件 r e u 巳a s e r r p e = p l 如陌d r m t a r g e l l w p e = 们m u n k目标文件的类型,动态链接库 d u 罡n 砥y = d l l m a i nd u 。的入口函数名 岖g 删b s = 、需要链接的函数库 $ ( t a r g f r p l 自积o 删i b 、$ ( c p u 咖删d r v l i b 1 i b $ ( c o m m o n c k 气k r o ( y r ) i b 、$ ( c p u n q d p 棚) 、c e d d k 1 i b 、 $ ( c o m m o n s d k r 0 0 硝i b $ ( c p u 玎p a j l ) 、p o i 弓d 1 1 1 i b s o u r c e u b s = 、编译源文件需要链接的函数库 $ ( 1 觚g e t p i 。加限0 0 硝i b $ ( c p u i n d p a 硼1 l d r v l i b 1 i b i n c l u d e s = 凡i n c ; s o u r c e s = n c w k e y c 4 5 3b u l l d r e l 阶段 头文件所在目录 要编译的源文件 该阶段主要是从各种生成部件那里收集文件,并将它们全部复制到一个平面 发布目录( f i a = 】限e u 粥e d 瓜) 中。来自b s p 的文件和目标文件夹内容被复 制进来,以便连同来自b s p 的f i l 鼯目录中的、特定于b s p 的配置,设置在b s p 阶段中生成模块。使用e 时,将在所有文件已复制到f i 姗e l i 弧s e d 佩之后 再生成p l a t f o m b u i l d e r 项目。 4 5 4m m l m g 阶段 这是生成过程的最后一个阶段。它将所有内容组合到一个二进制映像文件中, 也就是内核映象。它的实现过程分为三个主要的内部阶段。 第一个阶段是将所有不同的配置文件( b i b 、d 舡、r e g ) 合并到对应于每种 类型的一个主文件中。表4 1 列出了这些文件和它们对应的主合并文件。 第四章i n d w s c en e t 的移植 表4 1 系统中的配置文件 原始文件合并后的文件 说明 c o 咖n b i b ,c b 商g h i b , c e - b i b 标识要组合到操作系统映像中的所有 p 叫吼b i b ,p l a 怕册r b 而 w i n d a w sc e 文件。 c o 嗍o n j g p i o j e c t m g r e g i n n i n i 提供操作系统映像的注册表项集合 p l a t 6 0 m r c g c m n 血l ,p 叫c c i d a t ,i n i l o b j d a l提供操作系统映像的目录和文件位置 p l a 怕皿d a t 的说明。 在合并后的第二阶段中,m a l 【e j m g 将处理在u ) c 文件中指定的所有e x e 和d l l 模块,以便替换为生成所指定的当前语言的资源。更新资源之后,m a k e i i n g 将运行r o m i m a g e ,这是第三阶段。该阶段将链接和定位映像中所有就地执行 的代码文件,并为所有其他文件创建r o m 文件系统映像。该文件系统将与r a m 和其他文件系统在w j n d o w sc e 单根文件系统中进行合并。r o m 中的所有文件位 于、w i n d o w s 文件夹中。 r o m h l l a g c 将最终的映像生成为n k b i n ,并且可以选择将其生成为s r e 或 适合直接烧进闪存的绝对二进制映像。s r e 是一种基于a s c i i 十六进制文本的 文件格式,b i n 文件是m i c r o s o f t 特有的格式,类似予s r e 或i i l t d 的髓x 格 式。但是,b 聃文件不使用a s c 十六进制字符,而是使用实际的二进制数据, 因而使映像文件大小减小了大约一半。 4 5 5 平台配置文件介绍 下面简单介绍一下m a l ( e l m g 阶段涉及的四种平台配置文件,他们是用户进行 高级配置时所必须涉及的。 4 5 5 1 二进制映像生成文件( b l b 文件) b i b 文件是文本文件,标识包含在w 砌o w s 旺映像中的目标模块、组件和文 件。一个b i b 文件包含4 个部分: n u 强部分 f 1 u 强定义n k b i n 映像要包含的文件并指定文件如何被加载到内存中。这部 分主要包括字体文件( t r f ) 、文本文件( d c l r ) 、位图文件( b m p ) 以及声音文件 ( w a v ) 等。如下实例: ;n 锄ep a t h m e m o r y t y p e d e s k t o p b m pc :h e i l o b m p n ks h t y p c :定义文件属性。s 为系统文件、h 为隐含文件、u 为非压缩文件、r 为 压缩资源文件、c 为压缩文件。 4 0 基于w i n d o w s a i n e t 的卫星导航设备显控手柄设计 上面的例子表示将p c 机c 盘根目录下的h e i l o b m p 文件包含到n k b 州映像 中,文件名更改为d e s l 【t 叩b m p ,该文件属性是系统隐含文件。 m o d u u 三s 部分 m o d u u 强定义映像要包含的模块并指定模块如何被加载到内存中。看下面 实例: m o d u l e s c e s y s g e ni fa t m o d u u 三s - p 0 矾n r t o u c h d l l $ ( f i j r e l l a s e d i r ) 、t o u c h m l n ks h c e s y s g e ne n d i fc e _ m o d u ie sp o 咖r 这个例子说明如果定义c em o d u u 落- p o i n t e r 变量,那么r e l e a 目录下的 t o u c h d i l 就将作为一个模块被包含到映像中。这部分经常要进行修改,因为具体包 含多少个驱动程序模块,就是在这部分定义的。 m e m o r y 部分 该部分显示平台的内存信息,定义了平台的内存空间,并把物理内存空间划 分为数据存储内存区和程序存储区。例如: ;n 姗c s t a na d d r e s s s i z e ( b y t c s )t y p e n k8 0 0 8 8 0 0 00 2 0 0 0 0 0 0r a m i m a g e r a m8 2 0 8 8 0 0 00 1 0 0 0 0 0 0r a m 在w i n d o w sc e 系统中,内存分成3 种类型:r a m 、r a m i m a g e 和r e s e i w e d 。 r a m 规定内存大小,供程序运行时使用,整个区域必须是连续的;r a m i m a g e 规定r o m 空间,专用于保存映像文件( 每个b i n 中只能指定一个r a m i m a g e ) ; r e s e r v l 刃为保留的内存空问,内核不能使用这部分内存,但是应用程序可以访 问。上例说明n k b i n 映像文件的起始地址是o ) 【8 0 0 8 8 0 0 0 ,它占有3 2 m b 内存空间, 作为r o m 用于数据存储区。r a m 在0 x 8 2 0 8 8 0 0 0 开始,占有2 8 m b 的内存空间,用 于程序存储区。 c o n f i g 部分 这部分主要是用来设置控制一些生成的映像文件的属性:比如是否压缩和 r o m 大小设置等。一般没有特别的需要,不需要去特别设置它。 p l a t f o 咖b l b 文件是由我们自己创建的,它属于b s p 的一部分。这个文件主要 包含的就是与平台相关的所有组件的控制,比如各个驱动模块,一般由m o d u l e s 构成,也可以含有f l u 强。 c 【m f j 2 b l b 也是我们自己创建的b i b 文件,其功能就是做平台的空间配置和映 像文件的属性定义,所以,它是唯一一个含有m e m o r y 和c o n f i g 的b m 文件。 p r o i e c t b i b 是我们在创建平台时为这个平台设立的一个b i b 文件。它是用来列 举创建这个项目时所需要包含的文件名字。当我们希望用同一个b s p 来创建两个平 第四章i n d o _ s c e n e t 的移植 4 1 台,一个平台功能较少,另一个平台则包含0 e m 商自己添加的文件或者应用程序, 可以通过修改p r o j c c t b m 文件来完成不同项目的不同内容的目的。 从上面对这些b i b 文件的分析可以看到,我们主要修改的就是p l a t f o 珊b i b , c o n f i g b m ,p 叫c c t b i b 这三个文件。 4 5 5 2 注册表文件 注册表文件和桌面版的w i n d o w s 一样,w i n c e n l t 的启动和运行与注册表紧 密联系,是整个系统的根本。注册表是一个数据,存储了大量的配置信息,包括 应用程序信息、设备驱动程序的配置、系统配置信息、用户参数和其它相关数据。 在定制w i n d o w sc e 系统时,会需要很多个注册表文件来描述默认的w i n d o w s 注册 表设置。当目标平台冷启动时,m a k e j m 晷c x e 使用r e g 文件创建默认注册表, p r o j e c t r e g 设置与工程有关的注册表格。在众多的注册表中,需要关注的则是两 个注册表文件;p l a t f o 咖r e g 和c o m m 哪r e g 。 p l a t f o m r e g 是设置平台信息的注册表文件,驱动模块的注册表信息全部在这 个文件中。 c o m m 伽r e g 注册表描述的是c e 除了与平台相关以外的所有组件的默认配置 信息,它是创建平台时,由p b 生成的。一般不需要更改其信息,但是如果希望系 统具备某些新的功能时就需要更改一些信息了。下面是c o m m o n r e g 文件的部分 内容: 【h k e y l o c a lm a c h n i e i n i t 】 ”i 且u n d l l 0 ”= ”s h e l l e x e ” i fi m g ,n n y ! ”l a u n c h 2 0 竹= ”d e v i c c e x e ” i fn o g u i ! ”l a u n c l l 3 0 ”= ”g w e s c x e ” ”d 印e n d 3 0 ”= h e x :1 4 ,0 0 e n d i f 上面这段配置代码,描述了在键值【h k e y r _ i d c 过m a c h i n 研n i t 】下的内容, 启动c e ,并用远程注册表监控软件,就可以看到这些注册表值。该注册表入口设 置规定内核在启动时必须自动运行s h e u e x e 和d e v j 阮e x e 模块,g w e s e x e 模块必须在 d c v i c e e x e 正常启动以后才能运行。 4 2 基于w i n d o w s c e n l 玎的卫星导航设备显控手柄设计 4 5 5 3 目录分配表文件 d | a t 文件定义w i n d o v 噶c e 映像文件默认的目录和文件结构。注意,w i n d o w s c e 不支持像w i n d o w s9 】【,2 0 0 0 一样的盘符驱动器,而且没有当前目录的概念。对 于d a t 文件,需要关注的通常只是p 删c c t d a t 文件,借助于这个文件,可以创建 需要的目录,而不仅仅只是c e 默认的那些目录。并且通过这个文件,可以实现c e 启动就加载特定的应用程序的要求,达到和前面修改注册表文件启动应用程序同 样的效果。 创建目录如下: r o o t :- d i r e c t o r y r p r o g m mf i l 骼”) d i r 。c t o r y ( ”p r o 驴mf i l e s ”) :一d i r 鳅o f “”m yp r o j e c t s ”) r o o t :d i f c c t o r y ( 竹m yd o c u m 蛐t s “) d i r e c t o r y ( ”m yd 0 c u m e n t s ”) :一f i l e ( ”m y f i l e d o c ”) 生成2 个根目录:p r o 伊a mf i l e s 和m yd d c l 蚰e n t s 。p r o 掣a mf i l e s 有1 个子目录m y p r o j e c t s 。文件m y f i l e d o c 位于m yd o c i i m e n t s 目录中。注意m y f n e d o c 必须出现在一 个b i b 文件中,这样,映像文件中会有m v f i l e d o c 。 我们还可以这样实现自动启动m y a p p e x e 程序: 首先创建一个快捷方式文件m y a p p 1 n k ,内容为1 8 # w i n d a w 她i y a p p c x e ( 其 中1 8 表示静号后面的a s c 的字符数日) ,表示这是指向文件m y a p p c x e 的快捷方式。 然后将这个快捷方式放入c e 系统的自启项目里,这里就要修改文件 p r o j e d 玎 d i 删。畎”w i n d o w s h s e r i a l e v e 咄玳f m r r e ) ,等待事件h s e r i a l e v e m 处于有信号 状态,实际的工作交给s e r i a l e v 锄t h a l l d j e r 函数来完成。 s e r i a l e v e n t h 锄d l c f 函数是整个驱动程序的核心部分。因为驱动程序中取得的 数据有可能不被应用程序在一次操作中完全读取,所以在该部分设计了一个循环 队列的数据结构,用来充当应用程序与驱动程序间的缓冲区,如图5 3 所示。其中, l h c l l a r b u f f e r 指示缓冲区起始位置,r x r h d e x 指示读数据起始位置,r x w h d c x 指示写数据起始位置。s e f i a l e v e n t h a

温馨提示

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

评论

0/150

提交评论