5864|23

80

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

FAT文件系统加载问题 [复制链接]

大家好!

小弟最近在搞FAT文件系统,想在NOR FLASH上没有被NK.exe占用的部分上建立一个FAT文件系统.现在自己已添加了
FAT FILE SYSTEM组件,但是在加载的时候遇到了问题,如下:

>>> Loading module mspart.dll at address 0x03E30000-0x03E3E000 (RW data at 0x01FE6000-0x01FE64AC)
Loaded symbols for 'D:\WINCE500\PBWORKSPACES\MYDESIGN2\RELDIR\MY9261_ARMV4I_DEBUG\MSPART.DLL'
  36220 PID:63ae7b52 TID:63ae7b2e 0x83ae78ec: Loading partition driver mspart.dll hModule=83AAB06C
  36245 PID:63ae7b52 TID:63ae7b2e 0x83ae78ec: Driver mspart.dll loaded
  36275 PID:63ae7b52 TID:63ae7b2e 0x83ae78ec: FLASHDRV.DLL:L2P_GetPhysicalSectorAddr() - Secondary table doesn't exist for logical sector 0x0!!!
  36305 PID:63ae7b52 TID:63ae7b2e 0x83ae78ec: FLASHDRV.DLL:ReadFromMedia() - Unable to determine physical sector address for logical sector 0x00000000
  36335 PID:63ae7b52 TID:63ae7b2e 0x83ae78ec: Opened the store hStore=00093BC0
  36360 PID:63ae7b52 TID:63ae7b2e 0x83ae78ec: FLASHDRV.DLL:L2P_GetPhysicalSectorAddr() - Secondary table doesn't exist for logical sector 0x0!!!
  36390 PID:63ae7b52 TID:63ae7b2e 0x83ae78ec: FLASHDRV.DLL:ReadFromMedia() - Unable to determine physical sector address for logical sector 0x00000000
  36425 PID:63ae7b52 TID:63ae7b2e 0x83ae78ec: NumSec=-512 BytesPerSec=512 FreeSec=0 BiggestCreatable=0
  36450 PID:63ae7b52 TID:63ae7b2e 0x83ae78ec: FLASHDRV.DLL:CP_StartCompactor() - There aren't any DIRTY sectors left; the compactor can't be started
  36485 PID:63ae7b52 TID:63ae7b2e 0x83ae78ec: FLASHDRV.DLL:SM_GetNextFreeSector() - Unable to start compactor in critical situation!!!
  36515 PID:63ae7b52 TID:63ae7b2e 0x83ae78ec: FLASHDRV.DLL:SM_GetNextFreeSector() - Unable to reclaim any free sectors in a critical compaction stage.  Media must be full.
  36545 PID:63ae7b52 TID:63ae7b2e 0x83ae78ec: FLASHDRV.DLL:WriteToMedia() - Unable to get next free physical sector address for writing!  The media is full...
  36575 PID:63ae7b52 TID:63ae7b2e 0x83ae78ec: FLASHDRV.DLL:WriteToMedia() failed.
  36600 PID:63ae7b52 TID:63ae7b2e 0x83ae78ec: FLASHDRV.DLL:L2P_GetPhysicalSectorAddr() - Secondary table doesn't exist for logical sector 0x0!!!
  36635 PID:63ae7b52 TID:63ae7b2e 0x83ae78ec: FLASHDRV.DLL:ReadFromMedia() - Unable to determine physical sector address for logical sector 0x00000000
  36665 PID:63ae7b52 TID:63ae7b2e 0x83ae78ec: FILESYS: Restarting storage manager.

不知上面为什么会冒出个FLASHDRV.DLL,这个dll我也找不到源文件在那里,而且还出现那么多的Unable,请大家指点一下.

万分感谢!!

最新回复

这个问题很难吗? 好歹给点思路啊!!   详情 回复 发表于 2009-7-15 16:08
点赞 关注

回复
举报

77

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
FLASHDRV.DLL 是flash的驱动

源代码一般在BSP或CSP中
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
我的FLASH驱动已经写好,应该不需要再另外调用别的FLASH驱动了啊,不知为什么会这样?
难道加载FAT,就一定会加载这个FLASHDRV.DLL ???
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

4
 
引用 2 楼 kkkcxf1981 的回复:
我的FLASH驱动已经写好,应该不需要再另外调用别的FLASH驱动了啊,不知为什么会这样?
难道加载FAT,就一定会加载这个FLASHDRV.DLL ???


应该是哪里有依赖关系的

LZ可以试试将自己的flash驱动以这个文件名加载到CE系统中
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

5
 
刚看了一下所有与FLASHDRV.DLL有关的地方,都说是要和FAL.lib联结后形成FLASHDRV.DLL,也就是正常的FLASH driver的形成过程,正如大侠所言就是一个FLASHdriver.

谢谢指教!!!

