|
2006/9/15几个经验
从着手这个项目以来,通过不断地看书和学习,获得了一些开发经验,现在拿出来分享。
首先说前几天遇到的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.com/blog/cns!BFC904516310C042!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目录下,关于该系统的配置文件可以在这个文件夹中找到。
|
|