10593|24

60

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

请教wince 中的多fat32分区问题 [复制链接]

目前我在uboot中增加了一个fat32分区,现在总共一个binfs分区,一个1m的fat32分区,剩下的就为另一个fat32分区。在系统起来后存储管理器的属性中能看到part00,part01,part*02。第一个是binfs分区,后两个为fat分区,感觉part01好象没有mount上,我在分区属性中查看后两个分区类型为:0x0b,文件系统:fatfsd.dll,标志,part01=0x00000000,part02=0x00000010;在容量中显示未分配:2。00tb,扇区大小=512b
系统为s3c2440+ce4.2,nandflash为64m的k91208。
问一问大家,这个问题出在那里?
注册表中设置如下:
; Entries to load the block driver that BINFS uses
; This is dependent on what device is used
;
;HIVE BOOT SECTION    ;add by wyx
[HKEY_LOCAL_MACHINE\System\StorageManager\AutoLoad\FlashDrv]
        "DriverPath"="Drivers\\BlockDevice\\FlashDrv"
        "LoadFlags"=dword:1
        "MountFlags"=dword:11
        "BootPhase"=dword:0
        "Flags"=dword:1000      ;add by wyx

[HKEY_LOCAL_MACHINE\Drivers\BlockDevice\FlashDrv]
        "Prefix"="DSK"
        "Dll"="FLASHDRV.dll"
        "Order"=dword:0
        "Ioctl"=dword:4
        "Profile"="FlashDrv"
        "FriendlyName"="MS Flash Driver"
        "MountFlags"=dword:11
        "BmlVolumeId"=dword:0
        "BmlPartitionId"=dword:8
        "IClass"=multi_sz:"{A4E7EDDA-E575-4252-9D6B-4195D48BB865}"
        "BootPhase"=dword:0
        "Flags"=dword:1000      ;add by wyx

; Bind BINFS to the block driver
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\FlashDrv]
        "DefaultFileSystem"="BINFS"
        "PartitionDriver"="mspart.dll"
        "AutoMount"=dword:1
        "AutoPart"=dword:1
        ;"MountFlags"=dword:11
        "MountFlags"=dword:2       ;add by wyx
        "AutoFormat"=dword:1
        "Folder"="ResidentFlash"

        "Name"="Microsoft Flash Disk"
        "BootPhase"=dword:0

最新回复

我在S5pv210 上分区两个,但是像楼主一样的现象,继续整!  详情 回复 发表于 2013-12-16 19:44
点赞 关注

回复
举报

70

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
怎么没人?解决了我就把全部步骤贴出来,我想这个肯定困扰了很多人,另外说明一下,这个是在ads下做的分区
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
说说你的思路?

你是两个分区共享一个驱动?

我觉得还是每个分区弄个驱动比较简单点。哈哈。
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

4
 

[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\FlashDisk]
   "Prefix"="DSK"
   "Dll"="ONDisk.dll"
   "Order"=dword:1
   "Index"=dword:3
   "IClass"=multi_sz:"{A4E7EDDA-E575-4252-9D6B-4195D48BB865}"
   "Profile"="FlashDisk"
   "BmlVolumeId"=dword:0        ; BML volume ID = 0
   "BmlPartitionId"=dword:8        ; BML parition ID = PARTITION_ID_FILESYSTEM
   "WMRStartSector"=dword:0
   "WMRNumOfSector"=dword:40000        ; 32MByte
;   "Flags"=dword:11000        ; do not load again in boot phase 2        ;

[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\FlashDisk]
    "DefaultFileSystem"="FATFS"
    "PartitionDriver"="mspart.dll"
    "Name"="PocketMory MLC Disk"
    "Folder"="DataFolder"
    "AutoMount"=dword:1
    "AutoPart"=dword:1
    "AutoFormat"=dword:1
    "MountFlags"=dword:0
;    "Ioctl"=dword:4

[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\FlashDisk\FATFS]
    "FriendlyName"="PocketMory FAT FileSystem"
    "Dll"="fatfsd.dll"
    "Flags"=dword:00000014                        ; FATFS_ENABLE_BACKUP_FAT | FATFS_DISABLE_AUTOSCAN
    "FormatTfat"=dword:1
    "EnableCacheWarm"=dword:0

;----------------------------------------------------------------------------
; 2nd FAT Area
;----------------------------------------------------------------------------

[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\FlashDisk1]
   "Prefix"="DSK"
   "Dll"="ONDisk.dll"
   "Order"=dword:1
   "Index"=dword:1
   "IClass"=multi_sz:"{A4E7EDDA-E575-4252-9D6B-4195D48BB865}"
   "Profile"="FlashDisk1"
   "BmlVolumeId"=dword:0                ; BML volume ID = 0
   "BmlPartitionId"=dword:9        ; BML parition ID = PARTITION_ID_FILESYSTEM1
   "WMRStartSector"=dword:40000
   "WMRNumOfSector"=dword:ffffffff        ; last location
;   "Flags"=dword:11000        ; do not load again in boot phase 2        ;

[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\FlashDisk1]
    "DefaultFileSystem"="FATFS"
    "PartitionDriver"="mspart.dll"
    "Name"="PocketMory MLC Disk1"
    "Folder"="Storage Card"
    "AutoMount"=dword:1
    "AutoPart"=dword:1
    "AutoFormat"=dword:1
    "MountFlags"=dword:0
