wince,即在冷启动时不丢失,我们需要选择ROM-only的文件系统和HIVE BASED注册表
文章转载:http://net3m33.blog.163.com/blog/static/85973498200931471036544/
WinCE文件系统概要
文件系统是一个实现了数据的存储、组织、处理和获取等操作的抽象数据类型。一般分为磁盘文件系统,网络文件系统和特定功能的文件系统。
磁盘文件系统主要包括FAT(FAT12、FAT16、FAT32),NTFS、HFS、ext2、ext3,现在ext4也出来了。
FLASH文件系统是针对FLASH存储器设计的文件系统。随着移动设备的不断普及,和FLASH存储空间的不断增长,FLASH文件系统也流行起来。在嵌入式系统中,绝大多数都使用FLASH文件系统。
数据库文件系统是基于数据库的文件系统。与分层结构的管理不同,在数据库文件系统中,文件由描述符来标识,如文件的类型、主题、作者或其他一些元数据。
网络文件系统是用来访问服务器中文件的文件系统,常见的协议有NFS、AFS和SMB。
现代操作系统都集成了文件系统,WinCE也不例外。与桌面Windows的文件系统不同,WinCE的文件系统中没有分区的概念。所有的文件系统,都被Mount到根目录“/”下面。编程时需要注意,WinCE中也没有当前目录的概念,所有的目录都以根目录为参考。
WinCE中支持的文件系统有如下几种:
文件系统
概要
FAT或FATFS
标准的FAT文件系统。单个文件不能超过4G,分区大小也有限制。
exFAT
FAT的升级版,取消了文件和分区大小的限制。
TFAT
基于exFAT的文件系统,支持交互操作,需要驱动的支持。
BinFS
支持将bin文件Mount成一个文件系统,WinCE中的Multi-BIN需要用到该文件系统。
CDFS/UDFS
用来支持CD和DVD的文件系统。
RAM(对象存储)
RAM文件系统由FSD Manager管理。
RELFSD
在开发的过程中,将开发主机的release目录mount到设备上。
WinCE文件系统的配置,由注册表实现,一般在[HKLM/System/StorageManager]中。
在定制WinCE操作系统时,我们可以选择ROM-only 的文件系统或RAM and ROM的文件系统。当选择RAM and ROM的文件系统时,根目录文件系统在内存当中,掉电即丢失。为了实现根文件系统和注册表的保存,即在冷启动时不丢失,我们需要选择ROM-only的文件系统和HIVE BASED注册表,以将存储空间Mount成根目录,并配置注册表使其支持HIVE BASED注册表。
--------
5.[HKLM/System/StorageManager/Profiles/<ProfileName>/<FileSystemName>] "MountFlags"=dword:2 这个标志的内容在partiton.h中有描述 // The lower 16bits of the MountFlags are used by filesys
#define MOUNTFLAGS_TYPE_HIDDEN AFS_FLAG_HIDDEN // 1 - Hidden file system
#define MOUNTFLAGS_TYPE_BOOTABLE AFS_FLAG_BOOTABLE // 2 - May contain system registry
#define MOUNTFLAGS_TYPE_ROOTFS AFS_FLAG_ROOTFS // 4 - Mount as root of file system, "/"
#define MOUNTFLAGS_TYPE_HIDEROM AFS_FLAG_HIDEROM // 8 - Hide ROM when mounting FS root; use with FLAG_ROOTFS
#define MOUNTFLAGS_TYPE_MOUNTROM AFS_FLAG_MOUNTROM // 16 - Mount the new filesystem as an additional ROM filesystem
// The upper 16bits of MountFlags are used by StorageManager
#define MOUNTFLAGS_TYPE_NODISMOUNT 0x00010000 // Do not allow dismount of this partition
--------
磁盘文件系统主要包括FAT(FAT12、FAT16、FAT32),NTFS、HFS、ext2、ext3,现在ext4也出来了。
FLASH文件系统是针对FLASH存储器设计的文件系统。随着移动设备的不断普及,和FLASH存储空间的不断增长,FLASH文件系统也流行起来。在嵌入式系统中,绝大多数都使用FLASH文件系统。
数据库文件系统是基于数据库的文件系统。与分层结构的管理不同,在数据库文件系统中,文件由描述符来标识,如文件的类型、主题、作者或其他一些元数据。
网络文件系统是用来访问服务器中文件的文件系统,常见的协议有NFS、AFS和SMB。
现代操作系统都集成了文件系统,WinCE也不例外。与桌面Windows的文件系统不同,WinCE的文件系统中没有分区的概念。所有的文件系统,都被Mount到根目录“/”下面。编程时需要注意,WinCE中也没有当前目录的概念,所有的目录都以根目录为参考。
WinCE中支持的文件系统有如下几种:
文件系统
概要
FAT或FATFS
标准的FAT文件系统。单个文件不能超过4G,分区大小也有限制。
exFAT
FAT的升级版,取消了文件和分区大小的限制。
TFAT
基于exFAT的文件系统,支持交互操作,需要驱动的支持。
BinFS
支持将bin文件Mount成一个文件系统,WinCE中的Multi-BIN需要用到该文件系统。
CDFS/UDFS
用来支持CD和DVD的文件系统。
RAM(对象存储)
RAM文件系统由FSD Manager管理。
RELFSD
在开发的过程中,将开发主机的release目录mount到设备上。
WinCE文件系统的配置,由注册表实现,一般在[HKLM/System/StorageManager]中。
在定制WinCE操作系统时,我们可以选择ROM-only 的文件系统或RAM and ROM的文件系统。当选择RAM and ROM的文件系统时,根目录文件系统在内存当中,掉电即丢失。为了实现根文件系统和注册表的保存,即在冷启动时不丢失,我们需要选择ROM-only的文件系统和HIVE BASED注册表,以将存储空间Mount成根目录,并配置注册表使其支持HIVE BASED注册表。
--------
5.[HKLM/System/StorageManager/Profiles/<ProfileName>/<FileSystemName>] "MountFlags"=dword:2 这个标志的内容在partiton.h中有描述 // The lower 16bits of the MountFlags are used by filesys
#define MOUNTFLAGS_TYPE_HIDDEN AFS_FLAG_HIDDEN // 1 - Hidden file system
#define MOUNTFLAGS_TYPE_BOOTABLE AFS_FLAG_BOOTABLE // 2 - May contain system registry
#define MOUNTFLAGS_TYPE_ROOTFS AFS_FLAG_ROOTFS // 4 - Mount as root of file system, "/"
#define MOUNTFLAGS_TYPE_HIDEROM AFS_FLAG_HIDEROM // 8 - Hide ROM when mounting FS root; use with FLAG_ROOTFS
#define MOUNTFLAGS_TYPE_MOUNTROM AFS_FLAG_MOUNTROM // 16 - Mount the new filesystem as an additional ROM filesystem
// The upper 16bits of MountFlags are used by StorageManager
#define MOUNTFLAGS_TYPE_NODISMOUNT 0x00010000 // Do not allow dismount of this partition
--------