你的方法我再试试,或许会有发现...
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

6
 
越来越牛了。没有弄过NOR 纯粹友情帮顶!
 
 
 

回复

61

帖子

0

TA的资源

一粒金砂(初级)

7
 
uping
 
 
 

回复

83

帖子

0

TA的资源

一粒金砂(初级)

8
 
谢谢gooogleman 老兄啦

 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

9
 
问题依旧!

有个疑问还请91program 帮忙解答:

就是如果要加如FAT,除了加入FAT FILE SYSTEM组件外,其他的如File and Database Replication下的两个(Bit_based,Count_based)和FileSystem -internal下的(RAM and ROM File system,Rom only File System)
还需选上吗?

自己到是没选上面两个,而是选了个HIVE _based Registry.
 
 
 

回复

84

帖子

0

TA的资源

一粒金砂(初级)

10
 
有些有标志的啊,比如前面有个choose 的,那就是任选其一,

奉劝你先不要加HIVE 因为hIVE弄不好会启动不了,还是先搞好所有东西先再回来弄他。
 
 
 

回复

59

帖子

0

TA的资源

一粒金砂(初级)

11
 
原以为要加hive的,听gooogleman 一说,还是去掉比较好,难怪我上午出现过一次系统启动不了的情况

谢谢gooogleman 啦!
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

12
 
当我这样设置:"AutoPart"=dword:0 ,"PartitionDriver"=""时才可以加载fatfsd.dll,fatutil.dll ,
出现的DEBUGCHK failed查出是由DeviceIocontrol执行DISK_IOCTL_WRITE失败造成的,这个倒不是问题.
关键是为什么当执行DISK_IOCTL_WRITE后,为什么没有执行我的flash driver的FMD_OEMIoControl??读写也是这样,可以看出fat并没有调用我的flash driver,如果这样的话,我写的flash driver不就没用了吗??请大家指教啊!

>>> Loading module fatfsd.dll at address 0x03ED0000-0x03EFA000 (RW data at 0x01FF4000-0x01FF463C)
Loaded symbols for 'D:\WINCE500\PBWORKSPACES\MYDESIGN2\RELDIR\MY9261_ARMV4I_DEBUG\FATFSD.DLL'
  34215 PID:83ae7b52 TID:83ae7b2e 0x83ae78ec: FSD_MountDisk: mounting volumes for hDsk=000734C0
  34240 PID:83ae7b52 TID:83ae7b2e 0x83ae78ec: FLASHDRV.DLL:L2P_GetPhysicalSectorAddr() - Secondary table doesn't exist for logical sector 0x0!!!
  34270 PID:83ae7b52 TID:83ae7b2e 0x83ae78ec: FLASHDRV.DLL:ReadFromMedia() - Unable to determine physical sector address for logical sector 0x00000000
  34305 PID:83ae7b52 TID:83ae7b2e 0x83ae78ec: FATFS!OpenVolume: access time updates disabled
  34330 PID:83ae7b52 TID:83ae7b2e 0x83ae78ec: FATFS!OpenVolume: event logging enabled
  34355 PID:83ae7b52 TID:83ae7b2e 0x83ae78ec: FATFS!OpenVolume: automatic scanning disabled
  34380 PID:83ae7b52 TID:83ae7b2e 0x83ae78ec: FATFS!OpenVolume: write verify disabled
  34405 PID:83ae7b52 TID:83ae7b2e 0x83ae78ec: FATFS!OpenVolume: extra FAT on format disabled
  34435 PID:83ae7b52 TID:83ae7b2e 0x83ae78ec: FATFS!OpenVolume: force write through enabled
  34460 PID:83ae7b52 TID:83ae7b2e 0x83ae78ec: FATFS!OpenVolume: Codepage = 1
  34485 PID:83ae7b52 TID:83ae7b2e 0x83ae78ec: FATFS!OpenVolume: Number of path cache entries = 50
  34515 PID:83ae7b52 TID:83ae7b2e 0x83ae78ec: FATFS!InitVolume: sector 0 byte 0 suspicious (0x0)
  34540 PID:83ae7b52 TID:83ae7b2e 0x83ae78ec: FATFS!InitVolume: invalid BPB, volume deemed invalid
  34565 PID:83ae7b52 TID:83ae7b2e 0x83ae78ec: FATFS!InitVolume: FAT version: 12
  34595 PID:83ae7b52 TID:83ae7b2e 0x83ae78ec: FATFS!InitVolume: Cluster Size (Sectors): 0
  34625 PID:83ae7b52 TID:83ae7b2e 0x83ae78ec: >>> Loading module fatutil.dll at address 0x03EA0000-0x03EB3000 (RW data at 0x01FF0000-0x01FF09BC)
