让S3c2410里拥有HIVE注册表的 全部步骤

来源:互联网 发布:无间道知乎 编辑:程序博客网 时间:2024/04/28 16:27

 首先,我是花了几天的时间才搞好的,当然我也在网上找了很多资料,可是网上朋友说可行的方法,我试来试去就是不行,这我也不清楚为什么,一开始有说用到BINFS格式的[指NandFlash分区格式],后来又看到直接用FATFS格式而不需要BINFS的方法, 还是FATFS的方法简单点,所以选了这个方法。。虽然BINFS的方法我还没试用过,不知道行不行,但FATFS的方法是成功了。。

1 忙了几天,怎么改,怎么配,都失败了。原来,是我的NandFlash没有格式化!!汗,我明明用DNW,烧个EBoot进去,想进行高级格式化,但失败了,后来,经人指点,在系统下把所剩分区格式花,就是先烧进一个有磁盘管理功能的系统,再用其进行格式化。。  如果失败也不要紧,那可能就是NandFlash之前被写坏了。所以只要清一清零就行了,可以用DNW的 Earse Nand Flash 这功能吧,把所要用到的分区都清零,记得不要清了装着BIOS的那个分区呀,除了这个其它都清清吧,最重要还是一定要清除下装系统的那个分区,一般应该是32M或以上吧。清完之后再去格式花,看怎么样。

2 要用到HIVE 注册表,首先要选上该功能   PlatForm Builder怎么选不要说了吧,可以在Catalog里右键Find 在里面查找一下HIVE就可以找到了。  同时也把Storage Manager 下的Fat File System也加下去吧

3在PlatForm.reg里加上如下:

;ADD THIS START
; @CESYSGEN IF FILESYS_FSREGHIVE
; HIVE BOOT SECTION

; 0x00000001    Start storage manager in boot phase 1 for hive-based registry
; 0x00000002    Start device manager in boot phase 1 for hive-based registry
; 0x00000004    Start storage manager in boot phase 1 for registry in
;               external ROM (such as BINFS)
; 0x00000008    Start device manager in boot phase 1 for registry in
;               external ROM (such as BINFS)


[HKEY_LOCAL_MACHINE/init/BootVars]
   "SYSTEMHIVE"="Documents and Settings//system.hv"
   "PROFILEDIR"="Documents and Settings"
   "Flags"=dword:3
   "DefaultUser"="default"

[HKEY_LOCAL_MACHINE/System/StorageManager/AutoLoad/FlashDrv]
   "DriverPath"="Drivers//BuiltIn//FlashDrv"
   "LoadFlags"=dword:1
;   "MountFlags"=dword:11
   "BootPhase"=dword:0
   "Flags"=dword:1000

[HKEY_LOCAL_MACHINE/Drivers/BuiltIn/FlashDrv]  ;这个指的是Flash的Dll可能会有些不同吧,但2410就这个
   "Prefix"="DSK"
   "Dll"="FLASHDRV.dll"
; "FSD"="FATFS.DLL" 
   "Order"=dword:0
   "Ioctl"=dword:4
   "Profile"="FlashDrv"
   "FriendlyName"="MS Flash Driver"
   "IClass"=multi_sz:"{A4E7EDDA-E575-4252-9D6B-4195D48BB865}"

; Bind BINFS to the block driver
[HKEY_LOCAL_MACHINE/System/StorageManager/Profiles/FlashDrv]
   "DefaultFileSystem"="FATFS"
   "PartitionDriver"="mspart.dll"
   "AutoMount"=dword:1
   "AutoPart"=dword:1
   "AutoFormat"=dword:1
   "MountAsBootable"=dword:1
   "Folder"="NandFlash"   ;硬盘分区名字
   "Name"="Microsoft Flash Disk"
   "BootPhase"=dword:0
   "Flags"=dword:1000
;   "Ioctl"=dword:4

[HKEY_LOCAL_MACHINE/System/StorageManager/Profiles/FlashDrv/FATFS]
;   "MountAsBootable"=dword:2
   "Flags"=dword:00000024
   "EnableCacheWarm"=dword:0

[HKEY_LOCAL_MACHINE/System/StorageManager/FATFS]
    "FriendlyName"="FAT FileSystem"
    "Dll"="fatfsd.dll"
    "Flags"=dword:00000064  ;原24
    "Paging"=dword:1
    "CacheSize"=dword:0
    "EnableCache"=dword:1

IF TODO
[HKEY_LOCAL_MACHINE/System/StorageManager/AutoLoad/Relfsd]
    "Dll"="relfsd.dll"
    "Paging"=dword:0
    "LoadFlags"=dword:1
ENDIF TODO

; END HIVE BOOT SECTION
; @CESYSGEN ENDIF FILESYS_FSREGHIVE
;ADD THIS END

再把Debug或Release目录下的platform.reg 和reginit.int 删除,再重新Image一次就行了。

还有不成功的,可以加我Q[20527023]来聊聊,我也是搞这方面。

是不是成功了呢,连我这么倒霉的人都能成功,我想不会有人比我倒霉吧

原创粉丝点击