windowCE_BSP开发
PB开发环境下WinCE操作手册

WinCE配置一、PB开发环境1、Platform Builder简介图1.1就是PB的开发界面。
图1.1 PB开发界面2、建立并编译WinCE平台一、Windows 内核定制启动Platform Builder 4.2,新建Platform Builder 工程。
单击File 菜单下的New Platform 按钮,启动操作系统镜像的建立向导。
图1.2 运行操作系统镜像向导向导启动后先显示如图1.3的欢迎屏幕,直接点Next 按钮。
图1.3 定制操作系统内核欢迎屏幕选择一个相应的开发板支持包(Board Support Packages,BSP)如图1.4 所示。
选择一种开发包后,在对话框的右半部分会显示相应开发包的说明,表明这个开发包支持哪个公司的产品以及相应的芯片。
根据试验箱上的芯片SAMSUNG S3C2410A的要求,选择SAMSUNG SMDK2410:ARMV4,进入下一步。
图1.4 选择BSP选择建立操作系统镜像的基本配置结构(Platform Configuration),如图4.5所示对话框主要是设置准备定义的操作系统镜像的基本配置及工程名称。
首先,在Platform name 处输入工程名字(如ARM2410)。
其次,选择操作系统镜像的基本配置,在对话框的左面有两个选择。
1. Available configurations(可用配置):在这个选项下的列表框中,有多个Windows 已经设定的基本配置结构供选择,如果设计人员设计的产品与列表中保存的基本配置一样,那么只要直接选择就可以完成基本的设定,节省了很多时间,列表框中有以下基本配置内容:(1)Digital Media Receiver(数字媒体接收机)(2)Enterprise Terminal(企业终端)(3)Enterprise Web Pad(企业上网机)(4)Gateway(网关)(5)Industrial Controller(工业控制设备)(6)Internet Appliance(Internet 应用系统)(7)IP Phone(IP 电话)(8)Mobile Handheld(移动手持设备)(9)Mobile Phone(移动电话)(10)Set-Top Box(机顶盒)(11)Tiny Kernel(瘦内核)(12)Windows Thin Client(Windows 瘦客户端/网络PC)2. Custom configuration(自定义配置):自定义配置指不选择基本配置,完全由用户来完成配置工作。
嵌入式系统试验之Windows CE 平台的构建与配置

学院:计算机与软件学院专业:计算机科学与技术课程:嵌入式系统姓名:XXX 学号:实验一Windows CE 平台的构建与配置[实验目的]1、掌握W indows CE 内核的配置、编译方法;2、掌握构建一个适合特定开发平台的W indows CE 系统方法;3、熟悉P latform Builder 开发工具使用方法。
[实验仪器]1、装有P latform Builder 开发环境的P C 机一台2、XSBase270 实验开发平台一套[实验原理]1、Windows CE 操作系统简介Microsoft Windows CE 是一个开放的、可裁剪的、32 位的实时嵌入式窗口操作系统。
和其他桌面窗口操作系统(Windows XP/2000)相比,它具有可靠性好、实时性高、内核体积小等特点,适用于各种嵌入系统和产品。
它拥有多线程、多任务、确定性的实时、完全抢先式优先级的操作系统环境,专门面向只有有限资源的嵌入式硬件系统。
同时,开发人员可以根据特定硬件系统对W indows CE 操作系统进行裁剪、定制,所以目前W indows CE 被广泛用于各种嵌入式智能设备的开发,是当今应用最多、增长最快的嵌入式操作系统。
Windows CE 被设计成为一种高度模块化的操作系统,每一模块都提供特定的功能,这些模块中的一部分被划分成组件,系统设计者可以根据设备的性质只选择那些必要的模块或模块中的组件包含进操作系统映像,从而使Windows CE 变得非常紧凑(只占不到200 KB ,因此只占用了运行设备所需的最小的R OM、RAM 以及其它硬件资源。
的RAM)Windows CE 被分成不同的模块,其中最主要的模块有内核模块(Kernel)、对象存储模块、图形窗口事件子系统(GWES)模块以及通信(Communication)模块。
另外W indows CE 还包含一些附加的可选择模块,这些模块可支持的任务有管理可安装设备驱动程序、支持COM 等。
windows ce系统开发高级编程与典型实例

windows ce系统开发高级编程与典型实例Windows CE是微软推出的一种嵌入式操作系统,主要用于小型设备和嵌入式系统的开发。
它提供了与Windows操作系统类似的编程接口,开发者可以使用C/C++编程语言进行开发。
Windows CE高级编程主要包括以下方面:1. 系统编程:包括操作系统内核和驱动程序的开发。
开发者可以编写设备驱动程序、文件系统、网络协议栈等,以满足不同设备的需求。
2. GUI应用程序开发:Windows CE提供了类似于标准Windows操作系统的GUI界面,开发者可以使用API开发桌面应用程序、媒体播放器、游戏等。
3. 网络编程:Windows CE支持多种网络协议和通信方式,开发者可以使用Winsock API进行网络编程,实现网络通信、远程控制等功能。
4. 数据库应用开发:Windows CE提供了轻量级的数据库引擎SQL Server Compact Edition,开发者可以使用SQL语言进行数据操作和管理。
5. 多媒体开发:Windows CE支持音频、视频播放和图像处理等多媒体功能,开发者可以使用DirectShow和Media Foundation等API进行多媒体开发。
典型的Windows CE应用开发实例包括:1. 手持设备应用程序:如移动电话、PDA、扫描仪等设备上的应用程序开发,如联系人管理、日历、电子邮件等。
2. 嵌入式系统开发:如智能家居控制器、工业控制系统、POS 机等嵌入式设备的开发,如数据采集、远程控制等。
3. 车载系统开发:如车载导航、车载娱乐系统等车载设备的开发,如导航、音频播放、蓝牙连接等。
总之,Windows CE系统开发高级编程涉及到多个领域,开发者可以根据具体需求选择相应的编程接口和工具,实现各种嵌入式系统和设备的开发。
第六讲 Windows CE BSP开发

BSP是相对于操作系统而言的
不同的操作系统对应于不同定义形式的BSP。
双实科技
BSP的主要功能
安装WinCE后系统自带了一些BSP,这些BSP计划涵盖了 Windows 6.0所支持的嵌入式微处理器,这样可以使您能够快速评 估您的硬件平台,以及操作系统的各种功能,从而降低嵌入式产品的 上市时间。目前WinCE6.0支持的微处理器架构包括: ARM MIPS SHx X86 系统启动时,完成对硬件的初始化。 例如,对系统内存、寄存器、以及设备的中断进行设置。 为驱动程序提供访问硬件的手段。
双实科技
驱动程序模型
Windows的WDM(Windows Driver Model)模型
WDM体系结构实行分层处理:高层驱动程序、中间层驱 动程序、底层驱动程序。
每层驱动再把I/O请求划分为更简单的请求,以便传给更 下层的驱动执行。
最底层的驱动程序收到I/O请求后,通过硬件抽象层,与 硬件作用,从而完成I/O请求工作。
双实科技
2、引导程序(Boot Loader)
引导程序(Boot Loader)是在硬件开发板上执行的 一段代码。 主要功能
初始化硬件 加载操作系统映像到内存 跳转到操作系统代码去执行
Boot Loader通过以太网从工作站下载操作系统映像到 目标机,然后把映像放到内存里执行,称之为 EBoot(Ethernet Boot的简称)。
第六讲 Windows CE BSP开发
目录
Windows CE系统架构 Bootloader WinCE驱动程序
双实科技
Win CE驱动程序开发及测试流程