Loaded symbols for 'D:\WINCE500\PBWORKSPACES\MYDESIGN2\RELDIR\MY9261_ARMV4I_DEBUG\FATUTIL.DLL'
  37000 PID:83ae7b52 TID:83ae7b2e 0x83ae78ec: FLASHDRV.DLL:CP_StartCompactor() - There aren't any DIRTY sectors left; the compactor can't be started
  37035 PID:83ae7b52 TID:83ae7b2e 0x83ae78ec: FLASHDRV.DLL:SM_GetNextFreeSector() - Unable to start compactor in critical situation!!!
  37065 PID:83ae7b52 TID:83ae7b2e 0x83ae78ec: FLASHDRV.DLL:SM_GetNextFreeSector() - Unable to reclaim any free sectors in a critical compaction stage.  Media must be full.
  37095 PID:83ae7b52 TID:83ae7b2e 0x83ae78ec: FLASHDRV.DLL:WriteToMedia() - Unable to get next free physical sector address for writing!  The media is full...
  37130 PID:83ae7b52 TID:83ae7b2e 0x83ae78ec: FLASHDRV.DLL:WriteToMedia() failed.
  37155 PID:83ae7b52 TID:83ae7b2e 0x83ae78ec: Unknown: DEBUGCHK failed in file c:\macallan\public\common\oak\drivers\fsd\fatutil\main\diskinterface.cpp at line 44
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

13
 
“L2P_GetPhysicalSectorAddr() - Secondary table doesn't exist for logical sector 0x0!!! ”

先找L2P_GetPhysicalSectorAddr()函数。

再看“Secondary table doesn't exist for logical sector 0x0”,基本可确认是你的NOR的多余空间未正确分区,或者说没有正确的分区信息。

一般在eboot中FormatPatition(BINFS)之后,加一个将剩余空间分区成FAT的就行。
 
 
 

回复

84

帖子

0

TA的资源

一粒金砂(初级)

14
 
感谢shuiyan大哥的指点!

有点迷茫了
1:建立个FAT,还需修改eboot?我想知道是否还需建立分区表?
2:前面的NK.exe占用的部分一般都是搞成BINFS?如果这部分不建立文件系统不行吗?
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

15
 
对文件系统真是不了解,还请大家多指点!谢谢!!

现在就是不明白建立FAT的步骤
1:我的系统是通过SBOOT来引导的,是否需要在SBOOT中利用BOotpart库里的BP_OpenPartition等函数来先进行分区??
2:看了BP_OpenPartition的函数介绍可以通过设置第3个参数dwPartType为PART_BINFS和PART_EXTENDED来分别创建BINFS,FAT,是否是说为了建立FAT,上面1的步骤是必须的??
 
 
 

回复

53

帖子

0

TA的资源

一粒金砂(初级)

16
 
怎么没人回啊,现在还没搞清楚方向,急需高人指点啊!!

 
 
 

回复

93

帖子

0

TA的资源

一粒金砂(初级)

17
 
你是进了系统之后,手动分区及格式化的?还是希望开机时就自动建立并加载了fat分区?
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

18
 
回shuiyan 大哥:

我希望是在开机后自动建立并加载fat分区的.为了测试我先尝试在flash里建立一个BINFS分区,然后在将后面的部分变为FAT.

我想先就建立BINFS分区向您请教一下:
现在已将flash的驱动给移值到了eboot里,并在sboot的OEMLaunch函数里添加了如下代码:

BP_Init(pMemory, dwSize,NULL, pRegIn,NULL);

hPart = BP_OpenPartition( 256,  // next block of MBR     
                          256,
                          PART_BINFS,
                          TRUE,
                          PART_OPEN_ALWAYS);

我的理解是:
1:如果BP_OpenPartition成功的话,hPart就是新建的16字节的分区表信息,这个hPart在后面怎么用?不会这样就代表建立BINFS分区结束??如果不是还需要作什么??

2:如果1的说法成立的话,那当我开机后在我的flash驱动加载的时候,是否就不会出现了我一楼中遇到的那些unable??



 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

19
 
引用 14 楼 kkkcxf1981 的回复:
对文件系统真是不了解,还请大家多指点!谢谢!!

现在就是不明白建立FAT的步骤
1:我的系统是通过SBOOT来引导的,是否需要在SBOOT中利用BOotpart库里的BP_OpenPartition等函数来先进行分区??
2:看了BP_OpenPartition的函数介绍可以通过设置第3个参数dwPartType为PART_BINFS和PART_EXTENDED来分别创建BINFS,FAT,是否是说为了建立FAT,上面1的步骤是必须的??


想开机后格式化成FAT,设置注册表即可。
看PB帮助 autoformat 这个设置即可实现,关于这个问题,很多人在论坛问过,你仔细看看。
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

20
 
gooogleman 老兄说的有道理,谢谢!!

不过我关心的是怎样建立FAT,想要建立不是只靠简单的设置注册表就可以实现的
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表