您的位置:首页 > 其它

ROM-Only File System定制详解

2017-02-18 14:54 363 查看
ROM-Only File System定制详解

在CE下,经常会遇到的问题是,当用户在CE设备上安装文件的时候,如果重新启动,Windows目录下的文件会丢失,导致安装的程序无法正常的运行。这里头,CE引入了一个文件系统,就是ROM-Only
File
System。它允许你将你的存储介质,如NandFlash、硬盘等,映射为根系统,这样你在操作windows目录的时候,其实就是在这类存储介质上操作,在系统重启或关闭之后,操作的文件将永久的保存。

CE下有关ROM-Only File System的定制,相对于RAM and ROM File
System,需要注意一些问题。(我的CE版本是4.2的,不知道CE5.0/6.0是否已经将其完善)

首先,在定制的时候可以先尝试使用RAM and ROM File System + RAM Based
Registry,看是否可以正常运行。

在能够正常运行的情况下,打开CE.bib,将FILE字段下的所有文件拷贝一份出来(这里头包含了一些声音、图片,以及一些EXPLORER程序需要用到的文件),放到你需要保存的存储介质上对应的目录,如存储介质是NandFlash,则在NandFlash的根目录创建一个Windows目录,将有关文件拷贝到此目录。

重新进行系统定制,将RAM and ROM File System 替换为ROM-Only File System。

修改注册表,将对应的存储介质下的注册表项改为类似如下:
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\NandFlash]

"Name"="NAND Flash Disk"

"Folder"="NandFlash"

"DefaultFileSystem"="FATFS"

"AutoMount"=dword:1

"AutoPart"=dword:1

"AutoFormat"=dword:1
"MountFlags"=dword:1c

"FileSystem"="fatfsd.dll"

"PartitionDriver"="mspart.dll"
其中,我是将NandFlash作为存储的根目录的,故只需改NandFlash对应的注册表,如果是别的存储介质,请直接修改对应的注册表。

MountFlags的值的含义:
;   MountFlags
- Flags on how the partition is mounted

;      
1  - Hidden file system

;      
2  - May contain system registry

;      
4  - Mount as root of file system, "\"

;      
8  - Hide ROM when mounting FS root; use with
FLAG_ROOTFS

;     
10  - Mount filesystem as an external ROM
filesystem

;     
40  - Mount as a permanent volume that cannot be
unmounted

选择1c,意思是加载成一个扩展的ROM根文件系统,同时隐藏ROM(这就是为什么我们要把FILE字段下的文件拷贝到存储介质上,但exe和dll不是必须的,因为调用的时候还是会从ROM中引导)

下载,测试。正常情况,应该能够引导系统。

在开发过程中可能会遇到的一些问题的解决方法:

1.系统引导之后无法显示资源管理器

        请查看是否已经将ce.bib中FILE字段文件拷贝到对应存储介质的Windows目录或其它。

2.控制面板中没有任何程序

        请将cpl文件全部拷贝到对应的存储介质的Windows目录下。因为控制面板程序调用的时候是去Windows目录下查找cpl文件,而默认的,cpl文件我们并没有拷贝到存储介质的Windows目录下,故在控制面板程序中看不到任何的程序。而在系统中,是通过LoadLibrary方式直接调用,可以调用有关的cpl文件。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: