WINCE下创建多个文件分区

原创 2011年01月11日 22:22:00

********************************LoongEmbedded********************************

作者:LoongEmbedded(kandi)

时间:2011.01.11

类别:WINCE驱动开发

********************************LoongEmbedded********************************

系统:WINCE6.0+S3C2443

 

实现分区的是在eboot/nand.cpp下面的WriteOSImageToBootMedia中实现的,

 

1.创建一个分区的代码如下所以

1

关于这个函数的详细介绍,可以参考http://blog.csdn.net/LoongEmbedded/archive/2010/11/02/5981033.aspx,上面的代码就是在基于nandflash的剩余空间(除去存放系统映像占用的一部分空间)创建FAT32的文件分区。

 

2.创建两个分区

怎么实现呢?我在实现一个分区并且在系统启动后显示kandi这个盘符的platform.reg中下面的注册表信息

[HKEY_LOCAL_MACHINE/Drivers/BuiltIn/NANDFLASH]

    "Prefix"="DSK"

    "Dll"="smflash.dll"

    "Index"=dword:1

    "Order"=dword:0

    "Profile"="NANDFLASH"

    "IClass"="{A4E7EDDA-E575-4252-9D6B-4195D48BB865}"

IF IMGHIVEREG

    "Flags"=dword:00001000

ENDIF ;IMGHIVEREG

     

[HKEY_LOCAL_MACHINE/System/StorageManager/Profiles/NANDFLASH/FATFS]

    "Flags"=dword:14

         "Folder"="kandi"

    "FormatExfat"=dword:1

    "CheckForFormat"=dword:1

    "EnableWriteBack"=dword:1

IF IMGHIVEREG   

    "MountAsBootable"=dword:1

ENDIF ;IMGHIVEREG

在上面的注册表的基础上添加下面的内容:

[HKEY_LOCAL_MACHINE/Drivers/BuiltIn/NANDFLASH2]

    "Prefix"="DSK"

    "Dll"="smflash.dll"

    "Index"=dword:9

    "Order"=dword:0

    "Profile"="NANDFLASH2"

    "IClass"="{A4E7EDDA-E575-4252-9D6B-4195D48BB865}"

IF IMGHIVEREG

    "Flags"=dword:00001000

ENDIF ;IMGHIVEREG

     

[HKEY_LOCAL_MACHINE/System/StorageManager/Profiles/NANDFLASH2/FATFS]

    "Flags"=dword:14

         "Folder"="kandi2"

    "FormatExfat"=dword:1

    "CheckForFormat"=dword:1

    "EnableWriteBack"=dword:1

IF IMGHIVEREG   

    "MountAsBootable"=dword:1

ENDIF ;IMGHIVEREG

做这些修改更新系统后,真的可以看到kandikandi2这两个盘符,可是当我把A.exe拷贝到kandi文件夹中,而把B.exe拷贝到kandi2文件夹中,然后重启发现kandikandi2文件夹中都有A.exeB.exe,说明没有真正实现两个分区,还只是同一个分区,后来想到到在eboot/nand.cpp下面的WriteOSImageToBootMedia中实现,就加参考实现一个分区的代码做了一下修改

2

但是这样实现也只能看到kandi一个盘符,问题出现在哪里呢?原来是调用BP_OpenPartition函数会调用GetPartitionTableIndex函数,来识别BP_OpenPartition创建的文件分区是否已经创建过,如果创建过,WINCE50就不会再创建新的同种类型的文件分区。因为GetPartitionTableIndex函数的缘故,所以理论上同种类型的文件分区只能创建一个,但是也可以通过修改第二个BP_OpenPartition函数的第4个参数(TRUE改为FALSE)再创建一个两个同种类型的文件分区,如下所示

3

经过图3的修改,我们更新系统启动后可以看到下面的两个盘符:

4

 

3.实现三个分区

有了上面的基础之后,我们不难实现3个分区,代码如下:

5

修改更新系统之后,可以看到3个盘符:

6

4隐藏分区

实现如下:

7

这样的系统起来后就看不到分区了

8

 

参考链接:

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

http://hi.baidu.com/galloncity/blog/item/c6553700b67d7c081c958336.html

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

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

注意: 创建多个文件分区与C:\WINCE500\PLATFORM\SMDK2443\Src\Bootloader\Eboot\nand.cpp和C:\WINCE500\PUBLIC\COMMON\...

WINCE NAND FLASH eboot 创建多个分区

方法一: 1.      三星原厂两个分区的实现方式 1.1  WriteOSImageToBootMedia函数  // create extended partition in what...

wince串口驱动-串口调用流程:先创建注册表,用文件函数打开:

串口调用流程:先创建注册表,用文件函数打开:     // SPL-test-1Dlg.cpp : 实现文件 // #include "stdafx.h" #include "SPL-...

Wince MFC OLE DB SQLCE数据库访问技术(二):嵌入式目标平台创建本地数据库sdf文件

前言 上一节已经讲述了嵌入式目标平台上安装sqlCE,本章将介绍如何在目标平台上创建本地数据库sdf文件。 备注:博客中所有关于Wince MFC OLE DB   SQLCE数据库访问技术的文章...

Ubuntu 中创建SWAP交换分区文件

查看当前系统Swap信息 开始在 Ubuntu 14.04 中创建 Swap 分区之前,我们有必要首先看一下当前操作系统是否有可用的交换分区。默认情况下,Ubuntu 在进行系统安装时就会提醒用户划...

嵌入式设备WinCE下使用Storage Manager进行分区管理

By Toradex 秦海 1). 简介 嵌入式设备WinCE下对Flash存储进行管理有多种方式,如Eboot下通过命令行操作,在WinCE下通过控制面板的存储管理,还有本文会着重介绍的通过St...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)