6、ห้องสมุดไป่ตู้模拟器下面调试驱动程序
内核编译完毕后就可以在模拟器下面调试的驱动程序了, 首先单击菜单中的 “Target”并在弹出的菜单中选择“Configure Remote connection” ,弹出“Remote connection”设置对话框如图 9.8 所示。
图 9.8 “Remote Connection”属性对话框 在“Download”和“Kernel”下面都选择“Emulator”选项,设置完毕后单 击“确定”按钮,这个时候就可以使用模拟器来启动编译的内核了。单击菜单中 的“Target” ,在弹出的菜单中选择“Download Initialize” ,启动模拟器运行编 译的内核,这个时候就可以在 Debug 窗体内看到流接口驱动程序加载的情况 了。 打开 Remote Process Viewer, 定位到 device.exe, 从图 9.9 可以看到 mydriver.dll 已经在 device.exe 的模块列表中了。这说明 mydriver.dll 已经被作为一个驱动加 载了。
增加对驱动程序进行操作的函数,代码如下:
void WriteToDriver( ) { DWORD dwWritten; TCHAR *tcString=L"Demo String..."; HANDLE hDrv=CreateFile(L"DEM1:",GENERIC_WRITE,0,NULL,OPEN_EXISTING,FILE_ ATTRIBUTE_NORMAL,NULL); if (INVALID_HANDLE_VALUE == hDrv) { OutputDebugString(L"Failed to open Driver...\n"); } else { WriteFile(hDrv,(LPVOID)tcString,lstrlen(tcString)*sizeof(TCHAR ),&dwWritten,NULL); } CloseHandle(hDrv); } void ReadFromDriver( ) { DWORD dwRead; TCHAR tcTemp[30]; HANDLE hDrv=CreateFile(L"DEM1:",GENERIC_READ,0,NULL,OPEN_EXISTING,FILE_A TTRIBUTE_NORMAL,NULL); if (INVALID_HANDLE_VALUE == hDrv) { OutputDebugString(L"Failed to open Driver...\n"); } else { memset(tcTemp,0x00,30*sizeof(TCHAR)); ReadFile(hDrv,tcTemp,30,&dwRead,NULL); MessageBox(NULL,tcTemp,L"Demo Data",MB_OK); } CloseHandle(hDrv); } void HandleIOCTL( ) { HANDLE hDrv=CreateFile(L"DEM1:",GENERIC_WRITE,0,NULL,OPEN_EXISTING,FILE_ ATTRIBUTE_NORMAL,NULL); TCHAR tcBuffer[10];
WinCE系统下BootLoader的开发

WinCE系统下BootLoader的开发上一篇/ 下一篇 2006-12-01 09:54:41 / 天气: 晴朗/ 心情: 高兴/ 个人分类:【WinCE & Mobile 】查看( 336 ) / 评论( 0 ) / 评分( 0 / 0 )摘要:介绍系统的旧方法;说明板级支持包(BSP)的基本构成;从开发实际出发,详细阐述如何开发BSP中的重要部件--BootLoader。
关键词: BSP BootLoader DOC引言Windows 是微软公司向嵌入式领域推出的一款操作系统。
它最大程度继承了桌面版Windows操作系统的丰富功能,同时又副入了许多新特性,以适应嵌入式领域的实际情况和要求。
无论是商业应用需求,还是人们的多媒体消费需求,都能被采用CE操作系统的设备很轻松的满足。
最新的.NET版本较之3.0版本,在实时性和稳定性上有大幅度提高,开始广泛地被平板电脑、数码相机、彩屏手机、PDA等多种高性能产品所采用。
但是,CE并不是一个通用的安装版操作系统,在形形色色的嵌入式硬件设备世界里,一款CE 系统通常只会针对某一种硬件平台生成。
所以,作为原始设备生产商,必须根据自己的硬件平台和应用场合定制CE,最主要的工作就是编写适合于自己的板级支持包(BSP)。
在BSP中,包含了一个重要的组成部分——BootLoader。
创建一未功能完善的BootLoader,是开发WinCE系统的第一步,也是极为关键的一步。
本文将结合开发实例,介绍如何开发适合于自己硬件的BootLoader。
1 定制CE操作系统的基本知识定制CE操作系统是采用微软的工具软件:Platform Builder(PB)。
该工具能够根据用户的需求,选择构建具有不同内核功能的CE系统。
同时,它也是一个集成的编译环境,可以为所有CE 支持的CPU目标代码编译C/C++程序。
前面所说的BSP和BootLoader程序就是在该环境下编译,并整合到CE系统中去的。
Windows CE 开发过程

WindowsCE开发过程一、概述WindowsCE是Mirosoft公司推出的一款嵌入式系统,同时还推出了Platform Builder 开发工具和CETK测试工具,再加上MS其他的开发和管理工具,使得技术开发和项目管理WindowsCE项目变得非常简便。
目前WindowsCE以其良好的人机界面、丰富可靠的应用程序逐渐为厂家所接受,在无线通信、工业控制、电子消费类产品中,占有越来越多的市场份额。
对于开发者来讲,MS为了开发方便,对于不同的CPU平台,提供了不同的参考模型,并在一定程度上开放了源代码,使开发者能够更多地控制操作系统,并能迅速地做出个性化的产品。
特别是MS的开发工具和测试工具,大大降低了门槛,提高了工作效率,缩短了产品开发周期,减少了产品售后服务所带来的支出。
考虑到WindowsCE的授权费用,在小批量生产的产品中,综合以上因素,使用WindowsCE的成本,并不得比使用其他操作系统高。
开发WindowsCE产品的最佳教材,就是MSDN。
本文只是简单的描述了WindowsCE 的一个基本开发和测试的过程,让大家对WindowsCE的开发和测试,有一个大概的了解。
二、使用Platform Builder开发BSPPlatform Builder是Microsoft公司出品的,专门为开发WindowsCE嵌入式操作系统的集成开发环境。
在该环境中,开发者可以使用丰富的工具,创建、裁减、调试目标操作系统。
WindowsCE的开发过程大概可以分为:OAL、驱动、应用程序开发三个步骤。
本文只是对OAL和驱动的开发过程做一个大概的介绍,对应用程序的开发不与讨论。
A、 WindowsCE结构介绍在开发一个操作系统前,必须要对操作系统的层次结构有所了解。
下图是WindowsCE的体系结构图。
在硬件之上,就是操作系统了。
其中的kernel是MS提供的库,用于内存管理、进程、线程的调度等,是没有源代码的。
WinCE

LoongEmbedded嵌入式开发流程也许很多初涉嵌入式开发领域的程序员会被一系列的新名词搞得头昏脑胀,在这里,我希望能够将嵌入式开发的流程展现给大家。
嵌入式开发主要分为三个比较大的部分:l 驱动程序开发这部分开发是从硬件设计开始的,硬件工程师会设计PCB板,为我们提供标准开发板(SDB,standard development board)。
当我们拿到开发板之后的第一件事情就是编写boot-loader,让开发板启动起来,一般是通过JTGA将boot-loader烧录到开发板中的。
我们可以将boot-loader看作PC中的BIOS,负责硬件设备的初始化工作,并且将操作系统运行起来。
在此之后,我们需要根据开发板上的硬件开发各种驱动程序,比如串口、USB、鼠标、视频输入等。
最后将这些驱动程序和boot-loader打包,称为一个板级支持包(BSP)。
BSP 是和开发板的具体硬件紧密相关的。
所以从事这方面开发的工程师往往具有比较强的硬件知识水平。
l 平台定制我们可以将Windows CE想象为一盒积木,根据不同的应用场景和设备要求,我们要对这盒积木进行定制,堆积出不同形状的城堡、动物和生活用品。
这个过程称为“平台定制”,定制产生的平台往往和具体的硬件设备相关,直接将平台下载到硬件设备上就可以运行了。
整个开发过程,需要选择不同的组件来搭配出最适合当前硬件的软件平台。
所以要对Windows CE的组件,也就是Catalog Item,有相当程度的了解。
l 应用程序开发嵌入式设备上的应用程序开发与传统应用程序开发类似,只是要借助于硬件模拟器或者实际设备对程序进行调试。
最常见的嵌入式设备应用程序开发,就是Windows Mobile的移动应用开发。
平台定制工程师会在硬件出厂之前先提供平台相关的SDK,SDK中会包括模拟器。
应用开发者可以首先使用模拟器对程序进行开发和调试。
等实际硬件出来之后,再将程序转移到实际硬件中。
Windows CE操作系统BSP开发笔记

【原创】Windows CE操作系统BSP开发——————BootLoader开发OAL开发2011-11-290 概述BSP:介于主板硬件和操作系统之间的一层软件系统把操作系统与硬件交互的接口抽象抽取出来,再作为单独的一层函数,操作系统需要访问底层硬件的时候(例如初始化硬件、关中断等),不再直接访问硬件,而是调用抽象出来的这一层函数完成操作。
有了BSP层的抽象之后,操作系统内核的代码就可以做到只与CPU体系结构相关,而与具体的硬件无关了。
对于不同的CPU体系结构,操作系统仍然需要提供编译好的二进制代码或在该CPU下可编译的源代码。
因此,在内核中如果要使用汇编语句,对不同的CPU都要编写一份,所以操作系统代码大多数都是用C/C++实现的。
BSP与特定的嵌入式操作系统相关。
BSP对应的是某块具体的开发板/产品板,而不是某款CPU,也不是某类CPU 体系架构。
因此,BSP 与开发板一一对应。
概念:芯片支持包,CSPOAL 层:负责Windows CE 内核与硬件通讯。
当引导程序引导操作系统结束后,由OAL层负责硬件平台初始化、中断服务例程、实时钟、计时器、内核调试、开关中断和内核性能监测等工作。
OAL的代码在物理上是内核的一部分,最终经过编译链接,OAL会成为内核的一部分。
引导程序(Boot Loader):在硬件开发板上执行的一段代码,它的主要功能是初始化硬件、加载操作系统映像到内存,然后跳转到操作系统代码去执行。
配置文件:一些包含配置信息的文本文件。
这些配置信息通常与操作系统映像或源代码有关。
例如告诉编译系统如何编译某些源代码,或告诉编译系统如何配置最终的操作系统映像文件。
.BIB、.DB、.REG 和.DAT四类平台初始化文件:用来告诉MakeImage工具如何生成操作系统映像;Sources和DIRS文件:告诉构建系统如何构建代码;CEC文件:这样BSP可以与Platform Builder集成。
CE下快速编译驱动和BSP

WinCE下,快速编译驱动及BSP
2009年10月26日星期一下午 07:57
在WinCE下面,创建工程,然后编译是需要花很长时间的。
当我们第一编译完工程以后,如果需要改我们的驱动或者BSP,我们是不需要重新编译整个工程的:
1. 如果更改了driver,以WinCE6.0为例,我们可以在菜单里面选择“build”->“Open Release Directory in Build Window” ,然后在弹出的命令行窗口中,通过dos命令切换到你要编译的driver的目录下面,然后运行“build”就可以了。
也可以运行“build -c”会强制把所有的文件都编译一遍。
被编译后的driver的dll会被自动拷贝到release目录下面,然后再切换的工程的release目录下面,运行一下“make image”就可以了。
2. 如果改变了OAL部分的代码,同样用上面介绍的方法,需要注意的是,OAL部分可能包含多个文件夹,如果改变了OAL里面的代码,不要进入OAL里面的文件夹去编译,一定要在OAL这层进行编译,这样OAL 部分的lib,dll才会被重新编译并拷贝到release目录下面。
3. 如果改变了配置文件,比如config.bib,platform.reg文件,那么直接将这些文件拷贝到你的工程目录下面,然后运行一下“make image”就可以了。
4. 如果改变了eboot部分的代码,那按照步骤1的方法就可以了,可能你都不需要运行“make image”命令,因为可能你只需要eboot.bin
或者eboot.nb0。
基于Windows CE的嵌入式系统开发技术

开发流程--应用程序开发
开发应用程序与通常的Windows下的应用 程序开发没有太大的区别。 在Windows CE下,编写的应用程序既可 以像桌面Windows一样通过安装包的形式 进行安装,也可以把应用程序作为操作系 统的一个组件,打包进入操作系统的运行 时映像中。
ห้องสมุดไป่ตู้
开发工具--Platform Builder
开发工具--软件的依赖关系
开发工具--Platform Builder
Visual Studio 2005可编写Windows CE应用 程序、Web应用程序和移动设备应用程序。 安装VS2005时,为Windows CE编程只是一 个可选项,需要安装VS 2005时切记勾选此 选项。 Visual Studio 2005提供了多种编程语言可 供选择,安装VisualStudio 2005时,也可根 据需要选择安装。
Platform Builder是微软推出的针对 Windows CE开发的集成开发环境。通过 Platform Builder,可对Windows CE操作 系统进行定制、构建、下载、调试及发布, 并且可开发简单的基于WindowsCE的应用 程序。 可以从微软的网站上下载最新的评估版 1GHz以上的CPU以及512 MB以上的内存, PB运行才会比较流畅。
开发工具--ActiveSync
ActiveSync用来连接Windows CE设备和安 装了Windows的PC机。 PC机可借助ActiveSync的通信功能查看 Windows CE上的文件系统和安装软件。 对于开发人员,可使用ActiveSync下载编 写的应用程序和进行代码调试。 在物理层,ActiveSync可以通过串口、红 外、USB端口和以太网与Windows CE设备 进行连接。
WinCE5.0开发流程概述

WinCE5.0开发流程概述上一篇/ 下一篇 2007-08-16 12:42:58查看( 390 ) / 评论( 0 ) / 评分( 0 / 0 )Windows CE开发主要是指,在保持图1所示结构及各组件接口不变的情况下,对OEM Layer做局部调整或改动,以保证Hardware Layer所设计的硬件对OS、对应用程序可见而且可控。
开发的目标是生成对应于Hardware Layer的BSP(板级支持包)、定制适合最终应用的OS,最终生成提供给用户的Custom SDK,同时提供的还有测试程序及测试范例代码。
整个开发流程如图表2所示。
图表 2 Windows CE开发流程开发流程简述:一、硬件设计/开发阶段:(略)二、克隆一个最相近的BSP[可选]。
开发时建议选择克隆,学习时建议参考已有的BSP重新构建。
三、Boot Loader开发:Boot Loader主要功能是,对CPU和选定的外设做足够的初始化,使得硬件能够与开发环境建立通讯、下载运行时映像;当然也可以根据硬件的要求扩展Boot Loader的功能,以在系统加载时完成一些特殊的功能。
当Boot Loader开发完成后,可以将它下载到硬件的启动存贮器中,方便后续的开发和调试。
四、OAL开发:OAL主要是由启动Windows CE内核所需要的内核引导程序组成,开发OAL 则是指逐步地实现startup程序及为启动内核作准备的代码,其中部分代码与Boot Loader阶段相似,可以共享这部分代码,当然大部分OEM厂商也是这样做的。
当完成了OAL的开发与调试并下载到板上,这时就有了一个可以运行的最小的Windows CE内核。
五、板级设备的驱动程序开发:在这个阶段,需要为硬件板所选择的外设及CPU片内处设逐个地实现并反复调试驱动程序,部分驱动程序可以引用微软或第三方开发的、或以此为起点定制。
六、实现电源管理:电源管理是一个很重要的阶段,对整机的性能表现起着很主要的作用。
基于XScale PXA255处理器WinCE 420系统BSP开发

Ab ta t T i p p rp o u e l r ht tr S ae P A2 5 mirp o es ro ne C ro ain a d mii ls s m a e n sr c h s a e rd c st e ac i u e o X l X 5 c rc so I tl o p r t n nma y t b s d o i c e f C o f o e t sp o e s ri re .I d s u s ste B P d v lp n f iC 2 p r t g sse i e i. i h rc so b f t ic se h S e eo me t n E 4 0 o ai y tm n d t l n i oW e n a
u H ii・ 2l ui Xog n n ai )’  ̄ oH i g’ i f  ̄) l l a l n n We e
( h l f ot et o t h i l n e i”,Y’n 70 7 ) c S o r ws m Ple ne i rt oN h e y c a U v sy d a 10 1 ( h l f ayE g ergU i rt Wu a 403 ) c S o v ni e n n e i2, hn 303 oN n i v sy ( col l t —M hn a E g er , ̄d nU i rt X ’ 707 ) Sho o Ee r f co c e ai l ni e n c n i g i n esy , ia a v i3 n 10 1
系 统 B P开 发 S
李 海林 - 赵 惠玲 ¨ 熊文峰 )’ ’
( 北 工 业 大 学 电 子 信 息 学 院 西 安 西 707 ) 海 军 工 程 大 学 电 子 工程 学 院 武 汉 10 1 ( 707 ) 10 1 40 3 ) 30 3
Windows CE 驱动程序开发

使用Platform Builder开发驱动 程序的不足之处
许多芯片开发商对此开发环境并不熟悉。 不能调试基于Microsoft Pocket PC的设备。 硬件的使用或者测试平台支持可能会很 昂贵或难以找到。 很难把一个驱动程序移植到Visual Studio 里去。
Platform Builder 4.0介绍(1)
驱动程序实例分析(2)
串口驱动程序需要实现的DLL接口函数名描述 :
XXX_Close在驱动程序关闭时由应用程序通过Clos ehandle函数调用 XXX_Deinit设备管理器在卸载一个实体设备时调用 XXX_Init设备管理器在初始化一个实体装置时调用 XXX_IOControl在发送命令时由应用程序通过 DeviceIoControl函数调用 XXX_Open在打开一个设备驱动程序时由应用程序 通过CreateFile函数调用
驱动程序的汇出(1)
将驱动程序导出为msi文件,步骤如下:
1) 在Platform菜单下选择汇出指导手册。 2) 在对应目录下选择需要汇出的驱动程序。 3) 填写一些描述信息并为汇出的文件命名。 4) 点选完成按钮即可产生msi文件,该文件 可以直接在目标环境下安装使用。
驱动程序的汇出(2)
将驱动程序汇出为cab档案,步骤如下:
微软的Platform Builder 4.0是一个基于 Windows CE操作系统的嵌入式平台的集 成开发环境(IDE)。 Platform Builder同时包括了设计、建立供了一个单独的集成工作区,在工 作区内可以在平台和工程中进行开发。
驱动程序实例分析(3)
其中电源管理的部分是可选的,在实际开发中, 接口名称中的XXX三个字母由设备驱动的前缀 所代替,同时在声明这些接口时,需要在函数 原型的前面加上__declspec(dllexport),表示 这些函数是这个DLL提供的界面函数,例如:
Windows CE 6.0入门详解(环境搭建系统开发起步)

