Dear All,

I composed a FMD driver under PB 4.2. After the filesys.exe loaded it,
FMD_GetBlockStatus() is called for every block, then filesys.exe
corrupts. The call stack shows there is exception in file compactor.c,
fal.c and I can not find it under the folder \private.

Any advice is appreciated.

Re: FMD driver for 2048-bytes paged NAND flash by Zhao

Zhao
Thu Dec 04 07:44:46 CST 2003

I've googled discuss groups. I know I must

1) disable FATFS caching
2) load 2 different FATFS DLLs in my image, for I have multiple volumes
with different sector size.

Zhao Kai wrote:

> Dear All,
>
> I composed a FMD driver under PB 4.2. After the filesys.exe loaded it,
> FMD_GetBlockStatus() is called for every block, then filesys.exe
> corrupts. The call stack shows there is exception in file compactor.c,
> fal.c and I can not find it under the folder \private.
>
> Any advice is appreciated.
>


Re: FMD driver for 2048-bytes paged NAND flash by Zhao

Zhao
Sun Dec 07 19:48:32 CST 2003

Hi, everyone,

The problem is not solved even after I do so. The following is my
registry setting:

[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles]
"AutoMount"=dword:1
"AutoPart"=dword:0
"AutoFormat"=dword:0
"MountFlags"=dword:0
"DefaultFileSystem"="FATFS"
"PartitionDriver"="mspart.dll"
"Folder"="Mounted Volume"

[HKEY_LOCAL_MACHINE\System\StorageManager\FATFS]
"FriendlyName"="FAT FileSystem"
"Dll"="fatfsd.dll"
"Flags"=dword:00000024
"Paging"=dword:1
"CacheSize"=dword:ffffffff

[HKEY_LOCAL_MACHINE\System\StorageManager\FATFS2]
"FriendlyName"="FAT FileSystem"
"Dll"="fatfsd2.dll"
"Flags"=dword:00000024
"Paging"=dword:1
"CacheSize"=dword:ffffffff

[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\FlashDrv]
"DefaultFileSystem"="BINFS"
"PartitionDriver"="mspart.dll"
"AutoMount"=dword:1
"AutoPart"=dword:1
"MountFlags"=dword:11
"Folder"="ResidentFlash"
"Name"="Microsoft Flash Disk"
"BootPhase"=dword:0

[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\FlashDrv\FATFS2]
"MountFlags"=dword:2 ; support hive-based registry
"AutoMount"=dword:1
"AutoPart"=dword:1

[HKEY_LOCAL_MACHINE\System\StorageManager\FATFS]
"MountFlags"=dword:0
"EnableCache"=dword:0

[HKEY_LOCAL_MACHINE\System\StorageManager\FATFS2]
"MountFlags"=dword:0
"EnableCache"=dword:0

When filysys.exe corrupts, the call stack list as following:

Call Stack: filesys.exe: 0x2FFE723E 17:26:38 12/04/2003 GTB Standard Time
FLASHDRV!CP_InitCompactor(_FlashInfo * 0x00000000) line 165
FLASHDRV!StartupFAL(_FlashInfo * 0x00000000) line 1461 + 8 bytes
FLASHDRV!DSK_Init(unsigned long 0x00000000) line 241 + 8 bytes
FSDMGR!CBlockDevice::OpenBlockDevice(CBlockDevice * const
0x00000000) line 117 + 16 bytes
FSDMGR!CStore::OpenDisk(CStore * const 0x00000000) line 230 + 4 bytes
FSDMGR!CStore::MountStore(CStore * const 0x00000000, int 0x0ffc9f12)
line 388 + 4 bytes
FSDMGR!AutoLoadFileSystems(unsigned long 0x00000000, unsigned long
0x0ffc9f12) line 553 + 12 bytes
FSDMGR!InitStorageManager(unsigned long 0x00000000) line 751
FSDMGR!Init(unsigned long 0x00000000) line 38 + 4 bytes
FILESYS!InitStorageManager(unsigned long 0x00000000) line 2248
FILESYS!prgInitRegistry(int 0x00000000, unsigned short * 0x0ffc9f12)
line 733
FILESYS!DoGeneralInit(unsigned short * 0x00046d74) line 2451 + 12 bytes
FILESYS!WinMain(HINSTANCE__ * 0x00000000, HINSTANCE__ * 0x00000000,
unsigned short * 0x8c258918, int 0x00000000) line 2849 + 12 bytes
COREDLL!MainThreadBaseFunc(void * 0x00000000, unsigned long
0x0ffc9f12, unsigned long 0x00000000, unsigned long 0x00000010, unsigned
long 0x00000005) line 405
End Call Stack: filesys.exe: 0x2FFE723E 17:26:38 12/04/2003 GTB
Standard Time


Have I missed something? Can anybody tell me why filesys.exe corrupts?

TIA


Zhao Kai wrote:
> I've googled discuss groups. I know I must
>
> 1) disable FATFS caching
> 2) load 2 different FATFS DLLs in my image, for I have multiple volumes
> with different sector size.
>
> Zhao Kai wrote:
>
>> Dear All,
>>
>> I composed a FMD driver under PB 4.2. After the filesys.exe loaded it,
>> FMD_GetBlockStatus() is called for every block, then filesys.exe
>> corrupts. The call stack shows there is exception in file compactor.c,
>> fal.c and I can not find it under the folder \private.
>>
>> Any advice is appreciated.
>>
>