wince50下SDIO怎么添加??

草履虫   2008-11-4 14:37 楼主
BSP是从WINCE42上移植到WINCE50的
所有驱动都没变
以前在WINCE42下没有SDIO的驱动,只有SD存储功能的驱动

现在移植到WINCE50后,不知道怎么才能添加上SDIO这个功能(用来连接无线网卡)

我看PB的PUBLIC中有SDIO的驱动原代码,在PB工具中也有SDIO这个组件

1、是不是在PB中直接添加这个组件就可以实现SDIO的功能了??

2、或者编译PB50下PUBLIC的SD驱动文件夹,让它生成一个SDIO.DLL的文件。
   然后象添加一般的DLL一样,在BIB和REG中添加代码,把SDIO.DLL添加到NK中就可以了??

3、或者需要把PUBLIC下的SDIO的驱动拿到BSP中编译?

4、不是会重新写个SDIO的驱动吧????

谢谢各位,有做过相关工作的发表一下意见!!

回复评论 (14)

LZ,5.0下的ClientDriver就给了个Bluetooth的代码。你应该不能用吧。
你要用SDIO那就自己写个Client层的驱动,不过一般情况是产品厂商都会提供这个dll吧。
直接把这个dll和sdbus.dll和底层的host的dll一起搞到image就好啦。就和sdmemory.dll一样。
点赞  2008-11-4 16:43
在"WINCE500\PUBLIC\COMMON\OAK\DRIVERS\SDCARD"下有五个文件夹

DIRS= \
        SDHCLib \
        SDCardLib \
        SDBusDriver \
        SDHCDrivers \        
        SDClientDrivers
其中SDCLIENTDRIVERS中有两个文件夹
DIRS= \
        SDMemory \
        bluetooth \根据名字看应该是bluetooth的驱动
而SDHCDRIVERS文件夹中也有两个文件夹
DIRS= \   
    SDIOStdHC \
    EllenCfg \这个根据名字看应该是SDIO的驱动吧??
楼上说的“SDIO那就自己写个Client层的驱动,不过一般情况是产品厂商都会提供这个dll吧”您指的这个驱动是无线网卡的驱动还是SDIO的??
我买的SD卡有自己的驱动,但是需要我的板子支持SDIO的驱动,所以SDIO的功能还是需要我自己搞定的
请问这个怎么搞定呢???
点赞  2008-11-4 16:59
底层的Host驱动就应该要包括对于SDIO处理的部分了。一般来说底层的代码应该包括了对于SDIO命令的处理。
所以要是使用SDIO卡的话,必须要有对应的Client层的驱动。用这个Client层的Dll替换掉SDmemory.dll
点赞  2008-11-4 21:07
这个Client层的DLL是需要自己编写代码生成的吗??
还是编译PUBLIC下的对应目录就可以了??
点赞  2008-11-5 09:22
Client层的dll根据不同的卡具有不同的功能实现,一般来说厂商都会提供这个Dll的。
如果你们自己开发SDIO产品的话当然需要自己写了。
点赞  2008-11-5 10:48
越来越糊涂!!
我现在是买了一个SD的无线网卡(插在SD插槽上)
它提供给我一个WINCE42的驱动和一个WINCE50的驱动

但是  这个厂家说我的BSP必须支持SDIO(这个板子是我们自己做的,但是无线网卡不是自己做的)

现在我的BSP可以支持SD存储功能

不知道他说的SDIO驱动是不是你说的“Client层的dll”???

还有这个厂家说只要支持了SDIO这个功能,可以实现识别大存储的SD卡(4G以上)

也就是说他们提供了SD无线网卡的驱动,我需要提供SDIO的功能

(打个比方:比如用USB无线网卡,无线网卡的厂家都会提供他们卡的驱动,不会提供USB的驱动,而USB的驱动是需要你的系统支持的)

而您说的“一般来说厂商都会提供这个Dll的。”您指的厂家是哪个厂家??无线网卡的厂家吗???
点赞  2008-11-5 13:34
引用: 引用 6 楼 wangxin_801115 的回复:
越来越糊涂!!
我现在是买了一个SD的无线网卡(插在SD插槽上)
它提供给我一个WINCE42的驱动和一个WINCE50的驱动

他提供给你一个什么驱动,是一个Dll吗?
点赞  2008-11-5 14:24
wince 5的sdhc 驱动已经支持SDIO的东东了,如果你有源码不妨去初始化的部分去看看类似代码:

pContext->mode.fSDIOEn= FALSE;

定义:

typedef struct {
    BOOL    fSDIOEn;  //SDIO enabled ?
    BOOL    fPowerOn; // Power on?
    BOOL    fClockAlwaysOn;
    BOOL    fFastPathEnabled;
    BOOL    fDMATransfer;
    DWORD  dwClock; // current clock
    DWORD  dwBusWidth; // current bus width
    DWORD  dwVdd;// current voltage
    DWORD  dwActiveSlot;
    DWORD  dwPollingModeSize;
    BOOL  fCurrentRequestFastPath;
   
} PXA_MMCSD_MODE; // current operation mode of the controller
点赞  2008-11-5 15:57
thank U!!

to:gsymichael
SD无线网卡的厂家给我的是一个可安装的驱动包!

TO:lesho
如果 wince 5的sdhc 驱动已经支持SDIO,我需要怎么才能把SDIO的驱动添加到我的内核中??
貌似直接添加PB下对应的SDIO的组件不行!!

点赞  2008-11-5 18:04
没有什么特指的SDIO驱动。
你只要把你现在用的底层Host Controller部分和sdbus部分的dll连同厂家给的驱动一块放到image里就行了。
底层和bus层的代码基本上不区分是那种SDIO卡,只有最上层才和设备有关。
但是底层也有部分和SDIO处理相关的代码。你的机器上如果不能用SDIO的无线网卡的话也要看看你底层对于SDIo
的部分是不是OK
点赞  2008-11-5 19:46
thank u!
点赞  2008-11-5 21:15
那WINCE42下为什么不行呢??
点赞  2008-11-6 09:22
4.2下三星不是有三个DLL吗,什么都不用做,在bib文件打包就可以了
点赞  2008-11-6 16:18
引用: 引用 13 楼 gooogleman 的回复:
4.2下三星不是有三个DLL吗,什么都不用做,在bib文件打包就可以了

指的是在File文件夹下的“SDBusDriver.dll+SDCSDCard.dll+SDMemory.dll”这三个么?
点赞  2008-12-1 23:45
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复