Windows CE 6.0入门详解(环境搭建内核配置和应用开发起步)武汉众嵌科技有限公司修订历史记录一、安装开发环境 (3)A)按下列顺序安装所需软件 (3)B)安装说明 (3)C)装中可能出现的问题及解决方法 (4)二、WINDOWS CE 内核定制 (5)A)基W INDOWS CE产品开发流程大致分为以下几个阶段 (5)1.硬件设计 (5)2.选定BSP (5)3.获得驱动程序 (5)4.剪裁系统内核 (5)5.导出SDK (6)B)详细制作流程 (6)1.新建立一个OS Design工程 (6)2.建立工程 (7)3.配置工程 (8)C)配置内核 (10)1.选择应用程序(Applications-End User) (10)2.Applications and Services Development (10)3.选择系统核心服务(Core OS Services) (11)munication Services and Networking (12)5.设备管理(Device Management) (12)6.and Data Store (13)7.选择字体(Fonts): (13)8.国际化支持(International) (13)9.Internet Client Services (14)10.Graphics and Multimedia Technologies (14)11.Shell and User Interface (15)D)生成系统镜像 (15)E)生成SDK (16)F)安装A CTIVE S YNC 并配置 (16)G)配置模拟器并生成程序 (16)H)配置模拟器 (17)I)应用开发 (19)一、安装开发环境a) 按下列顺序安装所需软件1.Visual studio 20052.Visual studio 2005 server pack 13.Visual studio 2005 service pack 1 update for Windows vista/74.Windows Embedded CE 6.0 (Windows Embedded CE6.0.iso)5.Windows Embedded CE6.0 service pack 16.Windows Embedded CE 6.0 R27.Windows Embedded CE 6.0 R38.Windows Embedded CE cumulate product update rolluppackage through(12/31/2010)9.VS_emulator.exe(模拟器)b) 安装说明我的系统是Windows 7 旗舰版所以存在一个权限问题我以这样的方式安装所有的程序:c) 装中可能出现的问题及解决方法报错信息:1. ToolsMsmCA(Error): Setup package issue or CoreConDataStore corrupted: DeviceSDKInstComp Add/Remove failed.HR=0x8007005。
Windows CE系统软件移植流程

