Windows CE学习空间

从着手这个项目以来,通过不断地看书和学习,获得了一些开发经验,现在拿出来分享。

首先说前几天遇到的memory问题:系统定制过程中,当选取的组件比较大时,得到的镜像文件将会很大,但是通过调整可以解决此类问题:
  首先打开PB中的parameterview选项卡,选择其中的config.bib文件,我们会得到以下的文件:
  MEMORY
; [Notification]
; Not yet implemented MULTIPlEXIP Kernel features.
; Do not "SET IMGMULTIXIP=1"
; Please check "SET IMGMULTIXIP=" so that
IMGMULTIXIP are not defined

; NK name
#define NKNAME NK

; NK Start address
#define NKSTART 8C200000
#define NKLEN   01D00000

#define RAMSTART 8E000000
#define RAMLEN   01F00000
$(NKNAME)  $(NKSTART)   $(NKLEN)  RAMIMAGE
RAM     $(RAMSTART)   $(RAMLEN)  RAM
; NK   80040000 01EB0000 RAMIMAGE
; RAM      8c200000 01C00000 RAM
; Common RAM areas
AUD_DMA    8c002000 00002000 RESERVED
DRV_GLB    8c010000 00010000 RESERVED
DBGSER_DMA  8c022000 00002000 RESERVED
SER_DMA    8c024000 00002000 RESERVED
IR_DMA    8c026000 00002000 RESERVED
SD_DMA     8c028000 00008000 RESERVED
EDBG     8c030000 00020000 RESERVED
CPXIPCHAIN  8c050000 00008000 RESERVED
SLEEP_BUFF  8c058000 00004000 RESERVED
DISPLAY    8c100000 00100000 RESERVED  
CONFIG
  COMPRESSION=ON
  KERNELFIXUPS=ON
IF IMGPROFILER  
PROFILE=ON
ENDIF
IF IMGPROFILER !
PROFILE=OFF
ENDIF
  
  ROMFLAGS=0  
  ROMSTART=$(NKSTART)
  ROMWIDTH=32
  ROMSIZE=$(NKLEN)
;  ROMSIZE=01EB0000

;#define CHAIN_ADDRESS 81E40000
; CHAIN  $(CHAIN_ADDRESS)  00001000 RESERVED
; pdwXIPLoc 00000000 $(CHAIN_ADDRESS)   
FIXUPVAR
; NK  80040000 01E00000 RAMIMAGE
; CHAIN      81E40000 00001000 RESERVED
; DRIVERS  81E41000 001BF000 RAMIMAGE
; RESERVE    8df00000 00080000
; RAM      8c200000 01D00000 RAM
注意:其中的“;”代表注释,表示这句语言无效。我们注意到有这么一段语句:
#define NKSTART 8C200000
#define NKLEN 01D00000
这代表镜像的起始地址以及大小,是使用十六进制表示的,经过计算得出大小为29M,这与我们最后得到的nk.nb0的大小是一致的。同时起始地址也是ROM的起始地址,可以得到rom的起始地址以及大小。
而 #define RAMSTART 8E000000
  #define RAMLEN   01F00000
代表RAM的起始地址和大小,常常我们得到的错误是 ram start over the rom end,即ram的起始地址越过rom的结束地址,所以我们只需要修改ram的起始地址即可。使其变大一点,当然这个要参考rom的结束地址,以及系统给某些组件的预留空间地址,不可以盲目修改。

第二个问题:
红外组件问题:在定制过程中,针对2410开发板的组件要求加入红外组件,但是不是许多系统都需要这个功能的,由于它已经默认到我们的BSP中了,所以我们要修改红外组件,使其功能失效,即注释掉它。同理,打开parameterview选项卡中的platform.bib文件,找到这一段代码
IF BSP_NOSERIAL !
irsir.dll  $(_FLATRELEASEDIR)/irsir.dll  NK SH
irda2410.dll $(_FLATRELEASEDIR)/ser2410.dll  NK
SH
ser2410.dll  $(_FLATRELEASEDIR)/ser2410.dll  NK
SH
ENDIF BSP_NOSERIAL !

把关于irsir.dll的这一句代码用分号注释掉即可,这也解决了我们在没有选择红外组件时,编译报错的问题,报错一般为:could not find irsir.dll。



固定链接

http://caolingeric.spaces.live.c ... 16310C042!130.entry
定制Windows CE操作系统续
三、定制Windows CE操作系统:

我们接下来就根据项目要求来定制一个操作系统,我们将使用向导来完成定制过程:


Step 1(欢迎界面):

