【醒目】wince如何实现multi bin【300分】

constantine 2007-11-28 11:25:16
环境:wince5.0+s3c2410 + 64M flash
参考了网上一些2440 的资料,做出来老是启动不了,又不就有错误。
不知道哪位兄弟实现过,介绍一下。
谢谢了!
只能发100分帖,解决了再放200分。
...全文
1458 点赞 收藏 33
写回复
33 条回复
切换为时间正序
请发表友善的回复…
发表回复
yunfei1130 2009-12-14
请问wince4.2下支持multi bin吗???
回复
gooogleman 2008-10-13
[Quote=引用 30 楼 sdssly 的回复:]
我现在好像成功实现了。参考的文章是这个:
http://bbs.driverdevelop.com/htm_data/48/0709/106094.html

但是还不明白以前是什么地方出现的错误,以前我也是根据这些资料做的呀!正在测试,看看是怎么回事

我测试中的几点心得:1 使用PB新建立一个platform,选择最少的组件,这样sysgen build比较块
2 build选择debug版本,启动信息更多,方便定位

zippo2004我建议你build一个debug版本的,这样比较容易发现错误…
[/Quote]

---------------07年好多牛贴啊,08年你们都跑哪去了?
回复
zippo2004 2007-12-20
constantine ,你说的“烧xip.nb0”具体是怎么操作的呢?是将xip.nb0通过eboot下载还是直接通过DNW下载到RAM的30200000地址?我想是前者吧?

我目前的做法是:
1.将生成的xip.nb0通过DNW下载到RAM 30200000执行
2.事先通过SD卡升级将xip.bin烧到Nand上,然后通过nboot->eboot->xip.bin的方式启动
两种方式的打印结果都一样,到这就挂
FMD_OEMIoControl: unrecognized IOCTL (0x71c24).
OEMIoControl: Unsupported Code 0x1010104 - device 0x0101 func 65
我想是不是这个做法上出问题了呢?
我所看到的成功案例好像都是利用eboot来下载并烧写的,是在烧写的时候自动创建binfs和fatfs分区的
回复
sdssly 2007-12-19
我现在好像成功实现了。参考的文章是这个:
http://bbs.driverdevelop.com/htm_data/48/0709/106094.html

但是还不明白以前是什么地方出现的错误,以前我也是根据这些资料做的呀!正在测试,看看是怎么回事

我测试中的几点心得:1 使用PB新建立一个platform,选择最少的组件,这样sysgen build比较块
2 build选择debug版本,启动信息更多,方便定位

zippo2004我建议你build一个debug版本的,这样比较容易发现错误

我的msn tylerli@msn.com 有问题大家讨论
回复
zippo2004 2007-12-18
我生成xip.nb0,通过DNW下载,打印信息如下:

Windows CE Kernel for ARM (Thumb Enabled) Built on Feb 8 2007 at 23:36:51
ProcessorType=0920 Revision=0
sp_abt=ffff5000 sp_irq=ffff2800 sp_undef=ffffc800 OEMAddressTable = 802010e8
DCache: 8 sets, 64 ways, 32 line size, 16384 size
ICache: 8 sets, 64 ways, 32 line size, 16384 size
CPU FCLK 400926792 Hz, HCLK 133642264 Hz, PCLK 66821132 Hz
SN9610 LCD 16BPP Active!
Sp=ffffc7cc
OEMIoControl: Unsupported Code 0x10100b4 - device 0x0101 func 45
OEMIoControl: Unsupported Code 0x101008c - device 0x0101 func 35
FMD::FMD_Init
FMD::FMD_Init - pBSPArgs->nfsblk = 0x0
FMD::FMD_Init - READ_REGISTER_BYTE(pNFSBLK) = 0x0
FMD::FMD_Init IPL .....
FMD::FMD_Init Done
MID = 0xec, DID = 0xf1 4th Cycle : 0x0
dwPrimaryNandDevice : 7(0x7)
astNandSpec[dwPrimaryNandDevice].nSctsPerPg: 4(0x4)
wPRIMARY_REAL_NAND_BLOCKS : 1024(0x400)
NUMBLOCKS : 1024(0x400), SECTORSPERBLOCK = 256(0x100), BYTESPERSECTOR = 512(0x200)
FMD_OEMIoControl: unrecognized IOCTL (0x71c24).
OEMIoControl: Unsupported Code 0x1010104 - device 0x0101 func 65

每次在这就挂
回复
constantine 2007-12-18
sdssly:
*.hv 文件是隐藏文件来的,你要打开对应设置才能看到
回复
sdssly 2007-12-18
当前我的XIP不会出现filesys错误了,BINFS中的EXE和DLL好像也load了,但是启动到后来 lcd黑屏,就没有启动桌面?

