]在wince50里创建多个文件分区的方法

注意:

创建多个文件分区与C:\WINCE500\PLATFORM\SMDK2443\Src\Bootloader\Eboot\nand.cpp和C:\WINCE500\PUBLIC\COMMON\OAK\DRIVERS\ETHDBG\BOOTPART\bootpart.cpp文件有关。

1 创建多个同种文件系统的分区的时候会调用C:\WINCE500\PLATFORM\SMDK2443\Src\Bootloader\Eboot\nand.cpp里的BP_OpenPartition函数,来实现创建文件分区的功能,如下实例可以创建一个10MB的PART_DOS32的文件分区

    hPartEx1 = BP_OpenPartition( NEXT_FREE_LOC,

                              SECTOR_TO_BLOCK_SIZE(FILE_TO_SECTOR_SIZE(10*1024*1024))*PAGES_PER_BLOCK, // align to block

                                PART_DOS32,

                                TRUE,

                                PART_OPEN_ALWAYS);

2 BP_OpenPartition函数会再调用C:\WINCE500\PUBLIC\COMMON\OAK\DRIVERS\ETHDBG\BOOTPART\bootpart.cpp里的GetPartitionTableIndex函数,来识别BP_OpenPartition创建的文件分区是否已经创建过,如果创建过,WINCE50就不会再创建新的同种类型的文件分区

3 因为GetPartitionTableIndex函数的缘故,所以理论上同种类型的文件分区只能创建一个,但是也可以通过修改BP_OpenPartition的参数再创建一个两个同种类型的文件分区,如下实例可以创建一个10MB和一个5MB的PART_DOS32的文件分区

    hPartEx1 = BP_OpenPartition( NEXT_FREE_LOC,

                              SECTOR_TO_BLOCK_SIZE(FILE_TO_SECTOR_SIZE(10*1024*1024))*PAGES_PER_BLOCK, // align to block

                                PART_DOS32,

                                TRUE,

                                PART_OPEN_ALWAYS);

    OALMSG(TRUE, (TEXT("createpartition_2_ok_eboot_update\n")));

    hPartEx2 = BP_OpenPartition( NEXT_FREE_LOC,SECTOR_TO_BLOCK_SIZE(FILE_TO_SECTOR_SIZE(5*1024*1024))*PAGES_PER_BLOCK, // align to block

                                PART_DOS32,

                                FALSE,

                                PART_OPEN_ALWAYS);

4 如果需要创建3个以上的文件分区,可以创建两个同种类型的文件分区,再创建几个不同种类的文件分区来实现,如下实例可以创建一个10MB和一个5MB的PART_DOS32的文件分区,还有一个用剩余所有NAND flash的存储空间创建的一个PART_DOS3_FAT的文件分区

    hPartEx1 = BP_OpenPartition( NEXT_FREE_LOC,

                              SECTOR_TO_BLOCK_SIZE(FILE_TO_SECTOR_SIZE(10*1024*1024))*PAGES_PER_BLOCK, // align to block

                                PART_DOS32,

                                TRUE,

                                PART_OPEN_ALWAYS);

    OALMSG(TRUE, (TEXT("createpartition_2_ok_eboot_update\n")));

    hPartEx2 = BP_OpenPartition( NEXT_FREE_LOC,

                              SECTOR_TO_BLOCK_SIZE(FILE_TO_SECTOR_SIZE(5*1024*1024))*PAGES_PER_BLOCK, // align to block

                                PART_DOS32,

                                FALSE,

                                PART_OPEN_ALWAYS);

    OALMSG(TRUE, (TEXT("createpartition_3_ok_eboot_update\n")));

    hPartEx3 = BP_OpenPartition( NEXT_FREE_LOC,USE_REMAINING_SPACE,

                                PART_DOS3_FAT,

                                TRUE,

                                PART_OPEN_ALWAYS);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值