嵌入式设备Windows CE 系统简介 
摘要: 简要介绍了WinCE的一些特点,然后详细介绍了WinCE在FFT-HY7202上的开发实例
1.Windows CE 简介
Microsoft Windows CE 是一个紧凑、高效和可扩展的操作系统,适用于各种嵌入系统
和产品。它拥有多线程、多任务、确定性的实时、完全抢先式优先级的操作系统环境,专门
面向只有有限资源的硬件系统。同时,它的模块化设计方式使得系统开发人员和应用开发人
员能够为多种多样的产品来定制它,例如客户电子设备、专用工业控制器以及嵌入式通信设
备等,还有像照相机、电话和家用娱乐器材之类的消费产品。
凭借Windows CE,开发者可以充分利用他们已拥有的基于Windows 的编程技巧。Windows
CE 支持超过1,400 条的普通Microsoft Win32 API 和其他的编程接口,包括:
! 组件对象模型(COM)
! Microsoft 基本类库(MFC)
! Microsoft ActiveX 控制
! Microsoft 活动模板库(ATL)
2. 在Microsoft Windows CE 下开发嵌入应用程序
Windows CE 为了满足小型可扩展系统的需求而实现,这些系统在各种产品上工作:包
括移动式计算机、终端、工业控制器和其他许多产品。最突出的一点是,它允许开发者使用
Win32 API,方便而功能强大的开发平台以及其他资源。
Windows CE 的模块化设计使得它能够在大量的平台上定制使用,从客户电子设备到专
用的工业控制器。由于它是模块化的,故而你能使用满足平台系统需求的最小软件模块和组
件集合来设计嵌入式系统平台,从而使内存用量最小并最大可能地提高了操作系统的性能。
Windows CE 直接支持多类硬件外围设备,象键盘、鼠标设备、触摸面板、串行口、以
太网、调制解调器、USB 设备、音频设备、并行口和存储设备(ATA 或闪存),同时,由于
Windows CE 扩展了新的市场和设备门类,对嵌入式系统开发者来说,在增加新的外围设备
类型方面就有了巨大的潜力可挖,实现起来也很容易。
3. Windows CE 的硬件需求
作为最低配置,基于Windows CE 的设备需要一个兼容的处理器,内存和实现调度的定
时器。操作系统没有特别指定需要其他硬件,但大多数设备有许多的外围装置。
Windows CE是一个小规模而相当灵活的操作系统。运行Windows CE的系统需要的内存
完全依赖于系统设计员所选择的组件。例如,一个只有内核、通信栈且无显示的应用程序需
要不多于500K的ROM 或350K 的RAM,取决于应用程序所需。Windows CE 组件和基于Windows
CE 的使用体系中所有组件的设备占用大概2M 的ROM。这样的设备完全可能和运行在少于
512K 的RAM 下的外壳程序一起开始运行。
2
4. 嵌入式Windows CE 的开发流程
1> 定制BSP
2> 定制系统模块
3> 定制OAL、Driver、shell
完成以上定制后,编译形成nk.bin或者nk.nb0 文件,至此Windows CE 的内核定制完
成,下面即可开始开发自己的应用程序:
4> 安装SDK,联机调试建立开发环境
5> 开发中间模块
6> 开发应用程序界面,最后形成 用户程序文件.exe
7> 通过同步软件active 或者网络功能下载至Flash
8> 脱机运行
5. 针对FFT -HY7202 开发板的 Windows CE 开发流程
本章讲述如何为FFT-HY7202开发板建立自己的Windows CE开发平台
需求:
! 开发环境:Windows CE.NET Platform Builder 4.0
! Hynix BSP源代码
! 调试串口:波特率57600bps,8位数据位,1位停止位,无奇偶校验位,无硬件流
控制
! 连接UART3到主机串口上,使用非调制解调电缆
声明:
购买FFT-HY7202开发板,会提供以上需求所要用到的所有软硬件。
5.1 安装BSP
拷贝Hynix BSP 到你的platform目录
C:\WINCE400\PLATFORM\HynixBSPname
拷贝Hynix CEC 文件(*.cec) 到你的 cec 目录
C:\Program Files\Windows CE Platform Builder\4.00\cepb\cec\HynixCECfile.CEC
打开平台编译器,使用Manage Catalog Features,Import Hynix cec 文件
3
图5.1 Manage Catalog Features
  
