阅读:1926回复:7
自动分区格式化并加载有问题
256M的NAND FLASH,WinCE5.0
目的:想将NK剩下的空间自动分区为FAT格式 做法:修改platform.reg中相关内容 [HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\FlashDisk] "DefaultFileSystem"="FATS" "PartitionDriver"="mspart.dll" "AutoPart"=dword:1 "AutoMount"=dword:1 "AutoFormat"=dword:1 "MountAsROM"=dword:1 "Folder"="Flash Disk" "BootPhase"=dword:0 "Name"="FLASH Disk Block Device" [HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\FlashDisk\FATFS] "MountAsROM"=dword:1 "Flags"=dword:14 "FormatTfat"=dword:1 "CheckForFormat"=dword:1 "MountAsBootable"=dword:1 [HKEY_LOCAL_MACHINE\Drivers\BuiltIn\MSFlash] "Profile"="FlashDisk" "IClass"=multi_sz:"{A4E7EDDA-E575-4252-9D6B-4195D48BB865}" "Order"=dword:0 "Index"=dword:1 "FriendlyName"="MSFLASH Driver" "Dll"="smflash.dll" "Prefix"="DSK" 结果:系统可以启动,已经可以看到flash的FATFS分区盘符。 但只是下载到Flash后的第一次可以 系统启动过以后,将除了Boot以外的所有分区都格式化了 我用仿真器看过,此时Flash里除了Bootloader以外,其余部分全都是0, 操作系统已经都被格式化掉了,第二次也就无法启动了 问题: 我现在想知道的是这个AutoFormat的起始地址在哪里决定,以便我可以更改,把除了NK以外的部分格式化掉,而保留NK分区 此外看到有人说,AutoFormat不会对BINFS重新操作。那么如何确定哪里是BInFS,哪里是FATFS呢? 我定制的系统已经加入BinFS的特性了,可是怎么还会被格式化掉? 我目前写入Flash中的NK已经是BinFS了吗? 望各位指点! |
|
|
沙发#
发布于:2007-11-26 20:39
\PUBLIC\COMMON\OAK\DRIVERS\BLOCK\MSFLASHFMD\FASL\FASLD\fasld.reg
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\FASLD] ... "MemBase"=dword:00000000 "MemLen"=dword:00000000 |
|
|
板凳#
发布于:2007-11-26 20:39
\PUBLIC\COMMON\OAK\DRIVERS\BLOCK\MSFLASHFMD\FASL\FASLD\fasld.reg
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\FASLD] ... "MemBase"=dword:00000000 "MemLen"=dword:00000000 |
|
|
地板#
发布于:2007-11-27 09:48
引用第2楼cool_harber于2007-11-26 20:39发表的 : \PUBLIC\COMMON\OAK\DRIVERS\BLOCK\MSFLASHFMD\FASL\FASLD\fasld.reg 里面写着: ; This file is to be included in platform.reg if required. 我是需要手动把这个文件内容加到paltform.reg里面吗? 这个怎么感觉是NOR Flash的地址呢,我用的是Namd flash啊 我需要把一下这些加入到platform.reg里吗 [HKEY_LOCAL_MACHINE\Drivers\BuiltIn\FASLD] "Dll"="fasld.dll" "Order"=dword:2 "Prefix"="DSK" "Ioctl"=dword:4 "Profile"="MSFlash" "IClass"="{A4E7EDDA-E575-4252-9D6B-4195D48BB865}" "MemBase"=dword:00000000 "MemLen"=dword:00000000 |
|
|
地下室#
发布于:2007-11-27 10:38
把
"AutoPart"=dword:1 "AutoMount"=dword:1 "AutoFormat"=dword:1 去掉试试。看看系统能否启动,FAT能否分区(在管理器中看到PART01),FAT能否加载(PART01*,多个*,表示加载) |
|
|
5楼#
发布于:2007-11-27 11:48
你可能需要看看nand flash的驱动代码.
我见过2种方法来保留reserved扇区. 一种是动态的,通过在16个字节的冗余信息里面设定标志声明自己是被保留的. 另一种是头文件指定的.指定的开始地址,开始地址之前的扇区,驱动将访问不到. 其实主要区别在于,驱动有没有对输入的地址进行转换 |
|
6楼#
发布于:2007-11-27 15:24
引用第4楼dfgeoff于2007-11-27 10:38发表的 : 去掉是可以启动的,但PART01是什么,没有看到啊 我是为了分区才加上 "AutoPart"=dword:1 "AutoMount"=dword:1 "AutoFormat"=dword:1 去掉就看不到Nad Flash这个分区了 |
|
|
7楼#
发布于:2007-11-27 15:34
各位是如何实现FATFS分区的?
|
|
|