系统运行到FMD::FMD_Init就停止了,求救!!

yanshu117 2007-05-31 05:36:54
最近在弄S3C2410上的利用剩余FLASH永久保存的问题,我 PB是CE4.2,工作流程如下,先在定植内核的时候把HIVE悬赏,然后改platform.reg文件,改动如下:

; HIVE BOOT SECTION
[HKEY_LOCAL_MACHINE\init\BootVars]
"SYSTEMHIVE"="system.hv"
; "PROFILEDIR"="Documents and Settings"
"Start DevMgr"=dword:1
"RegistryFlags"=dword:1
[HKEY_LOCAL_MACHINE\init\BootVars]
"DefaultUser"="default"
[HKEY_LOCAL_MACHINE\System\StorageManager\AutoLoad\FlashDrv]
"DriverPath"="Drivers\\BlockDevice\\FlashDrv"
"LoadFlags"=dword:1
"MountFlags"=dword:11
"BootPhase"=dword:0
"Flags"=dword:1000

[HKEY_LOCAL_MACHINE\Drivers\BlockDevice\FlashDrv]
"Prefix"="DSK"
"Dll"="FLASHDRV.dll"
"Order"=dword:0
"Ioctl"=dword:4
"Profile"="FlashDrv"
"FriendlyName"="MS Flash Driver"
"MountFlags"=dword:11
"BootPhase"=dword:0
"Flags"=dword:1000
; Bind BINFS to the block driver
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\FlashDrv]
"DefaultFileSystem"="BINFS"
"PartitionDriver"="mspart.dll"
"AutoMount"=dword:1
"AutoPart"=dword:1
"MountFlags"=dword:2
"Folder"="MYFlashDisk"
"Name"="Microsoft Flash Disk"
"BootPhase"=dword:0
"Flags"=dword:1000

; END HIVE BOOT SECTION
然后编译,编译后,先在开发板上烧NandBoot_Debug 其作用是nandflash的引导程序 用于引导EBOOT,通过EBOOT下载和调试wince镜像文件;下一步烧EBOOT,然后用DNW和PB下载内核,下完后,系统能正常启动,并且,可以在系统内看到FLASH的分区,但是,现在还不能任意重起,没烧正式的引导程序.....所以要重起烧,NandBoot_Release 其是用于直接引导wince内核镜像的引导文件,当系统调试好以后可以在7秒内引导wince启动.烧完后,重起系统,运行到下列位置就不行...
Load WinCE Image ......
Windows CE Kernel for ARM (Thumb Enabled) Built on Mar 13 2003 at 22:52:56
ProcessorType=0920 Revision=0
sp_abt=ffff5000 sp_irq=ffff2800 sp_undef=ffffc800 OEMAddressTable = 8c201280

Windows CE Firmware Init
INFO: Initializing system interrupts...
INFO: Initializing system clock(s)...
INFO: Initializing driver globals area...
KepPad error source2
SDMMC config current rGPGCON: 109
SDMMC config set rGPGCON: 200109
SDMMC config Init Done.
OEMInit Done...
Sp=ffffc7cc
FMD::FMD_Init//到这里就不运行了....
如果不该注册表的话, 系统可以正常启动....
这个问题搞了好几天了。 一直不知道是怎么回事,有知道的大侠们,请多多帮助
我EMAIL yanshu_1@163.com QQ: 164189616
谢谢了
...全文
1348 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
gooogleman 2008-10-16
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 sxy_9761 的回复:]
这些东西很多都是有源代码可以追的,静下心来,慢慢思考。平台不一样,bootloader,eboot实现不一样,不能一概而论。我以前见过一款板子,他的bootloader能同时支持与运行wince与linux,它改了很多东西。。。
[/Quote]

---------------看程序在哪里死掉,就在这之前找啊,看那个打印信息很有帮助的
bunnyf 2008-07-28
  • 打赏
  • 举报
回复
和楼主碰到的 问题一样,
不过是 友善之臂的 qq2440 的板子.
添加了点东西 就这样了.

郁闷啊, Eboot 是编译好的 没法改 ...
sxy_9761 2008-07-28
  • 打赏
  • 举报
回复
这些东西很多都是有源代码可以追的,静下心来,慢慢思考。平台不一样,bootloader,eboot实现不一样,不能一概而论。我以前见过一款板子,他的bootloader能同时支持与运行wince与linux,它改了很多东西。。。
Jackey_shao 2007-06-23
  • 打赏
  • 举报
