关于wince的永久保存

FR4板材实战:用ADS 2023快速设计微带线低通滤波器(附Line-Cal计算技巧) 本文详细介绍了使用ADS 2023在FR4板材上设计1-3GHz微带线低通滤波器的工程技巧。通过Line-Cal工具快速计算微带线参数,解决FR4板材的介质损耗和阻抗匹配问题,提供从集总参数转换到分布参数的实用方法,并分享版图设计与实测验证的关键要点,帮助工程师高效完成射频滤波器设计。 阅读详情

永久保存到第二种思路
       之前提到了ROM-only File System可以将系统根目录设定到ResidentFlash到办法, 从而实现永久保存的目的,这主要是为了方便第三方软件的安装, 安装到windows目录的文件中重启之后不会消失。
       实际上不少产品还是RAM and ROM File System的, 那么怎么解决永久保存的问题? 下面是解决办法。

      1. 修改ShellFolder.  内核启动时候,filesys.exe会根据initobj.dat来创建一些系统目录和文件, 默认是在根目录,也就是RAM盘中创建Desktop, my document...这些目录。explorer.exe程序会根据注册表配置指定的Shell Folders,默认的指向上面RAM盘下filesys.exe创建的这些目录。因此, 我们可以修改注册表来重定向这些路径,指向flash到目录。 如下是一个示例:
[HKEY_LOCAL_MACHINE/System/Explorer/Shell Folders]
"My Documents"="//SDMMC//My Documents"
"Desktop"="//ResidentFlash//Desktop"
"Application Data"="//ResidentFlash//Application Data"
"Favorites"="//ResidentFlash//Favorites"
"Programs"="//ResidentFlash//Programs"
这样,重启之后, 这些目录下面的内容就不会丢失。

      2. windows目录。 这个是最重要的, 因为一些dll必须放在这个目录或者根目录下面。可是每次重启后, 都会丢失。 WinCE又没有环境变量这样的概念。 安装文件cab一般都把文件放到windows目录下面。 如何解决? 其实, LoadLibrary时候会搜索几个路径, 除了上面提到windows和根目录, 还有“当前目录”, 可以拷贝dll到当前目录。 此外, 注册表还提供了一个SystemPath到配置, 很类似环境变量, 在注册表可以指定一个或多个系统路径。查看这篇msdn:[url]http://msdn.microsoft.com/en-us/library/ms886736.aspx[/url]

If no file name extension is specified in the lpLibFileName parameter, the default library extension .dll is appended. However, the file name string can include a trailing point character (.) to indicate that the module name has no extension.

A search path to the executable module cannot be specified.

Unless the full path to the module is specified, Windows CE searches the following path for the module:

The absolute path specified by the lpLibFileName parameter
The .exe launch directory
The Windows directory
ROM DLL files
An OEM-specified search path
The following registry subkey specifies a search path to use with LoadLibrary and CreateProcess:

HKEY_LOCAL_MACHINE/Loader    SystemPath=multi_sz://path1//                        //path2//The path is only searched if the path of the file being looked for is not explicitly specified.

The total length of the SystemPath value must not exceed 260 characters. If it does, the path is ignored.

A change to the SystemPath key does not take effect until a Windows CE–based device is reset.

所以,我们可以指定系统路径到ResidentFlash到某个目录。补充:可以使用WinCE cab manager工具来处理, 提取文件,修改安装路径等。 有空试试。

      3. 注册表的永久保存。 这个借由hive注册表就可以实现。 hive技术把注册表分成了3个部分, boot 和 其他。 boot部分是不需要修改的用于内核启动的, 其他部分system.hv和user.hv可以放在ResidentFlash里面。注册表可以恢复为出厂状态。filesys.exe在启动过程中会透过OEMIoCtls来询问是否恢复出厂状态。

