阅读:2078回复:2
wince 5对nandflash怎么分区管理的?
我使用的是2K page的512M的nandflash,flash前面256K是nandbootloader,不能擦除的。
在wince control panel中可以看到flash的容量,但是不能建立分区!我选择了一个format,则把整个nandflash给format了! 能不能让wince保留一部分?怎么实现? |
|
沙发#
发布于:2007-01-14 00:43
现在我对整个nandflash进行format之后,可以建立分区,好像是format为fat格式。但是整个难道已经全部被使用了。下次启动只有使用仿真器烧写bootloader了!
怎样配置,可以让wince仅仅使用一部分nandflash ? 我没有使用eboot,是使用的uboot来装入nk.nb0。 另外,如果能在nandflash上建立分区,是否可以保存wince的registry,cold reboot也可以恢复原先的设置? |
|
板凳#
发布于:2007-01-15 11:54
to sdssly:
因为你没有使用eboot,所以CE跑起来找不到MBR,找不到FAT分区的起始sector,所以它从头开始查找第一个非坏块,开始格式化,写入MBR,DBR,BPB。所以你要把烧写bootloader的存储空间和NK.BIN的空间置成坏块就可以了,试试吧。(MarkBlockBad)。 eboot只是写入了MBR,没有写DBR,和BPB等信息。是CE系统运行起来的时候,我们知道编译fmd驱动的时候,会连接一个fal.lib库,而该库就是文件系统抽象层,看不到源码,我们可以看smflash.map知道它里面有那些函数,系统在起来的时候,filesys.exe会加载smflash.dll,调用DSK_Init()->FMD_Init(),会调FMD_GetInfo得到FLASH芯片信息,然后会去mount文件系统,首先从头开始找,第一个非坏块,因为我们知道我们的eboot,要把nboot,eboot的存储空间保留成坏块,这样是防止系统运行起来的把它们给格式化了,第一个非坏块的第一个sector就是存储MBR的信息。它里面有PARTENTRY的信息,得到这个再跟据注册表里的指定的mount文件系统,如果是FATFS,并且在FAT分区中没有找到有效的DBR,BPB信息sector之后,会调用fatutil.dll中的格式化功能进行格式化,这时才真正写入DBR,BPB等信息。 |
|