首先点击向导的New platform或者是点击File->New platform来进入定制向导:这是一个欢迎界面,我们可以根据这个界面了解我们需要选择的组件以及驱动程序步骤。我们直接点击Next进入下一步。

Step 2 (BSP选择):

这一步要求我们选择BSP,由于我们采用的是Samsung 2410主板,所以我们选择这一项:SAMSUNG SMDK2410: ARMV4,然后直接点击Next:

Step 3 (平台配置选项):

这一步是选择平台配置,PB提供了几种特定环境所需要的配置选项,我们所需的不在所列中,因此我们选择Custom Configuration,然后为平台命名为:ADSLTEST,点击Next:

Step 4 (设备配置):

这一步是关于设备的特性选择,因为我们开发的设备要求有显示以及外观,所以我们选择Custom Device with Shell and Graphical User Interface(GUI),然后点击 Next:

Step 5 (基础类库):

这一步是我们以后用于开发应用程序及其服务程序的基础类库的选择界面,我们选择我们所需要的:Active Template Library, C Libraries and Runtimes, Component Services中的COM相关组件,Microsoft Foundation Classes(MFC), Standard SDK for Windows CE.NET。选择好以后,直接进入下一步:

Step 6 (应用程序):

此对话框提供的都是生成的操作系统镜像中由Windows CE自带的应用程序,可以根据相应的要求,添加相应的程序。我们选择:ActiveSync中的File Sync, CAB File Installer/Uninstaller, File Viewer中的Microsoft EXCEL Viewer。然后点击Next:

Step 7 (操作系统核心服务):

这里主要选择一些通用的硬件、工具、特性等进行选择,我们选择这几项:Battery Driver, Serial Port Support, USB Host Support中的USB HID Keyboard and Mouse和 USB Storage Class Driver, Debugging Tools中的Touch Driver Test Application和Toolhelp API, Power Management中的full选项,以及Kernel Features。

Step 8 (通信服务):

这里显示了设备的通信服务及其联网功能,根据要求,我们选取:Networking Features中的Extensible Authentication Protocol, Network Bridging, Network Utilities (IpConfig, Ping, Route), TCP/IP。Networking-Local Area Network(LAN)中的Wired Local Area Network (802.3, 802.5)。Networking-Wide Area Network(WAN)中的Point-to-Point Protocol over Etherne

t

(PPPoE)。Servers中的ASP Support,Device management ISAPI Extension, WebServer Administrator ISAPI。

Step 9 (文件系统):

这里主要是对生成的操作系统镜像所支持的文件系统进行设置,我们选择:File and Database Replication中的Bit-based,File System –Internal中的RAM and ROM File System,Registry Storage中的Hive-based Registry,Storage manager中的Binary Rom Image File System和相关FAT选项。选择好以后点击Next:

Step 10 (字体):

此对话框主要是选择准备生成的操作系统镜像所支持的字体,可以不同的情况进行选择,我们不选择任何字体(系统会根据相应的情况添加必要的字体),进入下一步:

Step 11 (区域选项):

此对话框选择对非英语国家的支持,如语言,输入等,我们选择关于中文的选项: Locale Services中的National Language Support。Chinese(Simplified)。然后点击Next:

Step 12 (Internet 程序):

这里主要是选择浏览Internet所需要的程序及相关部件:我们选择:Browser Application中的Internet Explorer 6.0 for Sample Brower,Internet Explorer 6.0 for Windows CE component中的Internet Explorer HTML Application,以及URL Moniker Services,Scripting中的Jscript5.5。选择完毕后,直接进入下一步:

Step 13 (多媒体技术):

这是关于生成的操作系统的多媒体能力选项,我们可以根据自己的要求选择:Multimedia Components中的Audio中的DirectSound和Waveform Audio。然后点击Next:

Step 14 (安全设置):

这是关于安全设置内容的选项: 

我们选取:Authentication Services中的NTLM和Schannel,以及Cryptography Services中的Certificates。然后点击Next:

Step 15 (操作系统外壳):

这里选择所支持的操作系统外壳与用户接口,我们选择:Shell中的Standard Shell和Command Shell,User Interface 中的controls Options B;Customizable UI;Menu Tool Tip;Network User Interface;Overlapping Menus;Software Input Panel中的Driver和Small Screen;Touch Display和Quarter VGA Resources以及Mouse。然后点击Next:

Step 16 (相关警告):

当定制完成以后,将出现一些警告或者提示,这是因为在定制的过程中,有一些组件是有风险的,系统将提示用户某些组件的风险以及注意事项,在此我们看到了关于ActiveSync、RAS Server等组件的提示警告,在我们确信使用该组件时,直接点击Next来完成系统定制过程。