总结: 使用RAM and ROM File System也可以到达永久保存的目的。 只是dll可能需要手动拷贝转移。 但好处是保持系统“干净”, 稳定。 装错软件比较不害怕。 而注册表也可以恢复为出厂状态。
原文地址[url]http://chenyq2008.spaces.live.com/blog/cns!F73164AC8D0D8D50!245.entry[/url]

gooogleman 发表于 2009-11-27 16:48

RAM and ROM File System vs ROM-only File System
【RAM and ROM File System  vs  ROM-only File System】

二者都是文件系统driver。都有能力读取ROM文件系统。 区别在于:前者除了能够读取ROM盘之外,他还构造了一个RAM盘。(因为file system很容易混淆,我称呼ROM盘和RAM盘) 。

RAM盘指什么呢? 就是在ram空间虚拟的磁盘。 先说些废话:ce起来后会把所有可以用的内存分割成为2个空间,存储内存和程序内存, 默认的是1:1的分配, 你可以在config.bib里面设置FSRAMPERCENT来改变分配比例。 程序内存就是程序可用内存, 就是正常理解的普通意义的内存。而存储内存:Object Store, 它包括了注册表, 属性数据库和上面提到的RAM盘。
ROM盘指什么呢? 首先肯定的是, 它指nk.bin。 其次, 它究竟指的是在flash上的nk.bin还是被加载到内存执行的nk.bin呢?经过测试推理, 应该指的是加载到内存里面的nk.bin。内核启动后要找到文件执行,首先执行nk.exe,这个算特例, 因为镜像入口点就是它, nk.exe要加载filesys.exe,而且filesys.exe需要获得注册表, 这个时候没有初始化磁盘,而且初始化磁盘需要注册表, 所以只有从内存的ROM盘获得,这是一个论据。 另外还做了个测试, 从电脑经过usb或者网线下载nk.bin到设备运行, 下载后并不烧写到磁盘,而是直接运行,这样测试是成功的, 说明ROM盘的确是指的内存里面镜像。
回到RAM and ROM File System vs ROM-only File System的话题。使用前者的话, 系统的根目录就是前面提到的RAM盘, 而外部磁盘如:/ResidentFlash,/Storage Card这些,就成为一个独立的目录挂载在根目录下面, ROM盘的内容则安置在/windows目录, 如果xip,你甚至还可以看到/binfs代表的nk.bin所在的磁盘。 除了外部磁盘, 对其他目录的写和更改都是发生在内存, 所以, 重启系统后全部消失了。这产生一个的问题:第三方软件怎么永久安装? 因为第三方软件常常保存东西在windows目录下面,也会修改注册表。重启后就不能使用了。这一点完全背离了用户习惯的使用经验。(微软考虑是设备是永不关机的,所以早期的ppc是没有关机功能的。) 在catalog中加入ROM-only File System组件, 并且修改注册表的MountFlags或者MountAsRoot就可以使用ROM-only File System功能,如果之前已有的项目,重新rebuild时候记得勾上clear。 它将一个磁盘当成系统的根目录。但是对于wince5.0会存在一个困扰, 就是同步功能不能工作了。根据资料,Wince6.0和mobile都提供了一个File replacition filter driver(fsreplxfilt.dll)能解决这个问题。我分析推测,因为同步是需要同步到Object Store, 这个驱动提供Object Store接口的处理。关于File replacition的描述的链接地址在这:[url]http://msdn.microsoft.com/en-us/library/aa911937.aspx[/url]

gooogleman 发表于 2009-11-27 16:49

我自己也做过,不过没有写文档,现在都不太记得了,桌面的东西都不会丢的。

popzone 发表于 2009-11-27 17:07

学习了

gongyue1983 发表于 2009-11-28 14:50

gooogleman
我尝试用你这种作法(使用RAM and ROM File System),成功一部分
[HKEY_LOCAL_MACHINE/System/Explorer/Shell Folders]
"Programs Files"="//NandFlash//Programs Files"
"Windows"="//NandFlash//Windows"

[HKEY_LOCAL_MACHINE/Loader]
SystemPath=multi_sz:"//NandFlash//Windows"