Windows CE系统软件移植流程Windows CE(以下简称CE)是一个可定制的嵌入式操作系统,为了适应不同的硬件平台,需要对BSP、Device Driver、bootloader等进行修改、定制。
本文主要讨论在BSP、driver 等已完成的基础上如何移植,关于BSP、driver等的定制在其他文档中详细描述。
Microsoft为定制CE平台提供了一个集成开发工具——Platform Builder(以下简称PB),我们的工作都是利用这个工具完成的。
另需注意,本文是以X-Hyper255B开发板为例进行说明的。
1.安装BSP(Board Support Packet)为了定制CE,BSP是必需的。
BSP包括bootloader、kernel、Device driver和configuration。
在利用PB生成特定平台的CE之前,必须先安装针对该平台的BSP。
例如,在安装完X-Hyper255B开发板的BSP后,在PB的Third Party中会出现它的BSP。
2.为X-Hyper255B定制CE平台2.1. 创建一个新平台1.在PB中选择File->New Platform开始“New Platform Wizard”。
2.在BSP列表中选择“X-HYPER255B:ARMV4”。
3.后续步骤按向导的提示进行,比较简单,这里不再赘述。
2.2. 设置平台参数在生成kernel image之前应该对平台进行一些设置。
1.如下图,右键单击选择“Settings…”(也可选择Platform->Settings)2.在“Build Options”选择页中选中“Enable Eboot Space in Memory”和“Enable FullKernel Mode”。
2.3. 生成Kernel Image1.选择Build->Generate Platform Headers。
WINDOW CE实验一

下载部分源代码分析
➢ 具体的镜像下载工作由DownloadImage函数完成,它与 BootloaderMain函数在同一个文件中
➢ 详细分析DownloadImage函数
(二)添加新的I/O控制代码
新建一个DEBUG版本的平台 ➢ 确认平台设置中“Enable KITL” 选项被选上 ➢ 确认“Platform Manager”目录下的 “Platform Manager”属性被加入平台 ➢ 确认“Applications and Services Development”目录下的“Microsoft Foundation Classes (MFC)”属性被加入平台
➢ 生成针对平台的SDK
• 选择Platform->SDK->New SDK • 选择 Platform->SDK->Configure SD • 选择 Platform->SDK->Build SDK
➢ 安装SDK
(三)创建应用程序测试I/O控制函数
新建一个工程
➢ 运行EVC,选择 File->New Project ,将运行Application Wizard新 建一个工程。如下图所示,需要选择CPUs为WCE X86
EVC编程环境提供了模拟器(Emulator)来模拟目 标硬件进行测试。
EVC编程是纯Win32编程;Windows CE支持WIN32 API中的绝大部分函数,但不完全一致。
Windows CE是Unicode环境;本地文本格式是 Unicode。
实验步骤
(一)分析Ethernet Boot Loader源代码 (二)添加新的I/O控制代码 (三)创建应用程序测试I/O控制函数
WindowsCE-BSP开发简介

