none
wince6.0下的FAL和Eboot问题 RRS feed

  • 问题

  • 大家好,我现在在s3c6410上做个事情,想利用老的FAL+nand flash driver并配合mspart对nand flash分区,加载fatfs。
    我是这样做的,在eboot中用BP_OpenPartition创建两个分区:第一个是BINFS,第2个FATFS.现在的问题是,wince6启动后,在storage manager里能看到两个分区part00,part01.但是它们没有自动加载,我必须要对part01(FATFS)先format,然后才能mount,mount后,在根目录下有个flash的文件夹。
    但是下次再启动wince,还是要重复上述的过程。我的注册表中把automount, autoformat,autopart这些都试了个遍,好像不管怎么设置这些key的值,都没有任何差别。
    我的怀疑是:
    1.wince6提供的exfat.dll是否相对于wince5上的fatfsd.dll有很大改动,而微软没有把mspart.dll.fisesys.dll等等这些弄一致,因为现在我们用wince6中的MDD+PDD这种架构是没问题的,就是老的FAL+PDD的架构出现这种问题
    2.我看了FAL和mspart的代码,以及eboot的代码。很奇怪的是,eboot分区的时候把MBR是写到物理上的第一个可用的block中。而mspart所有的操作均是基于逻辑块的,它把MBR放在逻辑块的第一个块上,然而逻辑块的第一个块经过FAL的衍射对应的物理块是随机的。从这个意义上说,wince和eboot对MBR的位置是互相不认识的;但是为什么 wince启动后再控制面板的存储管理器中能正确识别有两个分区,每个分区的大小,以及每个分区的文件系统类型,从这个角度分析,wince似乎确实是真的eboot写的那个MBR在什么地方,并且正确的读到了MBR的信息的。
    是否wince R2中就已经不能用老的FAL那套东西了?
    请专家和高手指点,谢谢
    BTW:我的nand flash是samsung的1GB的MLC nand flash, 2kB/page, 128pages/block
    2009年7月29日 4:30