5.2 配置内核,编译映像
  
打开Microsoft Platform Builder* IDE
运行New Platform Wizard, 选择 BSP 名字为 Hynix offers.
图5.2 Board Suppurt Package
选择configuration,定义project名字
4
图5.3 Platform Configure
根据智能向导继续
图5.4 建立New Platform
增加需要的特性和移除不用的特性
在platform菜单,检查platform设定
- Build Options : Enable Image for Flash
- Locale : Adjust locales if necessary.
5
图5.5 Platform Settings
然后在build菜单,编译得到Windows CE映像文件nk.nb0。
5.3 下载映像
有两种方法可以在开发板上下载WinCE
1> 直接使用USB下载WinCE映像到Flash
2> 首先通过USB下载eboot到Flash,然后通过eboot下载WinCE映像
1> USB 下下
使用USB下载命令写WindowsCE映像(nk.nb0)到Flash的0x0地址,当电源上电后,WinCE
映像被从Flash的0x0地址拷贝到SDRAM的开始地址(0x42000000),然后程序跳到SDRAM 开
始运行。
2> EBOOT 下下
STEP 1 1:检查
检查%_TARGETPLATROOT%\Kernel\hal\arm\bskip.s.
当Flash启动时,为了确保SDRAM能够被初始化,变量BSKIP必须被设置为FALSE:
BSKIP SETL {FALSE}
STEP 2 :下载Eboot
! 通过USB写eboot的二进制映像(eboot.nb0)在Flash的0x0地址;
! 为了确保主机能够连接到以太网,必须设置MAC地址和IP地址;
! 检查跳线设置:JP201 = Flash, JP105/JP106 = 32 位;
! 打开电源,eboot开始下载Windows CE映像到SDRAM;
! Uart0口用于串口调试信息;
! 如果以太网下载完成并且Windows CE开始运行,则Uart0被分配为COM1,Uart3用于
WinCE的调试接口。
5.4 脱机运行
下载完成后,按复位键重新运行程序,可在超级终端上看到如下画面:
6
  
  
同时液晶上也会显示Windows CE 启动的桌面画面,此时说明Windows CE 已成功运行。
  