回复
:yanshu117() 联系一下,我也和你使用的板子一样,我的联系方式:QQ:453834114
yanshu117 2007-06-06
  • 打赏
  • 举报
回复
5555555555郁闷呀!!!怎么设置保护块不会!!!atd大哥,挺好,把他的eboot给我了.可以我的程序和他的加载地址不同,还要该nboot..哭了,越来越低层了 谁能告诉我怎么设置加载地址呀!我的平台是4.2 s3c2410
还有就是告诉我怎么设置保护块也行.谢谢了
slyzhang 2007-06-04
  • 打赏
  • 举报
回复
Sp=ffffc7cc
FMD::FMD_Init//到这里就不运行了....


这个东西却是比较讨厌,一般来说,应该是加载注册表前需要加载Nandflash的驱动,再加载BINFS吧, 也许这里缺少什么东西比如驱动、加载顺序的设定等

研究。。。
yanshu117 2007-06-04
  • 打赏
  • 举报
回复
哦,谢谢了
我碰到一个高人,他说是OEMInit里的毛病,要把里面的KITL去掉就行...
但是要改代码,研究了下代码,不知道改怎么该???请问有人知道吗??
还有就是大家分析下是不是真的是OEMInit的问题.谢谢了.我都被这个问题
繁了一个星期了....
yanshu117 2007-06-04
  • 打赏
  • 举报
回复
呵呵,问题大概已经知道了.atd.one大哥,说我的内核已经没有问题了。 现在主要是没有在EBOOT里面没有设置保留块的问题,我现在就去试试,但应atd.one的要求,让我帮他宣传一下他的论坛和群, [ZZ[&.Tt
www.atdone.com 8912325,这个主要是windows mobile的论坛和群,请大大多多加入,同时我个人以人格保证,atd.one大哥真是位高手,很乐于帮助新人,如果你是这方面的请加入看看,ce的人也可以近来看看.
yanshu117 2007-06-04
  • 打赏
  • 举报
回复
用大侠atd.one给我的传过来的注册表修改,改动如下:
; HIVE BOOT SECTION
[HKEY_LOCAL_MACHINE\init\BootVars]
"SYSTEMHIVE"="Documents and Settings\\system.hv"
"PROFILEDIR"="Documents and Settings"
"Start DevMgr"=dword:1
"Flags"=dword:1000
"RegistryFlags"=dword:1

;
; 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:11
"BootPhase"=dword:0
"Flags"=dword:1000

;
; Entries to load the block driver that BINFS uses
; This is dependent on what device is used
;
[HKEY_LOCAL_MACHINE\System\StorageManager\AutoLoad\FlashDrv]
"DriverPath"="Drivers\\BlockDevice\\FlashDrv"
"LoadFlags"=dword:1
"MountFlags"=dword:11
"BootPhase"=dword:0
"Flags"=dword:1000

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

; Bind BINFS to the block driver
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\FlashDrv]
"DefaultFileSystem"="BINFS"
"PartitionDriver"="mspart.dll"
"AutoFormat"=dword:1
"AutoMount"=dword:1
"AutoPart"=dword:1
"MountFlags"=dword:11
"Folder"="FlashDisk"
"Name"="Microsoft Flash Disk"
"BootPhase"=dword:0
"Flags"=dword:1000

; Keep FATFS from trying to shadow \Windows
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\FlashDrv\FATFS]
"MountFlags"=dword:2
"Flags"=dword:1000

[HKEY_LOCAL_MACHINE\System\StorageManager\FATFS]
"MountFlags"=dword:0
"Flags"=dword:1000
; END HIVE BOOT SECTION
这样修改完成后,启动系统,没有了我前面说的问题,第一次烧Release也成功了.终于跳过FMD_Init了,庆祝,但是当我断电再重新启动后,就....到下面界面就不运行了

WinCE NAND Boot v1.00
Nov 16 2006 10:03:13
##############################
#这里面为我买的开发板的厂商信息 #
##############################
Load WinCE Image ......
居然到这里不行???不明白 怀疑是不是把内核给弄丢了???
Sniper167 2007-06-02
  • 打赏
  • 举报
回复
估计不是楼上说的原因哦 如果flash被擦了 内核启动的调试信息从何而来?

楼主应该检查下内核里的flash驱动能否正常工作
djj086 2007-06-01
  • 打赏
  • 举报
回复
在boot里面写扇区的时候一定要注意标记扇区信息,比如说有的块要标记为只读或者坏块,要不然wince第一次起来之后会格式化Flash,把你写的东东都干掉了,系统当然起不来了

19,500

社区成员

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

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