Step 17 (定制完成):

直至现在,我们就完成了一个关于项目要求的操作系统定制,我们接下来就可以通过下载到目标机中来显示这个操作系统,当然先要点击Finish来完成定制向导。PB将通过获取变量以及属性来配置这个系统,并且建立一个文件夹位于PUBLIC目录下,关于该系统的配置文件可以在这个文件夹中找到。

四、平台编译


  我们已经成功定制了一个Windows CE操作系统,定制以后还需要我们进行一些配置,来做好编译前的准备工作:

  首先修改一些关于2410的特性:

  1、屏蔽红外组件:

由于2410板卡支持红外特性,而我们定制的系统不需要这个特性,因此本着尽量减小镜像大小的思想,我们需要把这个组件屏蔽掉。

  打开工作区中的ParameterView选项卡中的Plarform.bib文件,然后修改这一行参数:

  irsir.dll          $(_FLATRELEASEDIR)/irsir.dll            NK SH

在这行语句前加一个“ ;”来完成对它的注释,即可屏蔽该组件。

  2、增加2410网卡:

  在Catalog目录中选取BSPs 中的SAMSUNG SMDK2410: ARMV4,选择其目录树下的NetworkingàLANàCS8900,然后点击右键选择“Add to the platform”,完成对网卡的添加。

  3、修改LCD驱动程序:

  我们开发的产品要使用320*240的TFT液晶屏,所以我们要实现对产品的驱动支持,要修改相关的驱动程序。因为2410给的BSP是关于640*480的驱动程序,我们只需要修改三个文件,就可以完成驱动程序的修改:修改的文件及其位置为:

1、 WINCE420/PLATFORM/SMDK2410/INC/s2410.c

2、 WINCE420/PLATFORM/SMDK2410/DRIVERS/DISPLAY/S3C2410LCD/s3c2410disp.cpp

3、 WINCE420/PLATFORM/SMDK2410/ KERNEL/ HAL/cfw.c

修改了这三个文件中的源代码,就可以了。具体修改程序请参照单独的技术文档。我们可以在定制结束以后再进行替换,或者也可以在定制之前进行修改,当然要在配置BSP之前进行修改,否则相关特性不能添加到工作环境中。

最后右键点击工作区中的ADSLTEST Features,选择Setting,将出现如下的对话框,我们选择Build Option选项卡,确保Enable KITL,Enable CE target control support这两个选项没有选择,因为2410的网卡CS8900,是不支持KITL的。

通过这几个步骤,我们已经完成了对平台进行编译的准备工作,接下来,我们就要对定制好的系统进行Build (编译)。点击菜单栏中buildàbuild platform即可,平台将对定制的系统进行编译,其中编译信息将在输出栏中显示,其中显示的内容主要有以下几个方面:

1、CESYSGEN阶段:

这一阶段主要是将编译过程中使用的所有头文件、用于生成DLL的DEF文件以及其它文件挑出来,这一过程为将来生成平台的SDK做准备。在这一过程中,我们将看到许多诸如:sysgen ***** =1,这表明该组件sysgen成功,其必要组件已经找到。

2、BSP阶段:

  这一阶段将编译和链接图形、窗口和事件子系统、内核、OEM适配层以及设备驱动程序等。这一步用来创建NK.exe,以及创建DLL。

3、MAKING阶段:

  这一阶段实际上将为平台生成最终的ROM映像,ROMImage将最终的映像生成为NK.BIN, 这个BIN文件采用二进制压缩,使其大小大约减小了一半。

  等待大约10分钟左右,(编译时间与机器配置有关)就可以在输出栏中看到编译信息:build done:0 errors, ** warnings。有警告是正常的,因为某些组件是有风险的,譬如一些网络组件,所以只要没有错误,说明定制没有问题,NK.BIN已经生成。

  我们可以在如下的路径找到NK.BIN和NK.nb0:WINCE420/PUBLIC/ADSLTEST/ RelDir/ SAMSUNG_SMDK2410_ARMV4Release 中找到这两个文件,我们可以使用2410提供的专用下载工具DNW把它们下载到板卡中。当然我们最终使用的是NK.BIN.


http://caolingeric.spaces.live.c ... 16310C042!129.entry


定制Windows CE操作系统
一、Windows CE及PlatformBuilder介绍
Windows CE是微软公司设计开发的嵌入式操作系统,由于它是针对嵌入式设备设计的操作系统,它的设计目标是:模块化及可伸缩性、实时性能好、通信能力强大、支持多种CPU。

而Windows CE本身具有其他嵌入式操作系统不具备的优良特性:

