sdssly
驱动牛犊
驱动牛犊
  • 注册日期2003-03-04
  • 最后登录2016-01-09
  • 粉丝2
  • 关注0
  • 积分344分
  • 威望47点
  • 贡献值0点
  • 好评度34点
  • 原创分0分
  • 专家分0分
阅读:2009回复:2

wince 5对nandflash怎么分区管理的?

楼主#
更多 发布于:2007-01-13 22:31
  我使用的是2K page的512M的nandflash,flash前面256K是nandbootloader,不能擦除的。

在wince control panel中可以看到flash的容量,但是不能建立分区!我选择了一个format,则把整个nandflash给format了! 能不能让wince保留一部分?怎么实现?
sdssly
驱动牛犊
驱动牛犊
  • 注册日期2003-03-04
  • 最后登录2016-01-09
  • 粉丝2
  • 关注0
  • 积分344分
  • 威望47点
  • 贡献值0点
  • 好评度34点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-01-14 00:43
现在我对整个nandflash进行format之后,可以建立分区,好像是format为fat格式。但是整个难道已经全部被使用了。下次启动只有使用仿真器烧写bootloader了!

怎样配置,可以让wince仅仅使用一部分nandflash ? 我没有使用eboot,是使用的uboot来装入nk.nb0。

另外,如果能在nandflash上建立分区,是否可以保存wince的registry,cold reboot也可以恢复原先的设置?
zhengshijie
驱动小牛
驱动小牛
  • 注册日期2003-07-11
  • 最后登录2009-03-18
  • 粉丝1
  • 关注0
  • 积分8分
  • 威望217点
  • 贡献值0点
  • 好评度199点
  • 原创分3分
  • 专家分0分
板凳#
发布于: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等信息。
游客

返回顶部