6 定制Windows CE 平台
你可以通过增加和移除驱动来定制你自己的平台
当你从OS映像中增加和移除驱动时,要检查下面的信息:
这儿举几个例子:
显示( Display)
在platform.bib中插入/移除DLL
ddi.dll $(_FLATRELEASEDIR).DISP7202.dll NK SH
或者
ddi.dll $(_FLATRELEASEDIR).DISP7202TFT.dll NK SH
在platform.reg中检查屏幕的size和Bpp
[HKEY_LOCAL_MACHINE\Drivers\Display\Hynix]
"DisplayType"="DISP7202"
"CxScreen"=dword:280
"CyScreen"=dword:1E0
"Bpp"=dword:8
STN驱动(DISP7202.dll)支持8bpp
TFT驱动(DISP7202TFT.dll)支持8bpp 和 16bpp
键盘( Keyboard)
在platform.bib中插入/移除DLL
kbdmouse.dll $(_FLATRELEASEDIR)\Kbd7202XTMsEngUs1.dll NK SH
在platform.reg中检查输入配置
[HKEY_LOCAL_MACHINE\ControlPanel]
; "InputConfig"=dword:1 ; keyboard, but no touch screen
; "InputConfig"=dword:2 ; touch
"InputConfig"=dword:3 ; keyboard & touch
7
[HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\KEYBD]
"DriverName"="kbdmouse.dll"
"CalVKey"=dword:0
"ContLessVKey"=dword:0
"ContMoreVKey"=dword:0
"TaskManVKey"=dword:2E
"SysIntr"=dword:10
"MemBase"=dword:18000000
"MemLen"=dword:10
串口(serial)
在platform.bib中插入/移除DLL
hy_serial.dll $(_FLATRELEASEDIR)\hy_serial.dll NK SH
下面是platform.reg关于串口/红外接口的信息
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Serial]
"Dll"="hy_serial.Dll"
"IoBase"=dword:B0020000 ;uart0
"Irq"=dword:12 ;SYSINTR_SERIAL1
"Tsp"="Unimodem.dll"
"IoLen"=dword:24
"DeviceArrayIndex"=dword:2
"Prefix"="COM"
"Order"=dword:0
"Priority256"=dword:103
"DeviceType"=dword:0
"FriendlyName"="Serial Cable on COM1:"
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Serial2]
"Dll"="hy_serial.Dll"
"IoBase"=dword:B002D000 ;uart2
"Irq"=dword:13 ;SYSINTR_SERIAL2
"Tsp"="Unimodem.dll"
"IoLen"=dword:24
"DeviceArrayIndex"=dword:3
"Prefix"="COM"
"Order"=dword:0
"Priority256"=dword:103
"DeviceType"=dword:0
"FriendlyName"="Serial Cable on COM2:"
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\IrDA]
"Dll"="hy_serial.Dll"
"IoBase"=dword:B0021000
"Irq"=dword:17 ;SYSINTR_IRDA
"Tsp"="Unimodem.dll"
"IoLen"=dword:24
"DeviceArrayIndex"=dword:1
8
"Prefix"="COM"
"Order"=dword:1
;"DeviceType"=dword:6 ; if its a IRCOMM_MODEM
"DeviceType"=dword:2 ; its an internal modem
"Index"=dword:4
"FriendlyName"="Native IR:"
重新编译platform,得到nk.nb0
摘要: 简要介绍了WinCE的一些特点,然后详细介绍了WinCE在FFT-HY7202上的开发实例
1.Windows CE 简介
Microsoft Windows CE 是一个紧凑、高效和可扩展的操作系统,适用于各种嵌入系统
和产品。它拥有多线程、多任务、确定性的实时、完全抢先式优先级的操作系统环境,专门
面向只有有限资源的硬件系统。同时,它的模块化设计方式使得系统开发人员和应用开发人
员能够为多种多样的产品来定制它,例如客户电子设备、专用工业控制器以及嵌入式通信设
备等,还有像照相机、电话和家用娱乐器材之类的消费产品。
凭借Windows CE,开发者可以充分利用他们已拥有的基于Windows 的编程技巧。Windows
CE 支持超过1,400 条的普通Microsoft Win32 API 和其他的编程接口,包括:
! 组件对象模型(COM)
! Microsoft 基本类库(MFC)
! Microsoft ActiveX 控制
! Microsoft 活动模板库(ATL)
2. 在Microsoft Windows CE 下开发嵌入应用程序
Windows CE 为了满足小型可扩展系统的需求而实现,这些系统在各种产品上工作:包
括移动式计算机、终端、工业控制器和其他许多产品。最突出的一点是,它允许开发者使用
Win32 API,方便而功能强大的开发平台以及其他资源。
Windows CE 的模块化设计使得它能够在大量的平台上定制使用,从客户电子设备到专
用的工业控制器。由于它是模块化的,故而你能使用满足平台系统需求的最小软件模块和组
件集合来设计嵌入式系统平台,从而使内存用量最小并最大可能地提高了操作系统的性能。
Windows CE 直接支持多类硬件外围设备,象键盘、鼠标设备、触摸面板、串行口、以
太网、调制解调器、USB 设备、音频设备、并行口和存储设备(ATA 或闪存),同时,由于
Windows CE 扩展了新的市场和设备门类,对嵌入式系统开发者来说,在增加新的外围设备
类型方面就有了巨大的潜力可挖,实现起来也很容易。
3. Windows CE 的硬件需求
作为最低配置,基于Windows CE 的设备需要一个兼容的处理器,内存和实现调度的定
时器。操作系统没有特别指定需要其他硬件,但大多数设备有许多的外围装置。
Windows CE是一个小规模而相当灵活的操作系统。运行Windows CE的系统需要的内存
完全依赖于系统设计员所选择的组件。例如,一个只有内核、通信栈且无显示的应用程序需
要不多于500K的ROM 或350K 的RAM,取决于应用程序所需。Windows CE 组件和基于Windows
CE 的使用体系中所有组件的设备占用大概2M 的ROM。这样的设备完全可能和运行在少于
512K 的RAM 下的外壳程序一起开始运行。
2
4. 嵌入式Windows CE 的开发流程
1> 定制BSP
2> 定制系统模块
3> 定制OAL、Driver、shell
完成以上定制后,编译形成nk.bin或者nk.nb0 文件,至此Windows CE 的内核定制完
成,下面即可开始开发自己的应用程序:
4> 安装SDK,联机调试建立开发环境
5> 开发中间模块
6> 开发应用程序界面,最后形成 用户程序文件.exe
7> 通过同步软件active 或者网络功能下载至Flash
8> 脱机运行
5. 针对FFT -HY7202 开发板的 Windows CE 开发流程
本章讲述如何为FFT-HY7202开发板建立自己的Windows CE开发平台
需求:
! 开发环境:Windows CE.NET Platform Builder 4.0
! Hynix BSP源代码
! 调试串口:波特率57600bps,8位数据位,1位停止位,无奇偶校验位,无硬件流
控制
! 连接UART3到主机串口上,使用非调制解调电缆
声明:
购买FFT-HY7202开发板,会提供以上需求所要用到的所有软硬件。
5.1 安装BSP
拷贝Hynix BSP 到你的platform目录
C:\WINCE400\PLATFORM\HynixBSPname
拷贝Hynix CEC 文件(*.cec) 到你的 cec 目录
C:\Program Files\Windows CE Platform Builder\4.00\cepb\cec\HynixCECfile.CEC
打开平台编译器,使用Manage Catalog Features,Import Hynix cec 文件
3
图5.1 Manage Catalog Features
5.2 配置内核,编译映像
打开Microsoft Platform Builder* IDE
运行New Platform Wizard, 选择 BSP 名字为 Hynix offers.
图5.2 Board Suppurt Package
选择configuration,定义project名字
4
图5.3 Platform Configure
根据智能向导继续
图5.4 建立New Platform
增加需要的特性和移除不用的特性
在platform菜单,检查platform设定
- Build Options : Enable Image for Flash
- Locale : Adjust locales if necessary.
5
图5.5 Platform Settings
然后在build菜单,编译得到Windows CE映像文件nk.nb0。
5.3 下载映像
有两种方法可以在开发板上下载WinCE
1> 直接使用USB下载WinCE映像到Flash
2> 首先通过USB下载eboot到Flash,然后通过eboot下载WinCE映像
1> USB 下下
使用USB下载命令写WindowsCE映像(nk.nb0)到Flash的0x0地址,当电源上电后,WinCE
映像被从Flash的0x0地址拷贝到SDRAM的开始地址(0x42000000),然后程序跳到SDRAM 开
始运行。
2> EBOOT 下下
STEP 1 1:检查
检查%_TARGETPLATROOT%\Kernel\hal\arm\bskip.s.
当Flash启动时,为了确保SDRAM能够被初始化,变量BSKIP必须被设置为FALSE:
BSKIP SETL {FALSE}
STEP 2 :下载Eboot
! 通过USB写eboot的二进制映像(eboot.nb0)在Flash的0x0地址;
! 为了确保主机能够连接到以太网,必须设置MAC地址和IP地址;
! 检查跳线设置:JP201 = Flash, JP105/JP106 = 32 位;
! 打开电源,eboot开始下载Windows CE映像到SDRAM;
! Uart0口用于串口调试信息;
! 如果以太网下载完成并且Windows CE开始运行,则Uart0被分配为COM1,Uart3用于
WinCE的调试接口。
5.4 脱机运行
下载完成后,按复位键重新运行程序,可在超级终端上看到如下画面:
6
同时液晶上也会显示Windows CE 启动的桌面画面,此时说明Windows CE 已成功运行。
6 定制Windows CE 平台
你可以通过增加和移除驱动来定制你自己的平台
当你从OS映像中增加和移除驱动时,要检查下面的信息:
这儿举几个例子:
显示( Display)
在platform.bib中插入/移除DLL
ddi.dll $(_FLATRELEASEDIR).DISP7202.dll NK SH
或者
ddi.dll $(_FLATRELEASEDIR).DISP7202TFT.dll NK SH
在platform.reg中检查屏幕的size和Bpp
[HKEY_LOCAL_MACHINE\Drivers\Display\Hynix]
"DisplayType"="DISP7202"
"CxScreen"=dword:280
"CyScreen"=dword:1E0
"Bpp"=dword:8
STN驱动(DISP7202.dll)支持8bpp
TFT驱动(DISP7202TFT.dll)支持8bpp 和 16bpp
键盘( Keyboard)
在platform.bib中插入/移除DLL
kbdmouse.dll $(_FLATRELEASEDIR)\Kbd7202XTMsEngUs1.dll NK SH
在platform.reg中检查输入配置
[HKEY_LOCAL_MACHINE\ControlPanel]
; "InputConfig"=dword:1 ; keyboard, but no touch screen
; "InputConfig"=dword:2 ; touch
"InputConfig"=dword:3 ; keyboard & touch
7
[HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\KEYBD]
"DriverName"="kbdmouse.dll"
"CalVKey"=dword:0
"ContLessVKey"=dword:0
"ContMoreVKey"=dword:0
"TaskManVKey"=dword:2E
"SysIntr"=dword:10
"MemBase"=dword:18000000
"MemLen"=dword:10
串口(serial)
在platform.bib中插入/移除DLL
hy_serial.dll $(_FLATRELEASEDIR)\hy_serial.dll NK SH
下面是platform.reg关于串口/红外接口的信息
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Serial]
"Dll"="hy_serial.Dll"
"IoBase"=dword:B0020000 ;uart0
"Irq"=dword:12 ;SYSINTR_SERIAL1
"Tsp"="Unimodem.dll"
"IoLen"=dword:24
"DeviceArrayIndex"=dword:2
"Prefix"="COM"
"Order"=dword:0
"Priority256"=dword:103
"DeviceType"=dword:0
"FriendlyName"="Serial Cable on COM1:"
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Serial2]
"Dll"="hy_serial.Dll"
"IoBase"=dword:B002D000 ;uart2
"Irq"=dword:13 ;SYSINTR_SERIAL2
"Tsp"="Unimodem.dll"
"IoLen"=dword:24
"DeviceArrayIndex"=dword:3
"Prefix"="COM"
"Order"=dword:0
"Priority256"=dword:103
"DeviceType"=dword:0
"FriendlyName"="Serial Cable on COM2:"
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\IrDA]
"Dll"="hy_serial.Dll"
"IoBase"=dword:B0021000
"Irq"=dword:17 ;SYSINTR_IRDA
"Tsp"="Unimodem.dll"
"IoLen"=dword:24
"DeviceArrayIndex"=dword:1
8
"Prefix"="COM"
"Order"=dword:1
;"DeviceType"=dword:6 ; if its a IRCOMM_MODEM
"DeviceType"=dword:2 ; its an internal modem
"Index"=dword:4
"FriendlyName"="Native IR:"
重新编译platform,得到nk.nb0
                    
                

                
            
        
浙公网安备 33010602011771号