(1)Windows CE具有灵活的电源管理功能,包括睡眠/唤醒模式。它使用了对象存储技术,包括文件系统、注册表及其数据库。

(2)Windows CE具有良好的通信能力,它广泛支持各种通信硬件,亦支持直接的局域网连接以及拨号连接,并提供与PC、内部网以及Internet的连接。

(3)Windows CE的图形用户界面相当出色,他拥有基于Microsoft Internet Explorer的Internet浏览器,此外,还支持TrueType字体。

(4)Windows CE是一个多任务的操作系统,可以同时执行多个任务,并在他们之间来回切换,我们可以把它认为是Windows的简化版本。

(5)Windows CE内置了多媒体功能,通过Windows Media Player,可以播放MP3以及视频文件。Windows CE具有可扩充的Compact Flash/MMC/SD插槽。

以上只是对Windows CE的简单介绍,我们在生活中使用的一些数码产品,譬如PDA等等都是基于Windows CE的产品,其智能性以及便捷性以深受广大用户的喜爱。

PlatformBuilder是定制Windows CE的开发平台,我们可以使用该软件来定制自己所需要的操作系统,它提供了所有进行设计、创建、编译、测试和调试Windows CE操作系统平台的工具。它运行在Windows下,开发人员可以通过交互式的环境来设计和定制内核、选择操作系统特性,然后进行编译和调试,同时它可以创建与应用程序编辑工具Embedded Visual C++的连接,对应用程序进行编译和创建。下面简要介绍一下PlatformBuilder的操作界面:

安装完成PlatformBuilder后,打开这个平台,我们看到了如下的界面(图附后),它提供的主要开发特性包括:

(1)平台开发向导:这是一个关于创建平台的向导,开发人员可以通过这个向导来定制自己的系统,根据向导,可以选择BSP(板卡支持包)、各种系统特性以及所需驱动程序。

(2)特性目录(catalog):这是操作系统可选特性的一个总体目录,我们可以在这里增加我们漏掉或者遗失的特性组件。

(3)工作区(feature):这是我们定制好的系统组件显示的区域,从这里我们可以看出我们选择的特性组件,以及驱动程序。在这里有三个选项卡,分别是:FeatureView、ParameterView 以及FileView。这三种方式显示我们配置的系统的各项参数,在以后我们将陆续使用这三个参数来调整我们的系统。

(4)输出信息窗口(Output):这是我们在编译和调试过程中,编译器输出信息的窗口,我们可以通过此窗口的信息来调试我们定制的系统。

此外,PB还可以建立与目标机以及远程主机的通信连接,用来调试目标机上的CE设备,同时它也可以创建一些应用程序,从而加入操作系统中,增强了其DIY的特点,它还有基于X86的模拟机,用来显示基于X86系统的操作系统。总之,这是一个强大的创建平台,有了该平台,使开发人员可以根据自己的需要来定制合适的操作系统。

二、项目要求及其准备工作

我们的任务是设计开发出关于ADSL2+测试仪设备,以下是设备要求:

要求可以进行拨号连接、浏览网页,验证网络连通性,TFT真彩液晶,带触摸屏,Windows界面设计;支持USB接口的U盘、鼠标和键盘;可以作为ADSL2+Modem使用;具有PC机上的Windows下的网络测试功能(Tracert, Ipconfig等);不小于20M字节的存储空间可以存储测试记录,并可以通过U盘或局域网交换测试数据;可仿真用户的计算机做拨号测试;可仿真用户的计算机PING IP地址和域名测试;可仿真用户的计算机浏览网页;可以跟踪从一起到远程计算机的主机名和IP地址的链接路径(Tracert测试);可以显示仪表IP路由表(Route测试);显示仪器所有当前的TCP/IP网络配置值、刷新动态主机配置协议(DHCP)和域名系统(DNS)设置(IPCONFIG测试);测试仪软件可以通过U盘和局域网升级。

这些特性对于Windows CE来说比较容易实现。另外在这个项目中,我们使用了Samsung 2410开发板,因为该开发板是基于ARM9处理器的,因此我们在定制系统之前,我们要更改自己的BSP,选择正确的BSP,才能使各项组件运行正常。

1、更改BSP:

在X:/WINCE420/PLATFORM 目录下新建一个名为“SMDK2410”的目录,此路径是BSP的存放目录,我们所需要的BSP都可以在这个路径下找到。(说明:X:/ 表示安装PB的目录)如果该目录下已有名为SMDK2410 的目录,将其改名备份;然后拷贝光盘中的2410WINCE4.2BSP

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值