那么我现在开机,device 下面如下的文件夹:
/Programs Files
/Windows
/NandFlash
/NandFlash/Programs Files
/NandFlash/Windows

其中/Windows,存有所有的系统文件。Programs Files 被映射到/NandFlash/Programs Files
现在这么多的目录,我看得还是有些别扭
能够有办法弄成这样吗:
就只有
/Programs Files
/Windows

然后/Programs Files 实际对应/NandFlash/Programs Files
/Windows 实际对应 /NandFlash/Windows

难道只有用Rom-only File System 才可以办到吗

gooogleman 发表于 2009-11-28 18:35

NandFlash 是看不见的了,如果成功了。

Walle 发表于 2009-11-30 10:13

用那个flag,叫做啥MountAsRoot。其他的不改,也是可以保住windows的。

gooogleman 发表于 2009-11-30 10:22

[quote]用那个flag,叫做啥MountAsRoot。其他的不改,也是可以保住windows的。
[size=2][color=#999999]Walle 发表于 2009-11-30 10:13[/color] [url=http://www.armce.com/bbs/redirect.php?goto=findpost&pid=8262&ptid=830][img]http://www.armce.com/bbs/images/common/back.gif[/img][/url][/size][/quote]

对,我今天有空,找找先吧。呵呵。

gooogleman 发表于 2009-11-30 11:01

呜呜,我找不到了!我原来改动的不多的。

gooogleman 发表于 2009-11-30 11:04

;-----------HIVE BEGIN-NEW------------------
; HIVE BOOT SECTION
[HKEY_LOCAL_MACHINE/init/BootVars]
  "SYSTEMHIVE"="Documents and Settings//system.hv"               
  "Start DevMgr"=dword:1
  "RegistryFlags"=dword:1       
  "DefaultUser"="default"
  "Flags"=dword:1       

[HKEY_LOCAL_MACHINE/init/BootVars]
   "DefaultUser"="default"

[HKEY_LOCAL_MACHINE/Drivers/BlockDevice/SMFLASH]
  "Prefix"="DSK"
  "Dll"="smflash.dll"
  "Order"=dword:0
  "Ioctl"=dword:4
  "Profile"="SMFLASH"
  "FriendlyName"="MS Flash Driver"
  "MountFlags"=dword:11
  "BootPhase"=dword:1
  "Flags"=dword:1000

[HKEY_LOCAL_MACHINE/System/StorageManager/AutoLoad/SMFLASH]
  "DriverPath"="Drivers//BlockDevice//SMFLASH"
  "LoadFlags"=dword:1
  "MountFlags"=dword:11
  "BootPhase"=dword:1
  "Flags"=dword:1000

[HKEY_LOCAL_MACHINE/System/StorageManager/Profiles/SMFLASH]
  "DefaultFileSystem"="FATFS"
  "PartitionDriver"="mspart.dll"
  "AutoMount"=dword:1
  "AutoPart"=dword:1
  "AutoFormat"=dword:1
  "Folder"="NandFlash"
  "Name"="Microsoft Flash Disk"
  "BootPhase"=dword:0
  "Flags"=dword:1000

[HKEY_LOCAL_MACHINE/System/StorageManager/Profiles/SMFLASH/FATFS]
  "FriendlyName"="FAT FileSystem"
  "Dll"="fatfsd.dll"
  "Flags"=dword:00280014
  "Paging"=dword:1
  "CacheSize"=dword:0
  "EnableCacheWarm"=dword:0
  "EnableCache"=dword:1
;  "MountFlags"=dword:2
[color=Red]; mounts the first FATFS partition on a storage device
  "MountAsRoot"=dword:1
  "MountAsBootable"=dword:1
  "MountPermanent"=dword:1[/color]
; END HIVE BOOT SECTION
;---------HIVE END------------------

这是我成功的注册表,我记得选rom文件系统,nand flash盘符不会出现,就可以的了。

黄瓜男 发表于 2009-12-21 17:26

恩,不错的Idea,收藏有用

http://www.armce.com/bbs/archiver/tid-830.html

线性代数学习笔记(十)——矩阵运算(二) 本篇笔记讲解矩阵的幂运算和矩阵的转置,其中矩阵进行幂运算的前提是矩阵为方阵,矩阵幂运算的两条性质与数的幂运算规则类似;矩阵转置的定义与行列式转置类似,但要注意由于矩阵的行数和列数不同,所以转置之后行数和列数变换。 阅读详情

相关推荐

WINCE永久保存设置

WINCE本身是一个完全在内存中运行的系统。每次启动都需要把NK.BIN拷贝到内存中相对应的地址。这样的系统就不需要了系统维护,但是如何“永久”的保存设置就成了问题。本文将介绍如何在Wince中实现设置的永久保存

WinCE上BINFS实现详解

<br />WinCE上BINFS实现详解<br />此为ARMCE定制原创稿<br />作者: wwfiney@ARMCE<br />网上不少介绍三星24x0系列的BINFS启动方式实现,有些内容上描述的不是非常全面<br />下面就WinCE6上的BINFS实现,从基本原理到修改BSP,再到如何烧录启动做一个较全面的讲解<br /><br />一 BINFS到底是什么?<br />其实BINFS就是MS给CE做的一种存放系统镜像的一个文件系统。<br />一说文件系统,大家可能比较头大。那么这么说,其实

宁静致远,淡泊明志. 1028

wince重启丢失快捷方式的解决办法

wince每次重启会还原桌面,导致程序的快捷方式也没了,通过该程序可自动恢复快捷方式,内有使用说明。

wince,即在冷启动时不丢失,我们需要选择ROM-only的文件系统和HIVE BASED注册表

<br />wince,即在冷启动时不丢失,我们需要选择ROM-only的文件系统和HIVE BASED注册表文章转载:http://net3m33.blog.163.com/blog/static/85973498200931471036544/WinCE文件系统概要     文件系统是一个实现了数据的存储、组织、处理和获取等操作的抽象数据类型。一般分为磁盘文件系统,网络文件系统和特定功能的文件系统。 <br />      磁盘文件系统主要包括FAT(FAT12、FAT16、FAT32),NTFS、HF

修炼WINCE 1972

外面写的dll,导入到winCE Device中,如何注册?

1. 在注册表中的下面位置添加如下键值:    [HKEY_LOCAL_MACHINE/Services]下面增加一个Key(比如ExDLL) 2. 在ExDLL下增加如下Value   [HKEY_LOCAL_MACHINE/Services/DMNotify]   "Context"=dword:00000000   "Index"=dword:00000000   "Prefix"="###

liuyan0120的专栏 1335

winCE下如何永久保存注册表信息

Wince4.2,关于Flash的永久保存注册表 先说原理:注册表类型分为基于对象存储的注册表和基于HIVE的注册表,在定制内核的时候只能选择其中一种。从理论上讲这两种注册表都能够实现永久保存注册表数据,但是采用不同的类型会影响CE的启动顺序和启动速度,还会影响内存的使用量。我还是趋向于采用基于HIVE的注册表来实现永久保存注册表数据,这也是一个发展趋势。在讲解之前

Silverlight/自动控制/嵌入式软件开发/linux方向软件交流 4460

关于wince永久保存 .

永久保存到第二种思路        之前提到了ROM-only File System可以将系统根目录设定到ResidentFlash到办法, 从而实现永久保存的目的,这主要是为了方便第三方软件的安装, 安装到windows目录的文件中重启之后不会消失。        实际上不少产品还是RAM and ROM File System的, 那么怎么解决永久保存的问题? 下面是解决办法。

攻城狮的物联网基地 1098

WinCE永久保存新思路

转自:http://hi.baidu.com/ch%5Fff/blog/item/b168c0edbfd3952063d09fe5.html  本文转载自http://chenyq2008.spaces.live.com/blog/      之前提到了ROM-only File System可以将系统根目录设定到ResidentFlash到办法, 从而实现永久保存的目的,这主要是为了

Carlward 的专栏 1289

wince永久保存

<br /> 之前提到了ROM-only File System可以将系统根目录设定到ResidentFlash到办法, 从而实现永久保存的目的,这主要是为了方便第三方软件的安装, 安装到windows目录的文件中重启之后不会消失。<br />      实际上不少产品还是RAM and ROM File System的, 那么怎么解决永久保存的问题? 下面是解决办法。<br /><br />      1. 修改ShellFolder. 内核启动时候,filesys.exe会根据initobj.dat来创

427

嵌入式系统/ARM技术中的基于Windows CE的注册表在线修改及保存

作者:蒙洋,华清远见嵌入式学院讲师。     引言:   Windows CE作为一种嵌入式的操作系统,已经有了10多年的历史,从最早的1.0版本到如今的最新的6.0版本。Windows CE已经在嵌入式操作系统领域占据了非常重要的地位,同时还派生出了很多不同的版本,应用到不同的领域,Windows Mobilej就是其中非常成功的一个版本。   作为一种嵌入式操作系统,我们有必要了解它的启动过程和加载机制,特别是其中的注册表加载是系统加载的核心。Windows CE内核创建过程用的REG文件几乎和其他桌面版本Windows操作系统就有相同的格式,只是去掉了文件顶部的版本标记,防止开发

关于WINCE下在Flash中永久保存注册表

作者:huazigg 转自:http://blog.csdn.net/huazigg/article/details/5701016 Wince4.2,关于Flash的永久保存注册表 先说原理: 注册表类型分为基于对象存储的注册表和基于HIVE的注册表,在定制内核的时候只能选择其中一种。 从理论上讲这两种注册表都能够实现永久保存注册表数据,但是采用不同的类型会影响CE的启

老瓦的笔记本 594

ROM-Only File System定制详解

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

无语僧 486

WINCE6.0文件系统选择

WINCE6.0文件系统选择 1. ROM-only文件系统 ROM-only文件系统驱动能够从ROM文件系统中读取数据,此文件系统使应用程序不能把文件保存在对象存储区中,也就是不能保存在RAM用于对象存储的区域中,而只能保存在flash和存储卡上。ROM中的数据通过Windows目录来访问,外部这里的ROM是指nk.bin在RAM中的内容,不管是选择ROM-o...

weixin_30470643的博客 226

转载:Windows CE内存管理

 内存管理       如果你在写Windows CE 程序中遇到的最重要的问题,那一定是内存问题。一个WinCE 系统可能只有4MB 的RAM,这相对于个人电脑来说是十分少的,因为个人电脑的标准配置已经到了128MB 甚至更多。事实上,运行WinCE 的机器的内存十分缺乏,以至于有时候有必要在写程序的时候为节约内存而牺牲程序的整体性能。       幸运的是,尽管WinCE系统的内存

guopeixin的专栏 1602

Windows CE开发常见问题解答(转载)

 .怎样在一个控件获得焦点时打开软键盘?比如一个EditBox获得焦点后,这个时候自动打开软键盘,这样可以方便用户输入——SIPINFO、SHSIPINFO、SIPSETINFO、SIPGETINFO里面有些参数弄不明白 //隐藏输入面板 BOOL LowerSip() { BOOL fRes = FALSE; SIPINFO si; memset( &si, 0, sizeof( si

1473

系统掉电丢失设置的问题的分析

系统掉电丢失设置的问题的分析

androidfan的专栏 1313

[189]-基于STM32+OneNet的智能安全帽设计.pdf

[189]-基于STM32+OneNet的智能安全帽设计.pdf

上一篇: wince隐藏任务栏与桌面图标
下一篇: 如何使wince下的Windows文件夹下保存数据而掉电也不消失
menuconfig
博客等级 码龄19年 713粉丝 6原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值