3026|1

854

帖子

0

TA的资源

五彩晶圆(中级)

楼主
 

wince 下用应用程序给nandflash 多分区的一个方法 [复制链接]

在CSDN看到的,转过来学习一下
http://bbs.csdn.net/topics/330066780
用CreatePartition()就可以了。流程

1、用FindFirstStore()和FindNextStore()枚举系统中所有Store设备,根据szStoreName判断是不是我们要的Nand Flash。
2、根据找到的Store句柄调用CreatePartition(),可以指定partition的名字、扇区数
3、调用OpenPartition(),根据Store句柄和Partition的名字打开分区
4、调用DismountPartition()卸载分区。
5、调用FormatVolume()格式化分区,此时可以指定簇大小、FAT版本等。
6、调用MountPartition()加载分区

2---6可以重复多次调用,就可以建立多个分区了。
注意每个分区的大小,不要第一次就用完了Store的所用空间,后面的分区会建立失败的


注册表
引用 5 楼 gooogleman 的回复:
引用 3 楼 yangcuncunzhang 的回复:
用CreatePartition()就可以了。流程

1、用FindFirstStore()和FindNextStore()枚举系统中所有Store设备,根据szStoreName判断是不是我们要的Nand Flash。
2、根据找到的Store句柄调用CreatePartition(),可以指定partition的名字、扇区数
3、调用OpenPartition(),根据Store句柄和Partition的名字打开分区
4、调用DismountPartition()卸载分区。
5、调用FormatVolume()格式化分区,此时可以指定簇大小、FAT版本等。
6、调用MountPartition()加载分区

2---6可以重复多次调用,就可以建立多个分区了。
注意每个分区的大小,不要第一次就用完了Store的所用空间,后面的分区会建立失败的


楼主是ADS bootloader的,估计是自动分区那种,楼主应该 多加载一次驱动,估计就可以了。呵呵

BootLoader是什么编译的应该没关系吧?
我的项目中,BootLoader也是ADS1.2的,WinCE5是PlatForm Builder做的,就是用上面的办法建立多个分区的,注册表中只用了一份驱动。这样有个小缺陷:分区的名字是根据注册表里面指定的,如果用上面的API建立多个分区,各个盘符的名字会是Nand Flash, Nand Flash1, Nand Flash2。

楼主,下面是我的注册表项

; Use Device Manager to load the NAND FMD driver as a built-in block driver.
; This can be used for both WinCE and Windows Mobile builds.
;
; Note: We support Windows Mobile Image Update build for SmartPhone,
; and the registry settings below get conflicts with the ones needed by Image Update.
; So we will overwrite them and setup Storage Manager Autoload keys in SmartPhone section
; to load NAND FMD driver as persistent storage during the early boot phases.
;
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\NANDFMD]
    "Profile"="FlashDisk"
    "Index"=dword:1
    "Dll"="nandfmd.dll"
    "Prefix"="DSK"
    "Order"=dword:1
    "FSD"="FATFS.DLL"
    "IClass"=multi_sz:"{A4E7EDDA-E575-4252-9D6B-4195D48BB865}"

; Override names in default profile. These settings are also required to
; support the automatic mounting and creation of the "NAND Flash" folder.
;
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\FlashDisk]
    "DriverPath"="Drivers\\BuiltIn\\NANDFMD"
    "Name"="NAND FLASH"
    "Folder"="NAND Flash"
    "DefaultFileSystem"="FATFS"
    "EnableCache"=dword:1
    "CacheSize"=dword:0

; Explicitly specify the use of the TFAT filesystem for NAND flash.
;
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\FlashDisk1\FATFS]
    "FormatTfat"=dword:1     ; Format partitions to be TFAT
    "Flags"=dword:007C1014   ; reference follow bit flag
如果用EBOOT的话,在EBOOT里重复用
hPartEx = BP_OpenPartition( NEXT_FREE_LOC,
USE_REMAINING_SPACE,
PART_DOS32,
FALSE,
PART_OPEN_ALWAYS);
就可以建立多少分区
点赞 关注
个人签名如果对linux,Android,wince 等嵌入式底层有兴趣的,请加这个QQ群吧,群号:27100460

回复
举报

854

帖子

0

TA的资源

五彩晶圆(中级)

沙发
 
; Explicitly specify the use of the TFAT filesystem for NAND flash.
;
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\FlashDisk1\FATFS]
    "FormatTfat"=dword:1     ; Format partitions to be TFAT
    "Flags"=dword:007C1014   ; reference follow bit flag

FlashDisk1 这个有点奇怪,难道是要改注册表的?FlashDisk1应该是FlashDisk才对啊。:funk1::funk1:
 
个人签名如果对linux,Android,wince 等嵌入式底层有兴趣的,请加这个QQ群吧,群号:27100460
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
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
快速回复 返回顶部 返回列表