Embedded System
中 山 大 学 - Intel 嵌 入 式 技 术 实 验 室
Embedded System
中 山 大 学 - Intel 嵌 入 式 技 术 实 验 室
BSP在嵌入式和桌面机中的区别 BSP在嵌入式和桌面机中的区别
其实运行在PC机上的桌面Windows或Linux系统也是有 BSP的,只是PC机均采用统一的X86体系架构,这样操作 系统的BSP相对X86架构是单一确定的,不需要做任何修 改就可以很容易支持OS在X86上正常运行,所以在PC机上 BSP 谈论BSP这个概念也就没什么意义了。 而对嵌入式系统来说情况则完全不同,目前市场上有多种 结构的嵌入式CPU(如X86,arm,MIPS等),而且为了性能 的需要,外围设备也会有不同的选择和定义。因此,一个 嵌入式操作系统针对不同的CPU会有不同的BSP,又即使 同一种CPU,由于外设的差别其BSP也会不一样。所以根 据硬件设计编写和修改BSP,是保证嵌入式系统正常运行 的一个重要环节。
Embedded System
中 山 大 学 - Intel 嵌 入 式 技 术 实 验 室
引导程序的功能
初始化目标设备
内存和中断控制器 设置时钟和内存管理单元 设置时钟和 直接引导现存的flash 或RAM 映象 直接引导现存的 下载之前清空RAM 下载之前清空 内存读写测试
下载Windows CE 映象到RAM或flash:
Embedded System
中 山 大 学 - Intel 嵌 入 式 技 术 实 验 室
板级支持包(BSP) 板级支持包(BSP) 简介
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
创建BSP的两种方法 创建BSP的两种方法
编写全新的BSP 编写全新的BSP
需要编写所有的部分包括 OEM抽象层, 驱动, OEM抽象层 驱动, 抽象层, 引导程序 20人 大约消耗 20人/月工作量
改写现有的BSP 改写现有的BSP
对与目标板具有相似硬件组成的BSP的基础上 对与目标板具有相似硬件组成的BSP的基础上 进行某些改写,使其适用与目标板, 进行某些改写,使其适用与目标板,这是最简 单的方式. 单的方式.
引导程序(Boot 引导程序(Boot Loader)
引导程序(Boot Loader)是在硬件开发板上执行 引导程序(Boot Loader)是在硬件开发板上执行 的一段代码. 的一段代码. 主要功能
初始化硬件 加载操作系统映像到内存 跳转到操作系统代码去执行 EBoot:Boot Loader通过以太网从工作站下载操作系统 Loader通过以太网从工作站下载操作系统 映像到目标机,然后把映像放到内存里执行,称之为 映像到目标机,然后把映像放到内存里执行, EBoot(Ethernet Boot的简称). Boot的简称 的简称)
OAL开发 OAL开发
类似于引导程序的开发 可以重用引导部分的代码
OAL架构 OAL架构
内核开发
黑体显示的函数需要由OEM厂商来实现
内核工作流
KITL
这样的设计可以很容易加 入任何调试服务功能 把通信协议和与之直接通 信的硬件层分离开来 减少用户在创建硬件独立 层的工作量 在系统映象中包含对 KITL的支持 的支持
引导程序 -- OEMPlatformInit
各种OEM 硬件平台初始化函数,包括时钟, 各种OEM 硬件平台初始化函数,包括时钟, PCI接口 或者NIC接口 PCI接口,或者NIC接口. 接口, 接口. NIC接口用于下载映象, NIC接口用于下载映象,另外服务于后面 接口用于下载映象 一些函数. 一些函数.
它所对应的是某块具体的开发板/产品板,而不是某款CPU,也不 是某类CPU体系结构.
BSP是相对于操作系统而言的
不同的操作系统对应于不同定义形式的BSP,例如VxWorks的 BSP和Linux的BSP相对于某一CPU来说尽管实现的功能一样, 可是写法和接口定义是完全不同的,所以写BSP一定要按照该 系统BSP的定义形式来写.
BSP开发 BSP开发
目录
板级支持包(BSP) 板级支持包(BSP) 简介 BSP的结构 BSP的结构 开发BSP 开发BSP
板级支持包(BSP) 板级支持包(BSP) 简介
BSP是板级支持包,是介于主板硬件和操作系统之间 的一层,应该说是属于操作系统的一部分,主要目的是为 了支持操作系统,使之能够更好的运行于硬件主板. BSP与开发板一一对应
引导程序 -- OEMPreDownload
在加载一个运行时映象时首先被 BLCOMMON调用 BLCOMMON调用. 调用. 查找硬件设备的IP地址 地址, 查找硬件设备的IP地址,并与宿主机相连 如果出错返回如果出错返回-1
引导程序 -- OEMLaunch
OEMLaunch 是引导程序的最后一个需要 运行的函数. 运行的函数. 负责跳转的到需要运行的映象. 负责跳转的到需要运行的映象. 跳转到由dwLaunchAddr指定的第一条指 跳转到由dwLaunchAddr指定的第一条指 这条指令在运行时映象的启动函数里. 令,这条指令在运行时映象的启动函数里.
启动流程
1. 2. 3. 4. 5. 6. 7. 8. 9.
CPU加电, CPU加电,跳转到复位向量 加电 [可选] 引导程序从Startup()开始执行 可选] 引导程序从 程序从Startup()开始 开始执行 执行OAL中 执行OAL中的Startup() KernelStart() [ KernelInitialize() For x86 ] Kernel调用 OAL中 Kernel调用 OAL中的OEMInit() 完成内核初始化 完成内核初始化 内核加载 加载Filesys.exe 内核加载Filesys.exe FileSys初始化 FileSys初始化注册表 初始化注册表 内核加载在 加载在HKEY_LOCAL_MACHINE\ 内核加载在HKEY_LOCAL_MACHINE\Init 中列出的应用程序
设备驱动程序
设备驱动程序也是BSP的一个重要组成部分, 设备驱动程序也是BSP的一个重要组成部分,支 的一个重要组成部分 持相关外围设备以及动态安装的设备. 持相关外围设备以及动态安装的设备. 对于某个特定的BSP来说,BSP当中应该包含在 对于某个特定的BSP来说,BSP当中应该包含在 来说 这块开发板上的所有的外设驱动程序. 这块开发板上的所有的外设驱动程序. 通过BSP包含的设备驱动程序操作系统能够发挥 通过BSP包含的设备驱动程序操作系统能够发挥 此开发板的最大效能. 此开发板的最大效能.
引导程序 -- EbootMain
EbootMain是 EbootMain是C代码运行的入口 调用BLCOMMON库 调用BLCOMMON库 BLCOMMON 库 源文件在 Blcommon.c 文件中, 文件中,路径为 %_WINCEROOT%\Public\Common\Oak %_WINCEROOT%\Public\Common\ \Drivers\Ethdbg directory Drivers\
引导程序 – OEMDebugInit
用来初始化串行口,作为调试输出 用来初始化串行口, OEMDebugInit初始化完成后 OEMDebugInit初始化完成后, 一个 初始化完成后, Windows CE的标记会出现,表示这个接 CE的标记会出现 的标记会出现, 口可以使用了. 口可以使用了.
BSP 向导
下面是创建基于Windows 下面是创建基于Windows CE 的BSP的一 BSP的一 般步骤, 般步骤,典型的情况下会产生一个 .cec w 文件 Platform -> BSP Wizard
BSP开发流程 BSP开发流程
引导程序 可选) 引导程序(可选) 程序(
如果操作系统映象可以直接引导, 如果操作系统映象可以直接引导,引导 操作系统映象可以直接引导 程序不是必须的 但通常使用一个引导程序,以便日后的 通常使用一个引导程序, 扩充. 扩充.另外也可以用于支持制造过程中 的下载测试 引导程序的重要性在于可以支持开发过 引导程序的重要性在于可以支持开发过 程中的运行时映象加载功能, 程中的运行时映象加载功能,也就是说 在系统运行过程中, 在系统运行过程中,动态加载需要调试 的模块
TUX.EXE
监控 TUX 测试 DLLs的程序 DLLs的程序
实际的测试是以 DLL的形式进行的 DLL的形式进行的
通过 TUX.EXE加载测试DLL TUX.EXE加载测试 加载测试DLL
由远端用户界面应用程序发起运行
桌面系统上的CETEST.EXE 桌面系统上的CETEST.EXE
引导程序 – StartUp函数 StartUp函数
硬件复位和运行时复位需要执行的第一条 指令 设置为超级用户模式 执行必须的硬件初始化: 执行必须的硬件初始化:
CPU 内存控制器 系统时钟 串口 缓存 快表 (TLBs)
根据使用的CPU修改 根据使用的CPU修改Startup.s 修改Startup.s
OAL : OEM 抽象层
位于Windows 位于Windows CE 系统内核和目标板硬件之 负责操作系统和目标板的通信. 间,负责操作系统和目标板的通信.由引导程 序调用,随后进行目标板的初始化工作, 序调用,随后进行目标板的初始化工作,包括 中断服务,实时时钟,内部计时器,调试部件, 中断服务,实时时钟,内部计时器,调试部件, 中断使能等等. 中断使能等等. OAL的代码在物理上是内核的一部分 OAL的代码在物理上是内核的一部分,经编 的代码在物理上是内核的一部分, 译链接,OAL成为内核的一部分 成为内核的一部分. 译链接,OAL成为内核的一部分. OEM厂商提供 厂商提供. 由硬件 OEM厂商提供.
BSP的编程过程大多数是在某一个成型的BSP模板上 进行修改,这样才能与上层OS保持正确的接口,良好的 支持上层OS.
板级支持包(BSP) 板级支持包(BБайду номын сангаасP) 简介
BSP的主要功能 BSP的主要功能
系统启动时,完成对硬件的初始化. 系统启动时,完成对硬件的初始化.
例如,对系统内存,寄存器,以及设备的中断进行 例如,对系统内存,寄存器, 设置. 设置.
配置文件
配置文件是一些包含配置信息的文本文件. 配置文件是一些包含配置信息的文本文件. BSP中的配置文件包括文件 BSP中的配置文件包括文件
.BIB, .DB, .REG, .DAT:这些文件告诉Make Image .DAT:这些文件告诉Make 工具如何生成操作系统映像. 工具如何生成操作系统映像. Sources, DIRs:告诉构建系统如何构建代码. DIRs:告诉构建系统如何构建代码. CEC:BSP可与 CEC:BSP可与Platform Builder集成. 可与Platform Builder集成 集成.
需要设计硬件?
设计实现你的硬件
从设备制造商得 到硬件和 BSP 为硬件设计BSP
需要定制平台?
定制你的 Win CE 平台
从设备制造商处 得到平台和 SDK 导出你的 SDK 编码,测试
发布产品
综述
Windows CE 测试工具包 (CETK) 测试工具包 Tux "server" Kato 日志引擎 日志引擎 设备驱动加载以及TUX扩展 设备驱动加载以及TUX扩展(DDLX) 常规 TUX 测试
CETK 结构
Windows CE 测试工具包 测试工具包 (CETK)
Microsoft 提供了自动测试体系结构 提供了自动测试体系结构