阅读:3430回复:5
紧急求助。关于flash和文件系统
各位大牛好。我又来问问题了。
我把我的问题详细描述一下,请有时间的大牛帮在下看一下: 1,我有一块32MB的S29GL512/256/128N MirrorBit? Flash 2,我按照datasheet把CE public下的strara下的fmd.cpp修改了 3,我的目标就是像论坛里另一位兄弟问的那样把flash里剩余的一些空间作为一个目录挂载到文件系统下去。 我做了如下事情: 1,修改了原来的驱动,对照datasheet 2,加入了fat文件系统,加入了存储设备管理器,加入了分区管理 现在情况如下: 1,CE开机后可以在设备管理器里看到flash但是大小与扇区大小 都不对。 2,没有看到挂载到我指定的目录里 3,开机出现如下信息: Loading partition driver mspart.dll hModule=879B7E30 0x879e5a38: Driver mspart.dll loaded 0x879e5a38: FLASHDRV.DLL:L2P_GetPhysicalSectorAddr() - Secondary table doesn't exist for logical sector 0x0!!! 0x879e5a38: FLASHDRV.DLL:ReadFromMedia() - Unable to determine physical sector address for logical sector 0x00000000 0x879e5a38: Opened the store hStore=000D1950 0x879e5a38: FLASHDRV.DLL:L2P_GetPhysicalSectorAddr() - Secondary table doesn't exist for logical sector 0x0!!! 0x879e5a38: FLASHDRV.DLL:ReadFromMedia() - Unable to determine physical sector address for logical sector 0x00000000 0x879e5a38: NumSec=13 BytesPerSec=65504 FreeSec=0 BiggestCreatable=0 0x879e5a38: 1,INFO: FMD_ReadSector: dwNumSectors 0x1 0x879e5a38: Read :0xffffffff 0xff 0xff 0xffff /////////////上面这条Read是我加入的打印Read SectortInfo的信息 dwNumSectors 是sector序号 0x879e5a38: SignBlock::ulBlockAddress 0xbfd00000 ulSignatureStart 0xbfd1ffe0 0x879e5a38: Exception 002 Thread=879e5a38 Proc=279e5c4a 'filesys.exe' 0x879e5a38: AKY=00000003 PC=017519f0(stratad.dll+0x000119f0) RA=017519dc(stratad.dll+0x000119dc) BVA=000e2000 0x879e5a38: Exception 000 Thread=879e5a38 Proc=279e5c4a 'filesys.exe' 0x879e5a38: AKY=00000003 PC=03f37d68(coredll.dll+0x00037d68) RA=81115e68(NK.EXE+0x00015e68) BVA=00000000 0x879e5a38: FLASHDRV.DLL:CP_StartCompactor() - There aren't any DIRTY sectors left; the compactor can't be started 0x879e5a38: FLASHDRV.DLL:SM_GetNextFreeSector() - Unable to start compactor in critical situation!!! 0x879e5a38: FLASHDRV.DLL:SM_GetNextFreeSector() - Unable to reclaim any free sectors in a critical compaction stage. Media must be full. 0x879e5a38: FLASHDRV.DLL:WriteToMedia() - Unable to get next free physical sector address for writing! The media is full... 0x879e5a38: FLASHDRV.DLL:WriteToMedia() failed. 0x879e5a38: FLASHDRV.DLL:L2P_GetPhysicalSectorAddr() - Secondary table doesn't exist for logical sector 0x0!!! 0x879e5a38: FLASHDRV.DLL:ReadFromMedia() - Unable to determine physical sector address for logical sector 0x00000000 跪请各位老大帮在下指点一条明路 |
|
|
沙发#
发布于:2007-09-28 11:30
eboot里分区时是按512字节做的,而你的flash驱动不是,你需要改成一致的
|
|
板凳#
发布于:2007-09-28 11:54
谢谢楼上,但是我没有用eboot引导啊。我是用yamon引导的。
如果在flash里改成按512字节、分区。具体要怎么做?请指点一下,谢谢 |
|
|
地板#
发布于:2008-05-22 11:28
现在问题解决了吗?我也遇到了相同的问题。我的flash大小不对,但是sector大小是512Byte
|
|
|
地下室#
发布于:2008-09-27 10:01
我也遇到了这样的问题
很是郁闷SM_GetNextFreeSector---------是微软的函数不开源的 希望正在做这些事情的人一起交流。QQ402955982(晚上才上)MSN:wogoyixikexie@live.cn(白天上) |
|
|
5楼#
发布于:2008-10-20 11:42
不知道大家用的flash是nor吗?
|
|