Re: implement rom-only using SD Card



On Oct 27, 9:25 am, Jack Chen <JackC...@xxxxxxxxxxxxxxxxxxxxxxxxx>
wrote:
hi,
[wince5.0,armv4i]I'm implementing rom-only file system using my SD Card, but
some of the device cann't start up successfully, I cann't not see the
desktop, it seems that the explorer.exe goes wrong.
here is my SD driver registry settings:
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\SD1]
        "Prefix"="SDI"
        "Dll"="SD_1.dll"
        "Index"=dword:2
        "Order"=dword:0
        "Profile"="SD1"
;       "Flags"=dword:1000
;       "IClass"="{A4E7EDDA-E575-4252-9D6B-4195D48BB865}"

[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\SD1]
    "Name"="Nand Flash"
        "DefaultFileSystem"="FATFS"
        "Folder"="NandFlash"
        "FSD"="fatfs.dll"
        "PartitionDriver"="mspart.dll"
        "AutoMount"=dword:1
        "AutoPart"=dword:1
        "AutoFormat"=dword:1
;       "BootPhase"=dword:0
        "MountFlags"=dword:0

[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\SD1\FATFS]
    "MountAsRoot"=dword:1
    "MountAsBootable"=dword:1
    "MountPermanent"=dword:1

and I have captured the DEBUG messages:
0x8fdebd88: Opened the store hStore=000A0750
0x8fdebd88: <+SDI_IOControl>
0x8fdebd88: NumSec=3635200 BytesPerSec=512 FreeSec=0 BiggestCreatable=0
0x8fdebd88: Partition Part00  NumSectors=10000
0x8fdebd88: MSPART!PD_OpenPartition: dwStoreId=000A0750, PartName=Part00
0x8fdebd88: <+SDI_IOControl>
0x8fdebd88: FSD_MountDisk: mounting volumes for hDsk=000A20F0
0x8fdebd88: <+SDI_IOControl>
0x8fdebd88: FATFS!OpenVolume: access time updates disabled
0x8fdebd88: FATFS!OpenVolume: event logging enabled
0x8fdebd88: FATFS!OpenVolume: automatic scanning disabled
0x8fdebd88: FATFS!OpenVolume: write verify disabled
0x8fdebd88: FATFS!OpenVolume: extra FAT on format disabled
0x8fdebd88: FATFS!OpenVolume: force write through enabled
0x8fdebd88: FATFS!OpenVolume: Codepage = 1
0x8fdebd88: FATFS!OpenVolume: Number of path cache entries = 50
0x8fdebd88: CreateCache: Successful.  Cache Size: 10 KB, Start: 1, End: 20.
0x8fdebd88: CreateCache: Successful.  Cache Size: 20 KB, Start: 21, End: 9999.
0x8fdebd88: <+SDI_IOControl>
0x8fdebd88: FATFS!InitVolume: FAT version: 16
0x8fdebd88: FATFS!InitVolume: Cluster Size (Sectors): 2
0x8fdebd88: FS: Mounting external volume NandFlash as file system root
0x8fdebd88: FS: Registering file system <root>, index 7, flags 0x00000046
0x8fdebd88: FS: Mount complete (<root>, index 7, flags 0x00000046)
0x8fdebd88: FS: Populating root file system...
0x8fdebd88: <+SDI_IOControl>
0x8fdebd88: FATFS!FAT_CreateDirectoryW(8 chars: \Windows) returned FALSE (183)
0x8fdebd88: FATFS!FAT_CreateDirectoryW(5 chars: \Temp) returned FALSE (183)
0x8fdebd88: <+SDI_IOControl>
0x8fdebd88: FATFS!FAT_CreateFileW(\Windows\initobj.dat) returned 0x0 (2)
0x8fdebd88: FATFS!FAT_CreateDirectoryW(14 chars: \Program Files) returned
FALSE (183)
0x8fdebd88: FATFS!FAT_CreateDirectoryW(13 chars: \My Documents) returned
FALSE (183)
0x8fdebd88: FATFS!FAT_CreateDirectoryW(8 chars: \Windows) returned FALSE (183)
0x8fdebd88: FATFS!FAT_CreateDirectoryW(16 chars: \Windows\Desktop) returned
FALSE (183)
0x8fdebd88: FATFS!FAT_CreateDirectoryW(8 chars: \Windows) returned FALSE (183)
0x8fdebd88: FATFS!FAT_CreateDirectoryW(17 chars: \Windows\Programs) returned
FALSE (183)
0x8fdebd88: FATFS!FAT_CreateDirectoryW(8 chars: \Windows) returned FALSE (183)
0x8fdebd88: FATFS!FAT_CreateDirectoryW(15 chars: \Windows\Recent) returned
FALSE (183)
0x8fdebd88: FATFS!FAT_CreateDirectoryW(17 chars: \Windows\Programs) returned
FALSE (183)
0x8fdebd88: FATFS!FAT_CreateFileW(\Windows\explore.lnk) returned 0x0 (2)
0x8fdebd88: <+SDI_IOControl>
0x8fdebd88: IOCTL_DISK_DELETE_SECTORS start=69 cnt=2 not support
...
...
...
...
UpdateIdleTimeoutFromRegistry
0x8fde81a8: FILESYS: SignalStarted loop = 2
0x8fde81a8: FILESYS: Launching explorer.exe
0x8fd548ec: AddToProcessInputLocaleTable: Added process to
ProcessInputLocale table, hProcess = 0xAFDC17AE0x8f98a6ac:

InitSharedHeap: 4a000000 0 c
0x8f98a6ac:   InitSharedHeap: return 4a000060
0x8f98a6ac: AddToProcessInputLocaleTable: Added process to
ProcessInputLocale table, hProcess = 0x6F98A8EE0x8f98a6ac: Entering
InitCapEdit
0x8f98a6ac: CAPEDIT registered(49177)
0x8f98a6ac: InitTTButton:
0x8fde81a8: FILESYS: Done launching apps
0x8fde81a8: -DEVICE!DevloadPostInit
0x8fde81a8: This device has booted 1 times !!!
0x8f98a6ac: Process explorer.exe loaded Module ceshell.dll without freeing
it before process exit
0x8f98a6ac: DeleteFromProcessInputLocaleTable: Deleted process from
ProcessInputLocale table, hProcess: 0x6F98A8EE0x8fa94750: set freq at=24Mhz

try adding the registry key
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\SD1\FATFS]
"MountAsRoot"=dword:1
along with the others.
.