




已阅读5页,还剩71页未读, 继续免费阅读
(信号与信息处理专业论文)pxa255平台创建windows+ce50的bsp.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
太原理工大学硕士研究生学位论文 i pxa255 平台创建平台创建 windows ce5.0 的的 bsp 摘 要 21 世纪的今天,嵌入式系统已经广泛渗透到人们生活的各个方面。在 工业、国防、医疗、消费电子以及网络通信等领域都有越来越广泛的应用。 windows ce 是微软公司推出的一个功能强大的实时嵌入式操作系统,已经 成为工控和手持设备等嵌入式系统首选的操作系统之一。而 bsp 的开发是 windows ce 系统实际开发中最基本、最重要的环节。 本论文完成了基于 pxa255 处理器 windows ce5.0 的 bsp 开发。采用 作者实验室自主设计的 pxa255+tms320dm642 开发板,目前尚未有任何 公司提供针对此硬件平台的 windows ce5.0 bsp, 因此需要设计支持当前开 发板的 bsp。 本论文从零开始实现了 bsp 开发的整个流程。论文首先介绍课题研究 的相关知识,包括 windows ce 操作系统、bsp 以及硬件平台。为实现 windows ce5.0 的 bsp 开发,论文采用 windows ce platform builder5.0 开 发平台。首先在 pc 机上搭建基于硬件平台的开发环境,并且根据硬件对开 发环境进行了配置。之后又独立实现平台在 windows ce5.0 下的汇编引导 部分,其中包括添加各种头文件以及与编译密切相关的文件。并且实现汇 编引导代码在 bootloader 和 oal 之间的共享, 对相关的寄存器进行了设置。 在汇编引导的基础上进一步完成主引导代码的开发,实现了从 nor flash 直 接启动或从 cf 卡以及网络下载启动内核,最后通过串口打印进行了 bootloader 的验证工作。 太原理工大学硕士研究生学位论文 ii 本论文在实现一个稳定工作的 bootloader 程序基础上进行 oal 层的开 发。完成了 oal 层最小内核的开发,编译出可以在开发板运行的内核 nk.nb0 和 nk.bin,并实现了 oal 层的串口调试功能。最后对 bsp 进行了 功能完善, 通过 sm501 显示控制器驱动 crt 显示器实现了系统的图形用户 界面及图形显示的加速功能,建立了基于 hive 的注册表功能。 最终实现了 pxa255 处理器 windows ce5.0 的 bsp 开发。 关键词:pxa255 处理器,windows ce5.0,bsp,sm501 太原理工大学硕士研究生学位论文 iii the establishment of windows ce5.0 bsp on the platform of pxa255 abstract nowadays, embedded system has been widely applied in every aspect of peoples lives. it is applied more and more such as in the fields of industry, military, medical treatment, consumer electronics and internet communication. windows ce is a powerful real-time embedded operating system released by microsoft, it has became one of the main operating systems used in the embedded system such as industrial and handheld devices. in the development of windows ce system, the development of bsp is the most fundamental and important section. the paper completes the development of windows ce5.0 bsp on the pxa255 processor. the paper chooses the pxa255+tms320dm642 board which is designed by the authors laboratory, there are no company could provide the corresponding bsp, so the bsp design to support the board is needed. the paper realizes the entire bsp development from scratch step by step. first of all, the paper introduces the basic knowledge including the windows ce operating system, bsp and hardware platform. then it uses windows ce 太原理工大学硕士研究生学位论文 iv platform builder5.0 to realize the windows ce5.0 bsp development. the paper builds the development environment and set it according the hardware. then realizes the assemble boot section, add the header files and the files related with compiler, finish the codes are shared between oal and bootloader, set the relevant register. on the basis of assemble loader, the paper finish the mainboot including the launch in nor flash or load kernel from cf card or network and the verification by serial port print. after achieving a stable bootloader, the paper finish the development of minimum kernel on the oal layer and build the kernel nk.nb0 and nk.bin which can run on the board by the debugging of serial port. finally, the paper perfects the bsp, it realizes the graphical user interface system which using the sm501 display controller drives a crt display and finish the graphical display acceleration. it establishes the hive-based registry in the bsp. at last the paper realizes the windows ce5.0 bsp development of the pxa255 processor. key words:pxa255 processor,windows ce5.0,bsp,sm501 声 明 本人郑重声明:所呈交的学位论文,是本人在指导教师的指导下,独立 进行研究所取得的成果。除文中已经注明引用的内容外,本论文不包含其他个 人或集体己经发表或撰写过的科研成果。 对本文的研究做出重要贡献的个人和 集体,均己在文中以明确方式标明。本声明的法律责任由本人承担。 论文作者签名: 日期: 关于学位论文使用权的说明 本人完全了解太原理工大学有关保管、使用学位论文的规定,其中包括: 1学校有权保管、并向有关部门送交学位论文的原件与复印件;2学校可以采 用影印、缩印或其它子复制手段复制并保存学位论文; 3学校可允许学位论文 被查阅或借阅; 4学校可以学术交流为目的,复制赠送和交换学位论文;5学 校可以公布学位论文的全部或部分内容 (保密学位论文在解密后遵守此规定) 。 签 名: 日期: 导师签名: 日期: 太原理工大学硕士研究生学位论文 1 前 言 1 本课题研究的背景和意义 进入 21 世纪后,在全球新一轮汽车、通信、信息电器、医疗、军事等行业的巨大 智能化装备市场需求下,嵌入式软件及系统产业得到快速发展。嵌入式系统产品市场已 经无处不在,市场规模接近通用系统的数倍且增长速度强劲。其应用包括机顶盒、音视 频接收设备、mp4、数码相机、工业控制和汽车电子等各个领域1。嵌入式技术、互联 网技术和个人计算以及高性能计算一起构建起后 pc 时代中“计算无处不在”的蓝图。 嵌入式操作系统是嵌入式系统的核心,是连接嵌入式设备和应用的重要部件。它一 方面要支持各种功能及规格的硬件设备, 另一方面为各种应用程序提供一致的功能调用 接口。嵌入式操作系统针对不同的应用要求具有灵活的可裁剪性,以突出不同的性能品 质。例如,在军事和工业领域中对系统的稳定性和实时性提出挑战;而在娱乐领域中又 强调功能的多样性和方便性。 目前,已有不少大的嵌入式处理器开发公司如英特尔、三星、高通、德州仪器都着 力于研制高性能且集合强大多媒体功能的嵌入式处理器。 windows ce 是微软公司推出的一个功能强大的实时嵌入式操作系统。windows ce 具有组件化、可定制性、与 windows 平台兼容等特性,在商业开发方面的优势早就已 经表现出来。 windows ce 操作系统基于模块和组件的结构化设计具有高度的可伸缩性, 它允许用户在设计自己的操作系统时自由选择需要的模块或组件。 这样系统开发者就能 够方便地根据具体的硬件要求定制出合适的操作系统, 使其中仅包含设备运行所必须的 功能模块。 windows ce 的 bsp(board support package,板级支持包)是一个为了使操作系 统在标准开发板上正常运行而提供支持的软件实现。 它不仅包括设备驱动程序的抽象结 构代码,也包括具体硬件设备提供的底层硬件代码。bsp 通常是由嵌入式系统开发平台 供应商提供的针对标准硬件板的支持库。bsp 的支持使各个 oem(原始设备制造商) 厂商和独立硬件开发商可以缩短基于 windows ce 平台产品的开发周期。 windows ce 是一个部分公开源代码的嵌入式操作系统。为方便的将 windows ce 转向一个新的硬件平台, 微软公司为 windows ce 提供了一整套平台开发工具: microsoft 太原理工大学硕士研究生学位论文 2 windows ce platform builder。它是一个完整的 ide 平台,使开发人员能够以快捷灵活 的方式创建 bsp。 platform builder 工具以库形式提供操作系统内核模块, platform builder 工具包提供了适合一部分处理器的 bsp 源代码, 包括用于 oal (oem adaptation layer, oem 适配层)即原始设备制造商适配层的源代码和各种驱动源代码。windows ce5.0 为开发人员提供了基于 platform builder5.0 平台的构建、调试和定制设备所需的一切特 性。 pxa255 微处理器是 intel 公司推出的采用 intel xscale 内核的微处理器,是一款全 性能、高性价比、低功耗且基于 armv5te 体系结构的解决方案。它支持 16 位 thumb 指令和 dsp 扩充,频率高达 400mhz 的 32 位 risc 微处理器。它将多种外设功能集合 于芯片内部(如 lcd,usb,irda,ac97 等) 。提供七级超流水线结构和更快的处理 速度以及独特的电源管理能力。 本设计的硬件平台是基于 arm+dsp 的双处理器平台,旨在实现强大的多媒体功 能, 适应当前社会对高性能多媒体设备的需求。 具体采用 pxa255+tms320dm642 的硬 件平台,选用 intel 公司的 xscale 系列处理器 pxa255 作为嵌入式处理器,ti 的 dsp 处 理器 dm642 作为音视频处理器, 并采用高性能的显示控制器 sm501 作为协处理器实现 图形化操作系统界面和强大的音/视频处理。 本论文采用作者实验室自主设计的开发板, 目前尚未有任何公司提供针对本论文硬 件平台的 windows ce5.0 bsp,因此需要设计支持当前开发板的 bsp。本论文没有采用 移植或克隆等常规的 bsp 开发方法,而是从零开始一步步实现 bsp 开发的整个流程, 这是一个富有挑战且很有意义的课题。 2 论文完成的工作 本论文基于 pxa255 处理器在 windows ce platform builder5.0 开发平台上完成了 windows ce5.0 bsp 的开发。主要包括以下工作: 1. 根据设计目标在 pc 机上搭建出针对硬件平台 windows ce5.0 的开发环境, 并对 开发环境进行配置。 2. 独立编写了 windows ce5.0 下的 bootloader 程序,实现了从 nor flash 直接启动 或从 cf 卡以及网络下载启动内核,并通过串口打印进行验证工作。 3. 完成 oal 层的开发。独立实现最小内核的开发,编译出可以在开发板运行的内 太原理工大学硕士研究生学位论文 3 核 nk.nb0 和 nk.bin,并实现了 oal 层的串口调试功能。 4. 在最小内核的基础上丰富了 bsp 的功能。通过 sm501 显示控制器驱动 crt 显 示器实现了系统的图形用户界面及图形显示的加速功能,并在平台上实现了基于 hive 的注册表。 3 论文的组织 全文分为五章,第一章是关于课题研究的基础知识,包括 windows ce 操作系统、 bsp 以及硬件平台的介绍。第二章是开发环境的建立,包括平台搭建以及针对硬件的平 台配置。第三章介绍平台 bootloader 程序的实现,包括串口打印和多种内核启动方式的 实现以及验证。第四章是 oal 层的开发,包括最小内核和串口调试功能的实现。第五 章是对 bsp 功能的丰富, 包括实现用 sm501 显示控制器驱动 crt 显示器及图形显示的 加速功能,并实现在平台上使用基于 hive 的注册表。最后在第六章对本论文的工作进 行总结,提出本设计的可改进之处,并对今后从事 windows ce 操作系统的 bsp 开发与 应用提出展望。 太原理工大学硕士研究生学位论文 4 第一章 windows ce 及硬件平台 1.1 windows ce 操作系统 嵌入式系统是以应用为中心,以计算机技术为基础、软硬件均可裁剪、适应应用系 统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。其发展已有近三十 年的历史,国际上也出现了一些著名的嵌入式操作系统如 vxworks、palm os、linux、 symbian 等等,而 windows ce 操作系统因为应用程序开发商多、功能强大,而且与 pc 甚至互联网的互动性强等优点,逐步成为嵌入式操作系统的有力竞争者。 1.1.1 windows ce 发展历程 微软在 1996 年发布了 windows ce1.0。它的外观很像 windows 95,这样做的最大 益处是用户看到了一个熟悉的界面从而容易接受。 windows ce 是微软公司嵌入式、移动计算平台的基础。它是一个开放的、可升级 的 32 位嵌入式操作系统, 是基于掌上型电脑类的电子设备操作系统, 是精简的 windows 95, 它的图形用户界面相当出色。 其中 ce 中的 c 代表袖珍 (compact) 、 消费 (consumer) 、 通信能力(connectivity)和伴侣(companion) ;e 代表电子产品(electronics)2。 与 windows 95/98、windows nt 不同,windows ce 是所有源代码全部由微软自行 开发的嵌入式新型操作系统,其操作界面虽来源于 windows 95/98,但 windows ce 是 基于 win32 api 重新开发、新型的信息设备的平台。windows ce 具有模块化、结构化 和基于 win32 应用程序接口和与处理器无关等特点。windows ce 不仅继承了传统的 windows 图形界面,并且在 windows ce 平台上可以使用 windows 95/98 上的编程工具 (如 visual basic、visual c+等) 、使用同样的函数、使用同样的界面风格,使绝大多 数的应用软件只需简单的修改和移植就可以在 windows ce 平台上继续使用。 windows ce 不是只可以在手持设备、电池供电设备上运行的嵌入式操作系统。事 实上 windows ce 具有强大的电源管理能力, 可以在 windows mobile 设备上运行,还 可以运行于工业控制系统、医疗监控设备、机器人、销售设备零售点以及其它很多嵌入 式操作系统中。windows ce 支持低于 10 微秒的中断延迟,对中断的响应远远优于其它 实时嵌入式系统。 太原理工大学硕士研究生学位论文 5 自 3.0 以后, windows ce 从版本上来看主要有 4.0、 4.2、 5.0 和 6.0。 windows ce5.0 在 2004 年 5 月份推出,微软宣布 windows ce5.0 扩大开放程序源代码。在这个开放源 代码计划授权下,微软开放 250 万行源代码程序作为评估套件(evaluation kit) 。凡是 个人、厂商都可以下载这些源代码加以修改使用,未来厂商 oem 时再根据执行时期 (run-time)授权,支付 windows ce5.0 每台机器 3 美元的授权费用,这也是微软第一个 提供商业用途衍生授权的操作系统。 1.1.2 windows ce 系统简介 windows ce 被设计成为一种分层结构,如图 1-1 所示从底层向上分别为硬件层、 oem 层、操作系统层和应用层。每一层分别由不同的模块组成,每个模块又有不同的 组件构成。这种层次性的结构试图尽量将硬件和软件、操作系统与应用程序隔离开,以 便于实现系统的移植,便于进行硬件、驱动程序、操作系统和应用程序等开发的人员分 工合作及并行开发3。 windows ce的框架 internet客户服务 客户应用程序 windows ce应用程序 用户接口 国际化 应用层 对象存储 core dll 客户和服务开发 操作系统层 多媒体 技术 图形窗口和 事件子系统 通信服务 和网络 设备管 理器 配置文件启动加载程序 oal 核心 驱动程序 oem 硬件层 图 1-1 windows ce 的架构 figure1-1 window ce architecture 硬件层是指由 cpu、存储器、i/o 端口、扩展板卡等组成的嵌入式硬件系统,是 太原理工大学硕士研究生学位论文 6 windows ce 操作系统必不可少的载体。 oem 层是嵌入式硬件与 windows ce 操作系统的接合层。windows ce 操作系统在 特定硬件上运行的首要前提是硬件必须能够加载 windows ce 操作系统,同时操作系统 能够实现对硬件系统的初始化并驱动这些硬件。oem 层主要由下列模块组成:oal、 启动加载程序(bootloader) 、配置文件、驱动程序。 操作系统层是 windows ce 操作系统的核心层,它既为下层 oem 层提供接口和服 务,也为上层的应用程序提供服务与应用程序编程接口。操作系统由下列模块组成: 1.核心。 核心是指windows ce操作系统的最小定制内核, 它为任何基于windows ce 的设备提供处理器调度、内存管理、异常处理及系统内通信等系统功能,并为应用程序 使用这些核心功能提供内核服务。windows ce 操作系统包含很多不同的文件,每个文 件都为操作系统提供不同的功能和服务,但只有 nk.exe 是 windows ce 操作系统的内 核。nk.exe 始终运行在较高的优先级和处理器优先级上,除中断例程外,一般不允许 操作系统内的其他线程抢占它的运行。windows ce5.0 的最小内核约为 250kb。 2.core dll。 core dll 模块是最基本的操作系统模块, 它为其他模块提供核心功能。 所有的操作系统定制设计都必须包含这个模块, 但并不是这个模块的所有组件都是必需 的。绝大多数情况下 core dll 并不完成实际操作,只是作为应用层与操作系统层的一 个桥梁。 3.对象存储模块。对象存储是 windows ce 为应用程序及其相关数据提供的存储方 式,即使在关闭系统主电源只有后备电源的情况下,对象存储也能保证数据不会丢失。 通常非易失的 ram 芯片构成了物理的对象存储。 4.多媒体技术模块。 5.图形窗口和事件系统模块(gwes) 。包含大部分的核心 windows ce 功能,集成 了图形设备接口(gdi) 、窗口管理器和事件管理器。由 gdi 和 user 两部分组成,gdi 负责处理图形的屏幕和打印输出等,user 负责处理消息、事件及鼠标和键盘等的用户 输入。 6.设备管理器模块。 运行在 windows ce 操作系统下体现为 device.exe 的一个进程, 它提供加载基本设备列表管理、即插即用管理、i/o 资源分配管理及驱动的加载、卸载 和跟踪已经加载的驱动及其接口等。它由内核加载并连续运行,一旦运行就永不卸载。 7.通信服务与网络模块。 太原理工大学硕士研究生学位论文 7 8.应用和服务开发模块。 应用层主要包括以下模块:windows ce 应用程序、internet 客户服务、用户接口、 客户应用程序。 windows ce 操作系统除了系统架构这一特征,还包含文件系统、内存管理、系统 调度等 3 个核心特征。 1.1.2.1 文件系统 windows ce 的文件系统和数据存储都指的是对象存储,对象存储是 windows ce 的默认文件系统,它相当于 windows ce 设备上的硬盘。对象存储是由共享一个内存堆 的文件系统、数据库和注册表组成,即使没有系统主电源对象存储也能维持应用程序及 其相关数据不会丢失。对象存储是最大可以达到 256mb、可压缩、非易失的 ram 存储 器,它将存储在 rom 中的只读文件与应用程序和用户的读/写文件巧妙地集成到一起。 从用户角度看存储在对象存储 ram 里的文件和存储在 rom 里的文件没有任何差别, 二者可以共存于同一目录下, 用户也可以打开 rom 里的文件。 除对象存储外, windows ce 还支持多达 256 个不同存储设备或存储设备上分区的多个可安装文件系统。 操作系统使用对象存储完成下列任务:1.管理栈和内存堆 2.必要时压缩和展开文件 3.无缝地集成基于 rom 的应用程序和基于 ram 的数据。 windows ce 的内部文件系统控制对 rom 的访问, 也提供对位于 ram 中的对象存 储里的文件存储, 有两种可用的文件系统: ram 和 rom 文件系统以及 rom 文件系统, 它们分别具有不同的属性。开发者需要为自己的目标设备选择合理的文件系统,这两种 文件系统都具有安装其它外部文件系统(如 fat 文件系统)的能力。 数据库提供了对属性记录集的存储、访问和分类。windows ce 的默认数据库是 cedb(windows ce database)数据库,同时 windows ce 也包含对 edb(embedded database)数据库的支持,edb 数据库可以进一步加强 cedb 的功能。windows ce 数 据库 cedb 模型是一个小型的、扁平的结构,优化了小型的、有效的存储。因此 cedb 数据库没有对应的 win32 api,windows ce 有自己的一套完整数据库 api。数据操作是 在对象存储和数据库卷内进行的交易,它会保护数据防止数据丢失。如果基于 windows ce 的设备在数据交易期间出现了断电,在系统恢复供电时 windows ce 会回滚所有不 完整的数据库操作到操作前的完好状态。 windows ce 注册表是一个系统数据库,用来存储关于应用程序、驱动程序、用户 太原理工大学硕士研究生学位论文 8 设置和其他配置的数据。windows ce 的注册表要么是基于 ram 的注册表,要么是基 于蜂窝(hive-based)的注册表。 windows ce 文件系统和所有与文件相关的操作都是通过 filesys.exe 进程进行管理 的,通常将它成为文件管理器。文件管理器实现了对象存储和存储管理,并将所有文件 系统统一到一个根“”下面的单个系统中。 1.1.2.2 内存管理 windows ce 是一个保护模式的 32 位操作系统,支持一个 32 位线性访问的地址空 间。与其他桌面 windows 操作系统相比,windows ce 操作系统运行所需要的实际物理 内存要少得多。由于 windows ce 嵌入式实时性的特点,windows ce 提供完备的内存 管理功能,几乎实现了 windows xp 下所有可用的 win32 内存管理 api,并支持虚拟内 存分配、本地堆和栈、内存映射文件等。在 windows ce 下,ram 被分成对象存储和 程序内存两块区域。 windows ce 是一个保护模式的操作系统。因此程序的访问只能使用虚拟内存。 windows ce 对整个系统实现了一个线性的 32 位(即 4gb)的虚拟地址空间,在系统启 动时创建并由mmu进行管理。 windows ce提供的4gb的虚拟地址空间被分为2个2gb 的区域,其中 2gb 为内核空间,2gb 为用户空间。内核空间是专门为内核使用而保留 的,只能由具有 kmode 优先权的线程访问;而用户空间是为运行用户应用程序准备的, 可以由除进程空间保护限制的所有线程访问。用户空间被分为 64 个 32mb 的 slot,其 中 slot1slot32 保留给要加载的每一个进程, windows ce 系统最多同时可以运行 32 个进程4,每个进程将占有一个 slot,一个线程只能访问属于自己进程空间内的地址。 而 slot0 是一个特殊的 slot,当前正在运行的进程总是被映射到 slot0。 1.1.2.3 系统调度 windows ce 是一个抢占式实时多任务的操作系统,抢占多任务又称为调度。在调 度过程中,内核维护一个当前操作系统所有线程的优先级列表。每个进程可能包含多个 线程,而每一个线程都是一个可执行单元。调度系统控制这些执行单元的执行顺序,并 允许它们相互之间以可预测的方式交换数据。当中断发生时,调度系统重新排列所有现 程的优先级。windows ce 每个运行的应用程序都是一个进程,每个进程又可能包含多 个线程,线程优先级、优先级的倒置处理、中断支持、定时与调度等使 windows ce 为 时间关键性任务提供实时支持。 太原理工大学硕士研究生学位论文 9 有多种方式可以启动一个进程,第一种方法是系统启动时由系统自动加载,如 nk.exe 可通过相应的注册表设置来实现;第二种方式是在系统启动后,通过操作键盘 或鼠标进行可视加载,这是运行用户应用程序进程的常见方式;第三种方式是一种隐式 加载方式,即通过一个正在运行的进程加载启动另一个进程。 1.1.3 windows ce 系统上的开发者分类 对于 windows ce 嵌入式操作系统的开发者,通常可以分为以下几种: 处理器制造商。提供一些处理器相关的 csp(处理器支持库) 。这一部分代码基本已 经存在于 windows ce 中,windows ce 会提供相应的库文件,硬件平台供应商只需要 作相应的处理器初始化和库链接工作。 外设制造商。针对操作系统提供对应的设备驱动程序,在驱动程序里提供各操作系 统下对标准器件进行操作的标准函数接口,方便使用该设备的硬件平台供应商使用。 嵌入式系统标准硬件平台供应商。提供针对标准硬件板和 windows ce 系统开发 bsp, 他需要依靠处理器制造商提供的 csp 库和各种外设制造商提供的外设驱动程序进 行 bsp 开发。 应用层软件开发工程师。由于硬件平台供应商提供的 bsp 可以理解为硬件抽象层, 它能够向操作系统提供对硬件的抽象, 并提供统一的接口把具体的硬件设备驱动隐藏起 来。因此应用层软件开发工程师只需要专注于程序的开发而不用关心具体的硬件层,必 要时只需要调用 bsp 提供给应用层的标准函数接口。 本论文采用的开发板是作者实验室自主开发的, 作者相当于嵌入式系统标准硬件平 台供应商的身份。 需要在 windows ce 提供的 csp 库和外设制造商提供的各种驱动程序 的基础上建立针对当前开发板的 bsp。 1.2 bsp 的介绍 bsp 技术一般来说是针对某个特定的嵌入式开发板, 由嵌入式系统开发平台供应商 提供的针对标准硬件板各种驱动的支持库。 1.2.1 bsp 简介 为了使操作系统能够支持多样的硬件环境,具备良好的可移植性,并且能在不同的 处理器和外设环境下工作需要 bsp 的支持。bsp 可以理解为硬件抽象层,它能够向操 作系统提供对硬件的抽象,并提供统一的接口把具体的硬件设备驱动隐藏起来。对具有 太原理工大学硕士研究生学位论文 10 同样功能的不同芯片, 利用 bsp 提供的硬件抽象, 操作系统就可以用同样的接口对这些 设备进行操作。 bsp 是一种软件模板。它不仅包括设备驱动程序的抽象结构代码,也包括具体硬件 设备提供的底层硬件代码。bsp 的支持使各个 oem 厂商和独立硬件开发商可以缩短基 于 windows ce 平台产品的开发周期5。 在嵌入式领域对 bsp 大致有三种不同的理解,它们分别代表了 bsp 功能的三个方 面或系统开发者的三个层次: 1)操作系统的驱动程序。因为嵌入式系统中的设备种类繁多,bsp 为操作系统提 供面向这些设备的统一接口,使操作系统有一定程度的硬件独立性。 2)驱动程序。认为 bsp 是驱动程序的人通常接触的是嵌入式操作系统提供商提供 的针对某种应用解决方案提供的应用系统。在这种开发系统中,开发人员没必要自己开 发驱动程序, 只需要关心驱动程序是否可以正确使用, 所以 bsp 完全有理由被认为就是 驱动程序。 3)硬件抽象层(hardware abstract layer,即 hal)。开发嵌入式操作系统的工程师 倾向于将 bsp 看成是对硬件平台的抽象层和处理器的驱动程序。 传统嵌入式系统位于硬件物理层之上的首先是最底层的系统引导程序 bootloader; 板级支持包既可以直接与底层的硬件设备建立联系(如 cpu、cache、控制总线、存储 器、各种 i/o 口等等) ;又可以通过 bootloaderr 与设备驱动接口和硬件物理层建立间接 的联系。但随着 bootloader、bsp、设备驱动的界限越来越模糊、交叉功能越来越多, bootloader、bsp、设备驱动己经渐渐融合成为一个整体统一称为 bsp,这也就是本论文 将要设计实现的 bsp。 1.2.2 windows ce 的 bsp 架构 windows ce 的 bsp 是一个为了使操作系统在标准开发板上正常运行而提供支持 的软件实现。一个典型 windows ce bsp 包括 bootloader、oal、设备驱动以及系统镜 像的配置文件四部分6。bsp 的每个组成部分在整个系统中都扮演着重要角色。 对于 windows ce 操作系统, windows ce 的 bsp 中各模块之间的关系可以用图 1-2 表示。 在 sdb(standard development board, 标准开发板)之上就是 windows ce 的板级支 持包。在板级支持包中 bootloader 是相对独立的一部分,它负责将内核镜像加载到指定 的内存空间,然后运行内核镜像。oal 链接内核镜像并负责对硬件的初始化和管理。 太原理工大学硕士研究生学位论文 11 驱动就是开发板上外围设备的驱动程序,支持板上外围设备的各种访问。这里的配置文 件是指用于 bsp 配置的环境变量以及 bsp 中的.bib 和.reg 等文件7。由此可知 oal 与 设备驱动以及配置文件有着紧密的联系的。 硬件适配层 (oal) 设备驱动程序 系统配置文件 bootloader 标准开发板(sdb) 板级支持包(bsp) 图 1-2 window ce bsp 结构 figure1-2 the architecture of window ce bsp 1.2.3 bsp 开发流程 尽管 arm 在内核上兼容,但不同型号的芯片都有自己的特点。即使是同一款处理 器,不同的外围硬件也会导致 bsp 的不同。 bsp 开发在 windows ce 整个产品的开发时间上占很大比例。为做到跨平台时能够 尽可能重用代码,windows ce 提供了一整套平台开发工具:microsoft windows ce platform builder。它是一个完整的 ide,开发人员利用它能够快捷灵活的创建 bsp。 开发 windows ce bsp 通常有以下途径: 在已有的 bsp 基础上通过向导克隆一个具 有最基本功能的 bsp,然后在此基础上进行开发;或者从一个具有类似硬件环境的 bsp 开始移植; 还可以从硬件平台的一个较低版本移植到当前版本等方法来缩短 bsp 的开发 时间。 本论文的 bsp 没有采用上面的方法, 而是从零开始通过向导建立一个全新的 bsp 工程,再参考 ce5.0 帮助文档一步步完成 bsp 的开发。 bsp 开发主要是围绕它所包含的四个模块进行。本论文的 bsp 开发首先搭建开发 环境,通过向导生成硬件平台的.cec 文件;再依次进行 bootloader、oal 及驱动的开发; 最后进行系统配置和组件的丰富和完善。 太原理工大学硕士研究生学位论文 12 1.3 硬件平台 本论文采用的硬件平台是一款基于 arm+dsp 的双处理器嵌入式平台。 分别采用了 pxa255 和 tms320dm642 这两款芯片,并通过高分辨率的后端显示控制器 sm501 输 出至显示器。 1.3.1 硬件平台的整体结构 开发板以 pxa255 处理器为核心,通过 hpi 总线与 dm642 进行通信,在操作系统 层中,通过 hpi 驱动程序与 dsp 进行互联,并且为上层的应用留出接口。pxa255 把 dsp 处理的数据通过 sm501 本地回放或通过网络进行传输。 arm 端采用 pxa255 处理器对整个系统资源进行管理,除了集成在 pxa255 片内 的串口、红外、i2c、usb 从设备、pcmcia/cf 卡、sd/mmc 卡、ac97、spi 等多种 接口外,还通过增强型 isa(eisa)总线对存储器、10/100m 以太网芯片 lan91c111、 sm501 等器件对系统进行功能扩展。 dsp 端的 dm642 通过 32 位 hpi 总线连接到 pxa255 处理器,pxa255 通过 hpi 总线对 dm642 控制并通过 hpi 总线与 dm642 进行数据交换。 dm642 包含一个 64 位的 emif 接口对本地存储设备进行管理。 dm642 的多路音视频接口通过外围的数模转换芯 片对标准的视频数据进行处理8。 协处理器 sm501 通过 32bit vlio 接口连接在 pxa255 处理器上。 1.3.2 arm 端-pxa255 intel xscale cpu内核采用带有一个增强型存储器管道的超级流水线risc处理器架 构的体系结构, pxa255 微处理器是 intel 公司推出的采用 intel xscale 内核的微处理器。 是一款全性能、高性价比、低功耗且基于 arm v5te 体系结构的解决方案,支持 16 位 thumb 指令和 dsp 扩充, 频率高达 400mhz 的 32 位 risc 微处理器,可以通过抢占调度 和时间片轮转调度实现实时系统9 26。 pxa255 带有 32k 的指令 cache, 32k 数据 cache, 同时带有内存管理单元(mmu)和读/写缓存。它将多种外设功能集合于芯片内部(如 lcd,usb,irda,ac97 等) 。借助七级超流水线结构和更快的处理速度以及独特的电 源管理能力,电源管理提供了四种工作模式:turbo 模式、运行模式、空闲模式和睡眠 模式。pxa255 极其适合 mp3/mpeg4 解码、语音处理和手写识别、软 modem 和 java 等各种高端应用。表 1-1 表示总线设备的地址空间分配情况。 太原理工大学硕士研究生学位论文 13 表 1-1 pxa255 存贮空间分配表 table 1-1 pxa255 memory map table pxa255 存贮空间 可用地址空间(byte) 挂载设备 实际占用地址空间 静态片选 0 (64mb) 0 x00000000 0 x03ffffff 18m16bit flash 0 x00000000 0 x01ffffff 静态片选 1 (64mb) 0 x04000000 0 x07ffffff 留作扩展 (4m16bit) 0 x04000000 0 x0400ffff 静态片选 2 (64mb) 0 x08000000 0 x0bffffff 留作扩展 (4m16bit) 0 x08000000 0 x0800ffff 静态片选 3 (64mb) 0 x0c000000 0 x0fffffff dm642 hpi32 接口 0 x0c000000 0 x0c00000b sm501 本地存储器 16mb 0 x10000000 0 x11ffffff 静态片选 4 (64mb) 0 x10000000 0 x13ffffff sm501 内存映射 接口 0 x13e00000 0 x13ffffff 静态片选 5 (64mb) 0 x14000000 0 x17ffffff 网卡 lan91c111 接口 0 x14000000 0 x17ffffff 系统保留 0 x18000000 0 x1fffffff 设计保留 pcmcia/cf 卡 0 (256mb) 0 x20000000 0 x2fffffff cf 卡接口 (8256mb) 0 x20000000 0 x2fffffff pcmcia/cf 卡 1 (256mb) 0 x30000000 0 x3fffffff 设计保留 系统寄存器空间 0 x40000000 0 x4bffffff 设计保留 sdram 块 0(64mb) 0 xa0000000 0 xa3ffffff 系统内存(64mb) 0 xa0000000 0 x3fffffff sdram 块 1(64mb) 0 xa4000000 0 xa7ffffff 设计保留 sdram 块 2(64mb) 0 xa8000000 0 xabffffff 系统扩展内存 (64mb) 0 xa8000000 0 xabffffff sdram 块 3(64mb) 0 xac000000 0 xafffffff 系统扩展内存 (64mb) 0 xac000000 0 xafffffff 系统保留 0 xab000000 0 xffffffff 设计保留 pxa255 作为系统的主控 cpu 要对系统中的总线设备进行地址划分, 避免造成总线 冲突。在 bsp 开发的时候,需要依靠此处的分配地址对其进行内存映射。pxa255 拥有 6 个静态片选,4 个动态片选,为 pcmcia/cf 卡专门分配了 512mb 的存储空间。 pxa255处理器支持六种启动存储器类型, 取决于boot_sel2:0三个管脚的配置, 不同配置对应不同的寄存器预设值。本论文的开发板选用 16 位宽的 nor flash 作为启动 太原理工大学硕士研究生学位论文 14 存储器,将 boot_sel2:0= 001。 pxa255 的 ncs0 空间被配置为 16 位异步静态存储器接口与 flash 进行连接作为启 动存储器,系统复位后 pxa255 会自动从 flash 的首地址读取代码对系统进行初始化。 本论文的开发板选用的 intel 公司生产的 28f128j3 strataflash 芯片。28f128j3 芯片可实 现 16/8 位数据访问, 由芯片 nbyte 引脚控制, 当 nbyte=vpp 芯片工作在 16 位模式下, nbyte=gnd 时该管脚使能,芯片工作在 8 位字节模式。本论文开发板上的 nor flash 采用 18m16bit flash,因此需要设置为 16 位模式。 hpi32 是为 c64x 系列芯片提供的一种 32 位数据宽度的并行端口,专门用于 dsp 和外部主机并行通信。外部主机通过 hpi 接口可以直接对 dsp 内部的存储空间进行访 问,也可以通过 dma 或增强型 dma(edma)与 dsp 内部或外部的存储器中的数据 交换。pxa255 的静态片选 ncs3 空间被配置成多延迟数据 i/o 接口(vlio) ,将 hpi 接口所有控制寄存器 hpic、地址寄存器 hpia、数据寄存器 hpid
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 隧道机械化施工中的设备管理策略与实施计划制定研究考核试卷
- 铅酸电池的循环利用与环保技术考核试卷
- 货运火车站物流企业绩效管理体系构建与实施考核试卷
- 陶瓷艺术工作室运营与管理考核试卷
- 铜冶炼厂的安全管理体系构建与运行考核试卷
- 小儿常见眼部疾病诊疗与预防
- 食品营养与卫生
- 脑血管疾病的营养管理
- 呼吸科评分量表临床应用与管理规范
- Glisoprenin-A-生命科学试剂-MCE
- 【语文】陕西省西安市高新一小小学三年级下册期末试卷(含答案)
- XX市沙湾区美女峰景区建设项目意见书
- 广东省深圳市普通高中2022-2023学年高一下学期期末数学试题
- 肿瘤防治科普丛书:胃肠肿瘤
- 提高门诊一医一患执行率
- 相机租赁合同书
- 重症患者用药安全课件
- 培训MSDS专业知识课件
- 风电场齿轮箱润滑油使用规定(2023年727修订)
- 心肺复苏课件
- 2022年福建省中考地理试卷及答案
评论
0/150
提交评论