0.WinCE6.0的MULTIPLE XIP功能:
根据"SMDK6410_WinCE60_PocketMory_PortingGuide.pdf"文档的"17 Multiple XIP"章节:
Our BSP support Multiple XIP on NAND flash media by BinFS.
说S3C6410的BSP可以在NAND Flash上实现基于BinFS的MULTIPLE XIP功能;
The Hive-Based registry is required when using BINFS(demand-paged, pseudo-multi-XIP) because all of the file system waiting/blocking is implemented in the hive-based registry init code, and not in the RAM-Based registry init code.
所以构建WinCE镜像时,需要添加Hive-Based registry和BINFS[Binary Rom Image file System]组件:
Core OS->CEBASE->File Systems and Data Store->Registry Storage->Hive-based Registry;
Core OS->CEBASE->File Systems and Data Store->Storage Manager->Binary Rom Image file System;
//------------------------------------------
1.对于\SMDK6410\SMDK6410.bat:
确保:
set IMGHIVEREG=1
set IMGMULTIXIP=1
前一行影响的文件是"SMDK6410\FILES\platform.reg";
后一行影响的文件是"\SMDK6410\FILES\MultipleXIP.bib"和"\SMDK6410\FILES\config.bib";
//------------------------------------------
2.
All driver which has Powerdown/PowerUp function must be made in non-pageable for power
handler scheme in WinCE6.0. You can find all drivers that need to be non-pageable with
below command.
flatreleasedir> findstr /m “PowerDown” *.map
After searching such as those drivers with above command, you must make them be nonpageable
with adding ‘M’flag in the .bib file.
//------------------------------------------
寻找需要使用Powerdown/PowerU电源管理的驱动,并对其做处理:
使用正则表达式搜索文件中的文本,如果文件包含匹配项,则仅打印该文件名,findstr命令修正为:
flatreleasedir> findstr /m PowerDown *.map
平台release目录也就是环境变量_FLATRELEASEDIR的值,
_FLATRELEASEDIR的 = %_WINCEROOT%\PBWorkspaces\%_TGTPROJ%\RelDir\%_TGTPLAT%\%_TGTCPUFAMILY%_Release;
也就是realease目录,(_TGTPLAT为平台名,_TGTCPUFAMILY为CPU名);
我新建的平台为shellTest,其值为E:\WINCE500\PBWorkspaces\ShellTest\RelDir\MyCEPC_x86_Release;
//------------------------------------------
3.
D:\WINCE600\OSDesigns\REAL6410V1\REAL6410V1\RelDir\SMDK6410_ARMV4I_Release>findstr /m PowerDown *.map
backlight.map
battdrvr.map
BIBDrv.map
btagsvc.map
btsvc.map
busenum.map
com16550.map
com_card.map
coredll.map
credsvc.map
ddi_ragexl.map
ehci.map
es1371.map
fsdmgr.map
gwes.map
k.coredll.map
mux07_10.map
nandflash.map
ndis.map
netbios.map
nleddrvr.map
ohci2.map
ONDisk.map
pcc_i82365.map
pcc_pcm.map
pcc_serv.map
pcc_serv16.map
pcc_serv32.map
pcc_tipccard.map
pcc_tipccard16.map
pcc_tipccard32.map
pcibus.map
pegasSDN.map
pm.map
s3c6410_fimg.map
s3c6410_hsmmc0.map
s3c6410_hsmmc1.map
s3c6410_iic.map
s3c6410_jpeg.map
s3c6410_mfc.map
s3c6410_ohci2.map
s3c6410_PwrCon.map
s3c6410_uao.map
s3c6410_usbfn.map
s3c6410_wavedev.map
s3c6410_wavedev_ac97.map
s3c6410_wavedev_iis.map
scard.map
sdbus.map
SDBus2.map
sdhc.map
SDIO8686.map
SDMemory.map
serial.map
serialusbfn.map
servicesd.map
servicesenum.map
sio950.map
smdk6410_camera.map
smdk6410_serial.map
softkb.map
timesvc.map--->timesvc.dll在servers.bib中调用;
udevice.map
uhci.map
uiproxy.map
usbdisk6.map
wcestreambt.map
wendyser.map
D:\WINCE600\OSDesigns\REAL6410V1\REAL6410V1\RelDir\SMDK6410_ARMV4I_Release>
//------------------------------------------
4.WinCE6.0的下载:
根据"SMDK6410_WinCE60_PocketMory(MLC)_InstallationManual.pdf"的第6章"Fusing WinCE Single .bin Image to NAND Flash via USB";
A.使用0.6版的dnw.exe软件并配置好使用串口和波特率为115200,[USB的Download Address设置为0x50030000--可以不设置,该地址在Eboot启动信息中可以确认],连接好交叉串口线;
B.点击Serial Port菜单,选择Connect,然后开启S3C6410开发板电源,并在PC端按下空格键让dnw的输出菜单等待;
C.先按照通过SD卡升级程序的方法启动Eboot,在Eboot菜单中选择"A) Format FIL(Erase All Blocks)",格式化所有分区;
然后下载block0.nb0和EBoot.bin[参见"Real6410 WinCE用户手册V4.pdf"的第五章相关内容];
D.设置好跳线,从Nand启动,接入Eboot菜单重启;
E.在Eboot菜单中选择确保
第5项:Startup image: LAUNCH EXISTING;
第6项rogram disk image into SmartMedia Card: ENABLED;
第8项:KITL Configuration: DISABLED;
F.在Eboot菜单中选择"U) DOWNLOAD image now(USB)",通过dnw菜单的USB Port->UBOOT->UBOOT选择镜像:
为no IMGMULTIXIP模式下,下载NK.bin文件,然后会启动WinCE6.0系统;
为IMGMULTIXIP=1模式下,下载chain.lst文件,然后Eboot会
------解决方案--------------------
路过,折腾了很久,在5.0下没有实现的飘过。。。
------解决方案--------------------
重新下载下block0.nb0呢