3.添加文件到 PLATFORM.BIB 中.
; SD BUS driver
SDBusDriver.dll $(_FLATRELEASEDIR)\SDBusDriver.dll NK SH
; SD host
SDCSDCard.DLL $(_FLATRELEASEDIR)\SDCSDCard.DLL NK SH
SDMemory.dll $(_FLATRELEASEDIR)\SDMemory.dll NK SH
SDBusDriver.dll $(_FLATRELEASEDIR)\SDBusDriver.dll NK SH
; SD host
SDCSDCard.DLL $(_FLATRELEASEDIR)\SDCSDCard.DLL NK SH
SDMemory.dll $(_FLATRELEASEDIR)\SDMemory.dll NK SH
4.添加注册表项目:
; charlie, SDIO
; two step load process, the bus driver will perform. it''s
; own ActivateDevice call in the Entry point provided
; this way the driver even though it is a Builtin device, it can be unloaded
[HKEY_LOCAL_MACHINE\Drivers\Builtin\SDBusDriver]
"Order"=dword:20
"Dll"="SDBusDriver.dll"
"Entry"="SDBusDriverStartUp"
[HKEY_LOCAL_MACHINE\Drivers\SDCARD\SDBusDriver]
"Order"=dword:20
"Dll"="SDBusDriver.dll"
"Prefix"="SDC"
"ThreadPriority"=dword:64 ; default thread priority for dispatch thread
"RequestListDepth"=dword:30 ; pre-allocated requests
;"ZoneMask"=dword:e01d ; example zone mask
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\SDMemory]
"Name"="SD Memory Card"
"Folder"="Storage Card"
; "PartitionDriver"="" ; removable storage cannot have partitions
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\MMC]
"Name"="MMC Card"
"Folder"="Storage Card"
; "PartitionDriver"="" ; removable storage cannot have partitions
; SD Memory Storage class driver
[HKEY_LOCAL_MACHINE\Drivers\SDCARD\ClientDrivers\Class\SDMemory_Class]
"Dll"="SDMemory.dll"
"Prefix"="DSK"
"FSD"="FATFS.DLL"
"IOCTL"=dword:4 ; DISK_IOCTL_INITIALIZE, sent to driver by DeviceManager
"BlockTransferSize"=dword:40 ; Send no more than 64 blocks ofdataper bus transfer
;"SingleBlockWrites"=dword:1 ; alternatively force the driver to use single block access
"Profile"="SDMemory"
"IClass"=multi_sz:"{A4E7EDDA-E575-4252-9D6B-4195D48BB865}",
"{A32942B7-920C-486b-B0E6-92A702A99B35}"
; MMC Storage Class Driver
[HKEY_LOCAL_MACHINE\Drivers\SDCARD\ClientDrivers\Class\MMC_Class]
"Dll"="SDMemory.dll"
"Prefix"="DSK"
"FSD"="FATFS.DLL"
"IOCTL"=dword:4 ; DISK_IOCTL_INITIALIZE, sent to driver by DeviceManager
"BlockTransferSize"=dword:40 ; Send no more than 64 blocks of data per bus transfer
;"SingleBlockWrites"=dword:1 ; alternatively force the driver to use single block access
"Profile"="MMC"
"IClass"=multi_sz:"{A4E7EDDA-E575-4252-9D6B-4195D48BB865}",
"{A32942B7-920C-486b-B0E6-92A702A99B35}"
; setting for SD bus driver to load driver
[HKEY_LOCAL_MACHINE\Drivers\SDCARD\HostControllers\SDSC]
"Dll"="SDCSDCard.dll"
"Prefix"="SDC"
; two step load process, the bus driver will perform. it''s
; own ActivateDevice call in the Entry point provided
; this way the driver even though it is a Builtin device, it can be unloaded
[HKEY_LOCAL_MACHINE\Drivers\Builtin\SDBusDriver]
"Order"=dword:20
"Dll"="SDBusDriver.dll"
"Entry"="SDBusDriverStartUp"
[HKEY_LOCAL_MACHINE\Drivers\SDCARD\SDBusDriver]
"Order"=dword:20
"Dll"="SDBusDriver.dll"
"Prefix"="SDC"
"ThreadPriority"=dword:64 ; default thread priority for dispatch thread
"RequestListDepth"=dword:30 ; pre-allocated requests
;"ZoneMask"=dword:e01d ; example zone mask
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\SDMemory]
"Name"="SD Memory Card"
"Folder"="Storage Card"
; "PartitionDriver"="" ; removable storage cannot have partitions
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\MMC]
"Name"="MMC Card"
"Folder"="Storage Card"
; "PartitionDriver"="" ; removable storage cannot have partitions
; SD Memory Storage class driver
[HKEY_LOCAL_MACHINE\Drivers\SDCARD\ClientDrivers\Class\SDMemory_Class]
"Dll"="SDMemory.dll"
"Prefix"="DSK"
"FSD"="FATFS.DLL"
"IOCTL"=dword:4 ; DISK_IOCTL_INITIALIZE, sent to driver by DeviceManager
"BlockTransferSize"=dword:40 ; Send no more than 64 blocks ofdataper bus transfer
;"SingleBlockWrites"=dword:1 ; alternatively force the driver to use single block access
"Profile"="SDMemory"
"IClass"=multi_sz:"{A4E7EDDA-E575-4252-9D6B-4195D48BB865}",
"{A32942B7-920C-486b-B0E6-92A702A99B35}"
; MMC Storage Class Driver
[HKEY_LOCAL_MACHINE\Drivers\SDCARD\ClientDrivers\Class\MMC_Class]
"Dll"="SDMemory.dll"
"Prefix"="DSK"
"FSD"="FATFS.DLL"
"IOCTL"=dword:4 ; DISK_IOCTL_INITIALIZE, sent to driver by DeviceManager
"BlockTransferSize"=dword:40 ; Send no more than 64 blocks of data per bus transfer
;"SingleBlockWrites"=dword:1 ; alternatively force the driver to use single block access
"Profile"="MMC"
"IClass"=multi_sz:"{A4E7EDDA-E575-4252-9D6B-4195D48BB865}",
"{A32942B7-920C-486b-B0E6-92A702A99B35}"
; setting for SD bus driver to load driver
[HKEY_LOCAL_MACHINE\Drivers\SDCARD\HostControllers\SDSC]
"Dll"="SDCSDCard.dll"
"Prefix"="SDC"
5.系统启动后,SDBus.dll和SDHC_SC2410.dll能在注册表HKEY_LOCAL_MACHINE\Drivers\Active 看到.
6.调试.
一般先从底层开始,是否发生系统硬件中断,打印中断信息.
返回系统中断信息 :SYS_SDXXX
说明系统硬件是正常的 ,再开始调试其他部分.