在UT-S3C6410开发板上如何实现Wince600上 Xip+Hive注册表保存?

cici920 2010-09-26 02:38:35
S3c6410 实现Wince600上 Xip+Hive注册表保存

软件平台:wince600
硬件平台:深圳友坚恒天科技 UT-S3C6410开发板

实现方法:
1. 必须加入HIVE based regiters这个组件到OS(在PB右边的文件系统选项里)
2. 注册表添加,必须将一下部分加入你的注册表中实现hive
;HIVE BOOT SECTION
[HKEY_LOCAL_MACHINE\init\BootVars]
"SYSTEMHIVE"="Documents and Settings\\system.hv" ;system.hv会保存到\HDD\Documents and Settings\system.hv
;"PROFILEDIR"="Documents and Settings" ;user.hv会保存到\HDD\Documents and Settings\default\user.hv
"Start DevMgr"=dword:1 ;这个说是启动device.exe,但是wince 5.0好像不用这个
"DefaultUser"="default" ;咱们只有一个用户default,基本上就是决定user.hv的路径了
"Flags"=dword:3 ;这个应该是wince 5.0下决定在哪个阶段启动device.exe的表项
"RegistryFlags"=dword:1 ;这个就是设置注册表每次改动后自动flush到system.hv
;###########################################################################
;这个部分是binfs的注册表项,如果你不是用的binfs那么不用将它们拉到boot.hv中
[HKEY_LOCAL_MACHINE\System\StorageManager\AutoLoad\SMFlash]
"DriverPath"="Drivers\\BlockDevice\\SMFlash"
"LoadFlags"=dword:1
"MountFlags"=dword:11
"BootPhase"=dword:0
"Flags"=dword:1000
[HKEY_LOCAL_MACHINE\Drivers\BlockDevice\SMFlash]
"Prefix"="DSK"
"Dll"="BIBDrv.dll"
"Order"=dword:0
"Ioctl"=dword:4
"Profile"="SMFlash"
"FriendlyName"="Samsung Flash Driver"
"MountFlags"=dword:11
"BootPhase"=dword:0
"Flags"=dword:1000
; Bind BINFS to the block driver
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\SMFlash]
"DefaultFileSystem"="BINFS" ;binfs的路径为/BINFS
"PartitionDriver"="mspart.dll"
"AutoMount"=dword:1
"AutoPart"=dword:1
"MountFlags"=dword:11
"Folder"="ResidentFlash"
"Name"="Samsung Flash Disk"
"BootPhase"=dword:0
"Flags"=dword:1000
"MountHidden"=dword:0
;###########################################################################
;###########################################################################
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\PocketStore]
"Prefix"="DSK"
"Dll"="ONDisk.dll"
"Order"=dword:1
"Profile"="PocketStore"
"IClass"=multi_sz:"{A4E7EDDA-E575-4252-9D6B-4195D48BB865}"
"BmlVolumeId"=dword:0 ; BML volume ID = 0
"BmlPartitionId"=dword:8 ; BML parition ID = PARTITION_ID_FILESYSTEM
"Index"=dword:2
"Flags"=dword:1000 ;这个flag指定这个驱动只在boot.hv中加载一次
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\PocketStore]
"DefaultFileSystem"="FATFS"
"PartitionDriver"="mspart.dll"
"AutoMount"=dword:1
"AutoPart"=dword:1
"AutoFormat"=dword:1
"MountAsBootable"=dword:1 ;这个是wince 5.0下指定这个分区保存system.hv的关键
"Folder"="HDD"
"Name"="NAND Drive"
"Ioctl"=dword:4
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\PocketStore\FATFS]
"EnableCacheWarm"=dword:0