;    "Ioctl"=dword:4

[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\FlashDisk1\FATFS]
    "FriendlyName"="PocketMory FAT FileSystem1"
    "Dll"="fatfsd.dll"
    "Flags"=dword:00000014                        ; FATFS_ENABLE_BACKUP_FAT | FATFS_DISABLE_AUTOSCAN
    "FormatTfat"=dword:1
    "EnableCacheWarm"=dword:0


参考一下吧
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

5
 
楼上就是两个flash驱动的,牛!我只是听人说这么做比较好。收藏了。

点评

不是两个驱动吧,而是一个驱动,做了两次分区。  详情 回复 发表于 2013-12-16 19:43
 
 
 

回复

86

帖子

0

TA的资源

一粒金砂(初级)

6
 
参考了一下Veabol 的注册表设置,但是在4。2下
不知道这两个支持不?是否有效,"WMRStartSector"=dword:40000
  "WMRNumOfSector"=dword:ffffffff ; last location
在pb的文档中没找到
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

7
 
我刚才查了一下,那几个值是在BSP的驱动中用到的
 
 
 

回复

53

帖子

0

TA的资源

一粒金砂(初级)

8
 
http://topic.eeworld.net/u/20071126/17/E606B660-E467-4BDC-96FA-DB98F7F84C29.html
http://topic.eeworld.net/u/20071116/14/A3852A4D-49F9-4BC6-A94E-7C15DC6E1565.html

这两篇帖子+http://www.51wince.com/article/239.htm这篇帖子。

我按照这两个搞定的。提醒下block的大小可以自己定的。
 
 
 

回复

60

帖子

0

TA的资源

一粒金砂(初级)

9
 
这是我的分区部分:
        // 加BINFS分区入口
        dwPartType = PART_BINFS;
        dwBootInd  = PART_IND_ACTIVE;
        dwBootInd |= PART_IND_READ_ONLY;
        AddPartitionTableEntry(0, BINFS_SECTOR, BINFS_SECTOR_SIZE, (BYTE)dwPartType, (BYTE)dwBootInd);

        // 加DOS32分区入口
        dwPartType = PART_DOS32;
        dwBootInd  = PART_IND_ACTIVE;
        AddPartitionTableEntry(1, REGEDIT_BLOCK, REGEDIT_BLOCK_SIZE, (BYTE)dwPartType, (BYTE)dwBootInd);

        // 加DOS32分区入口
        dwPartType = PART_DOS32;
        dwBootInd  = PART_IND_INACTIVE;
        AddPartitionTableEntry(2, FREE_SECTOR, FREE_SECTOR_SIZE, (BYTE)dwPartType, (BYTE)dwBootInd);

调试信息显示的分区表的最后66个字节:
                                                03 0B
01 00 21 12 20 00 60 01 00 00 00 E1 00 00 01 38
14 00 0B 38 1D 00 13 07 00 00 0A 00 00 00 00 1D
01 00 0B CD 20 00 A0 E3 00 00 20 16 01 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 AA
显示三个分区都成功了的。目前还是没mount上,感觉好象是第2个分区好象变成binfs的了
 
 
 

回复

61

帖子

0

TA的资源

一粒金砂(初级)

10
 
AddPartitionTableEntry?
我是在nand.cpp和platform.reg两个文件里面修改了。你这个是bootpart.cpp的吧。。。汗
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

11
 
引用 9 楼 xumercury 的回复:
AddPartitionTableEntry?
我是在nand.cpp和platform.reg两个文件里面修改了。你这个是bootpart.cpp的吧。。。汗
不好意思,我的的确没有在nand驱动里改什么,这个是在bootloader里改的
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

12
 
4.2的bootpart上,不能创建两个同样文件系统的分区,
你后面两个都是FAT32的,创建第二个的时候,他会发现已经有了个FAT32的,就不会再创建了
 
 
 

回复

84

帖子

0

TA的资源

一粒金砂(初级)

13
 
我最近刚刚实现,你在eboot里面分区的时候有个要把open_patition里第三个参数改成false,然后在注册表里面把profile\fatfs下network相关改为0就ok了
 
 
 

回复

60

帖子

0

TA的资源

一粒金砂(初级)

14
 
引用 11 楼 Sniper167 的回复:
4.2的bootpart上,不能创建两个同样文件系统的分区,
你后面两个都是FAT32的,创建第二个的时候,他会发现已经有了个FAT32的,就不会再创建了

好象是这么回事情,我无论怎么分区,都是把最后的剩余空间mount成fat32来文件夹使用,但是要实现多分一个fat32的区这个该怎么做?目前有人说改驱动,让驱动加载两次
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

15
 
看了你的注册表,好像没问题,如果还没有mount就试试看part01的分区的open_partition(..,..,FALSE,..,..);
 
 
 

回复

88

帖子

0

TA的资源

一粒金砂(初级)

16
 
这个是正解
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

17
 
引用 14 楼 lesho 的回复:
看了你的注册表,好像没问题,如果还没有mount就试试看part01的分区的open_partition(..,..,FALSE,..,..);

这个是正解
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

18
 
ding
先吃个饭
 
 
 

回复

56

帖子

0

TA的资源

一粒金砂(初级)

19
 
收藏一下
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

20
 
不错,收藏
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表