回复
sdssly 2007-12-16
使用PB编译一个DEBUG版本看看问题出在哪里?

我修改了一下platform.reg,和你的设置相同,结果erase nandflash之后,也出现filesys的错误了

感觉还是registry的设置问题 你编译之后能找到*.hv文件吗?我的为什么没有这些文件?但是bin又能生成,bin
中有这些文件
回复
sdssly 2007-12-14
我测试中发现,如果不把xip.bin使用Eboot写入到nandflash上,仅仅启动XIP.nb0,则会出现filesys的错误

写入nandflash上之后,就没有这个错误了。但是我的不能启动
回复
constantine 2007-12-14
我只烧XIP.nb0没有错
回复
AppFramework 2007-12-13
顶,我也搞了好长时间没成功,启动时总是停在 filesys.exe 出错的地方。
回复
fengwx 2007-12-12
需要在EBOOT中先格式化一个BINFS分区,把下载的IMAGE写到这个分区中。启动的时候EBOOT先把BINFS分区中的XIPKERNEL.bin和chain.bin这两个加载到SDRAM。
可以到MSDN上搜索“How to Implement BinFS”关键字能找到相关的文档。网址“http://msdn2.microsoft.com/en-us/library/bb154515.aspx
回复
sdssly 2007-12-12
我刚刚编译得到了一个XIP.nb0,使用Ubootload到SDRAM的0x30200000地址并且设置PC为0x30200000
启动WINCE最后出现了错误:
Data Abort: Thread=83dc7000 Proc=83235f30 'filesys.exe'
AKY=00000003 PC=03f9e9c8(coredll.dll+0x0002e9c8) RA=03f9e9a0(coredll.dll+0x0002e9a0) BVA=04000000 FSR=00000007

Unhandled exception c0000005:
Terminating thread 83dc7000
Data Abort: Thread=83dc7000 Proc=83235f30 'filesys.exe'
AKY=ffffffff PC=803514a4(NK.EXE+0x001514a4) RA=8035147c(NK.EXE+0x0015147c) BVA=03f01450 FSR=00000007
MMFILE: logged FlushMap failed on read 1
RaiseException: Thread=83dc7000 Proc=83235f30 'filesys.exe'
AKY=00000003 PC=8034b76c(NK.EXE+0x0014b76c) RA=803378d4(NK.EXE+0x001378d4) BVA=00000001 FSR=00000001

Unhandled exception c000000d:
Exception 'RaiseException' Thread=83dc7000 AKY=00000003 PC=00000000 BVA=00000001
R0=0003f024 R1=00000001 R2=0406f9c8 R3=00000000
R4=83235220 R5=00000000 R6=33c39000 R7=00000000
R8=00000000 R9=83cb6010 R10=83daf084 R11=a3c39000
R12=8034cfa0 SP=8033975c Lr=00000000 Psr=8000001f
Can't terminate thread 83dc7000, sleeping forever


回复
sdssly 2007-12-12
我也在搞这个 刚刚调试通Eboot 可以启动标准的nk.bin

以前我的bootloader是Uboot

我先看看你的方法 有问题再问
回复
constantine 2007-12-12
麻烦没搞定,郁闷
回复
sdssly 2007-12-12
我现在使用Eboot把XIP.bin写入nandflash,启动最后出现一个信息:
Invalid handle: Set=1 Method=11

系统就停在了这里

回复
fengwx 2007-12-11
应该是可以的。不用multi bin你的系统能启动吗?
回复
constantine 2007-12-11
可以启动。我按照上面给出的参数配置,一样可以用xip.nb0启动。XIPKERNEL烧进去就不行。不知道是注册表部分错误还是烧写有错误。
回复
constantine 2007-12-10
chain.lst等文件都有的

在EBOOT里面先要把XIPKERNEL.bin和chain.bin这两个加载到SDRAM,然后在跳转到kernel开始地址。
-----------
是要自己修改eboot的代码让他跳转?另外网上一般说的是先烧xip.bin,然后用xipkernel.bin覆盖,这样没说吧。
回复
fengwx 2007-12-07
你编译的有产生chain.lst文件吗?下载的时候要选择这个文件。
在EBOOT里面先要把XIPKERNEL.bin和chain.bin这两个加载到SDRAM,然后在跳转到kernel开始地址。
回复
发动态
发帖子
嵌入开发(WinCE)
创建于2007-09-28

1.9w+

社区成员

硬件/嵌入开发 嵌入开发(WinCE)
申请成为版主
社区公告
暂无公告