ENDIF
;###########################################################################
;END HIVE BOOT SECTION
; HIVE BOOT SECTION
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Support BINFS Section
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Add BinFS to partition table
[HKEY_LOCAL_MACHINE\System\StorageManager\PartitionTable]
"21"="BINFS"
[HKEY_LOCAL_MACHINE\System\StorageManager\BINFS]
"Folder"="BINFS"
"FriendlyName"="Bin FileSystem"
"Dll"="binfs.dll"
; MountFlags:
; 0x10 specifies that this file system is to be mounted as an external
; ROM filesystem shadowing the \windows directory
; 0x1 specifies that the mountpoint \BINFS is to be hidden
;
"MountFlags"=dword:10
"BootPhase"=dword:0
; END HIVE BOOT SECTION
3. config.bib文件修改
MEMORY
pdwXIPLoc 00000000 803FF000 FIXUPVAR
XIPKERNEL 80200000 001FF000 RAMIMAGE
CHAIN 803FF000 00001000 RESERVED
NK 80400000 01E00000 NANDIMAGE
RAM 80400000 07C00000 RAM
FLASH 92000000 00100000 RESERVED

CONFIG
AUTOSIZE=ON
COMPRESSION=ON
DLLADDR_AUTOSIZE=ON
KERNELFIXUPS=ON
PROFILE=OFF
RAM_AUTOSIZE=OFF
ROMFLAGS=0
;ROMSIZE=01E00000
;ROMSTART=800B8000
;ROMWIDTH=32
ROM_AUTOSIZE=OFF
XIPSCHAIN=803FF000
4. 必须将下列文件加入到XIPKERNEL里
"nk.exe",
"coredll.dll",
"filesys.exe",
"fatfsd.dll",
"diskcache.dll",
"fatutil.dll",
"binfs.dll",
"fsdmgr.dll",
"mspart.dll",
"smflash.dll",
"boot.hv",
加入方法如下:
nk.exe $(_FLATRELEASEDIR)\kern.exe XIPKERNEL SH
其他项类似方法添加.
注:可以直接修改common.bib文件
编译完成后,将xip.bin文件烧写到你的板子上即可.


更多技术交流http://www.urbetter.com/index.asp
...全文
93 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
cici920 2010-09-26
  • 打赏
  • 举报
回复
UT-S3C6410开发板是性能稳定、功能强大、高性价比的ARM11处理器开发板;专为消费类电子、工业控制、车载导航、人机界面、多媒体终端、POS机、行业PDA等电子产品的开发而设计,主要供广大企业用户进行产品前期软硬件性能评估验证、设计参考用。其丰富的设备接口、全面的功能模块和详细的软硬件资料也使其成为高校、培训机构、嵌入式爱好者学习研究的最佳工具。

了解详情http://www.urbetter.com

联系人:廖小姐
电话:0755-26050792,86038900
手机:1581381638
QQ:1632305534
MSN:ci.liao@hotmail.com

源码链接: https://pan.quark.cn/s/a4b39357ea24 在C语言编程环境中,多项式求和是一项常见的编程实践,它融合了数学理论、算法设计以及C语言的基础运用。此类程序可能包含对用户输入的多项式表达式进行解析,进而计算各项的总和。接下来将对这一主题进行深入阐述。 多项式在数学领域是一个基础性概念,它由常数、变量及指数通过线性方式组合而成,例如表达式`3x^2 + 2x - 1`。在C语言环境下,我们可以借助数组来表示多项式的各项系数,例如通过定义一个整型数组`int coefficients[] = {3, 2, -1}`来保存表达式`3x^2 + 2x - 1`的系数值。 1. **多项式解析**: 解析多项式的过程通常需要从用户处获取输入数据,如表达式`3x^2 + 2x - 1`。在C语言中,可以利用`scanf()`函数来接收用户的输入。解析流程涉及到识别每个项的系数、变量及指数,这可能需要运用到字符串处理函数,例如使用`strtok()`函数来分割字符串,以及通过`atoi()`或`atof()`函数将字符串转换为数值类型。 2. **数据结构构建**: 为了高效地处理多项式,可以设计一个结构体用以存储每一项的系数和指数信息。例如: ```c typedef struct { int coefficient; int exponent; } Term; ``` 随后,可以选用链表或数组来存储这些结构体实例,以此来完整表示一个多项式。 3. **求和运算**: 求和操作可能包含两个阶段:(1) 对相同指数的项进行系数相加,(2) 将计算结果整合至最终的多项式表达式中。在处理同次幂项时,需要遍历两个多项式,识别出具有相同指数的项...

21,620

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