现在的位置: 首页 > 综合 > 正文

WinCE5.0 SMDK2410 BSP在GEC2410开发板上的移植(6)-SDHC驱动

2013年10月05日 ⁄ 综合 ⁄ 共 1685字 ⁄ 字号 评论关闭

SMDK2410已经自带了SDHC的驱动,位于/PUBLIC/COMMON/OAK/CSP/ARM/SAMSUNG/S3C2410X/SDHC,为了更好的研究SD驱动,我们把这个文件夹复制到/PLATFORM/GEC2410/SRC/COMMON/S3C2410X/SDHC/下,这里先介绍移植的工作,然后就来分析该驱动.
1.添加组件
/SDHC下有2两个目录SDHC和SDHCBASE,SDHCBASE只生成一个库,然后被SDHC下文件调用,最终生成SDHC_SC2410.dll.这里的SDHC驱动是SDIO Controller驱动,为了实现能读写SD卡,我们需要添加SD Memory(SYSGEN_SD_MEMORY=1)组件.Samsung 2410 SDIO Host(BSP_SDHC_SC2410=1)组件,也可以在环境变量中直接添加BSP_SDHC_SC2410=1,这样注册表和bib文件中的设置就被使能了.
2.修改source,将编译后的lib或dll放到PLATFORM的BSP目录下,添加原来source中没有的lib文件
1./SDHC/SDHCBASE
TARGETNAME=SC2410_SDHCBase
TARGETTYPE=LIBRARY

INCLUDES=../../inc

SOURCES = SDHCMain.cpp /
          SDIOControllerBase.cpp
2./SDHC/SDHC
SYNCHRONIZE_DRAIN=1

TARGETNAME=SDHC_SC2410
RELEASETYPE=PLATFORM
TARGETTYPE=DYNLINK

DLLENTRY=DllEntry
DEFFILE=sdhc_sc2410.def

PREPROCESSDEFFILE=1

TARGETLIBS= /
    $(_COMMONOAKROOT)/lib/$(_CPUINDPATH)/ceddk.lib   /
    $(_COMMONSDKROOT)/lib/$(_CPUINDPATH)/coredll.lib
           
SOURCELIBS= $(_TARGETPLATROOT)/lib/$(_CPUINDPATH)/SC2410_SDHCBase.lib /
            $(_COMMONOAKROOT)/lib/$(_CPUINDPATH)/sdcardlib.lib /
            $(_COMMONOAKROOT)/lib/$(_CPUINDPATH)/sdhclib.lib /
            $(_COMMONOAKROOT)/lib/$(_CPUINDPATH)/sdbus.lib

INCLUDES=../SDHCBase;../../inc

SOURCES = SDIOController.cpp /
3.插入SD卡,我们可以看到资源浏览器下多了个Storage Card的目录,这就是SD卡.
其名称在common.reg中定义:
[HKEY_LOCAL_MACHINE/System/StorageManager/Profiles/SDMemory]
    "Name"="SD Memory Card"
    "Folder"="Storage Card"
    ;"PartitionDriver"=""          ; removable storage cannot have partitions
如果想改成其他的名称,我们可以在platform.reg中覆盖该设置,比如叫SDCard
; @CESYSGEN IF CE_MODULES_SDMEMORY
[HKEY_LOCAL_MACHINE/System/StorageManager/Profiles/SDMemory]
; "MountAsBootable"=dword:1
; "MountAsRoot"=dword:1
    "Name"="SD Memory Card"
    "Folder"="SDCard"
; @CESYSGEN ENDIF CE_MODULES_SDMEMORY

抱歉!评论已关闭.