guoguor
驱动小牛
驱动小牛
  • 注册日期2004-10-10
  • 最后登录2012-03-06
  • 粉丝0
  • 关注0
  • 积分1023分
  • 威望203点
  • 贡献值0点
  • 好评度117点
  • 原创分0分
  • 专家分0分
阅读:2216回复:12

做过的请进,加载不上sdmemory.dll

楼主#
更多 发布于:2008-04-15 09:52
在调试基于pxa270的主板的sd卡部分的时候,发现windowsce能够加载上sdbus.dll和sdhc_mainstoneii.dll,却加载不上sdmemory.dll 。采用pb5.0

下面是热插拔sd卡时候的调试信息,请各位指点。谢谢

4294834678 PID:46fc4402 TID:86df2fde 0x86dec400: SD Card Power Off!
4294838640 PID:46fc4402 TID:86df2fde 0x86dec400: SD Card Insertion!
4294838640 PID:46fc4402 TID:86df2fde 0x86dec400: SD Card Power On!
4294839242 PID:46fc4402 TID:c6df20f2 0x86df6000: SDGetClientFunctions: +Init
4294839242 PID:46fc4402 TID:c6df20f2 0x86df6000: SDGetClientFunctions: -Init
4294839544 PID:46fc4402 TID:c6df20f2 SDHSlotOptionHandler - called - SetSlotInterface : Clock Setting: 100000
4294839544 PID:46fc4402 TID:c6df20f2 SDHSlotOptionHandler - called - SetSlotInterface : setting for 1 bit mode
4294839545 PID:46fc4402 TID:c6df20f2 0x86df6000: SDSetCardInterfaceForSlot - HC ClockRate differs desired setting: desired: 100000 Hz, Actual : 312500 Hz
4294839546 PID:46fc4402 TID:86df2bf6 HandleEndCommandInterrupt: response for command 5 , timed - out
4294839547 PID:46fc4402 TID:86df2bf6 0x86df6880: SDBusDriver: Retrying request 0x005C4B10, Current retry count: 3
4294840046 PID:46fc4402 TID:c6df20f2 0x86df6000: SDBusDriver:   SDIO Device reports zero Functions !
4294840046 PID:46fc4402 TID:c6df20f2 0x86df6000: SDBusDriver: Work Item exiting because of failure : 0xC0000017
一个小虾米,加油......
zhuxiaofeng
驱动小牛
驱动小牛
  • 注册日期2007-04-06
  • 最后登录2010-04-15
  • 粉丝0
  • 关注0
  • 积分1013分
  • 威望243点
  • 贡献值0点
  • 好评度202点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2008-04-15 09:55
你插的是SDIO卡??貌似命令执行有误,把你的SD memory当成了SDIO卡。
如果是SD memory卡不会对CMD5相应的。
做一个出色的程序员!
guoguor
驱动小牛
驱动小牛
  • 注册日期2004-10-10
  • 最后登录2012-03-06
  • 粉丝0
  • 关注0
  • 积分1023分
  • 威望203点
  • 贡献值0点
  • 好评度117点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2008-04-15 10:01
我需要换sd卡再测试,还是得改代码呢?
一个小虾米,加油......
zhuxiaofeng
驱动小牛
驱动小牛
  • 注册日期2007-04-06
  • 最后登录2010-04-15
  • 粉丝0
  • 关注0
  • 积分1013分
  • 威望243点
  • 贡献值0点
  • 好评度202点
  • 原创分0分
  • 专家分0分
地板#
发布于:2008-04-15 10:24
可能需要改代码。你确定sdhc_mainstoneii.dll驱动好用吗?
做一个出色的程序员!
guoguor
驱动小牛
驱动小牛
  • 注册日期2004-10-10
  • 最后登录2012-03-06
  • 粉丝0
  • 关注0
  • 积分1023分
  • 威望203点
  • 贡献值0点
  • 好评度117点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2008-04-15 11:39
谢谢回复。
sdhc_mainstoneii.dll能够加载上,我跟踪发现detect中断也能够响应(通过SD Card Insertion!
 SD Card Power On!这条论断的)

“HandleEndCommandInterrupt: response for command 5 , timed - out ”这条语句是在AddNewDevice的时候出现的。

怎么确认sdhc_mainstoneii.dll能够正常工作啊?
如果出现这种现象一般是host driver的哪一部分代码没有处理好呢??
一个小虾米,加油......
guoguor
驱动小牛
驱动小牛
  • 注册日期2004-10-10
  • 最后登录2012-03-06
  • 粉丝0
  • 关注0
  • 积分1023分
  • 威望203点
  • 贡献值0点
  • 好评度117点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2008-04-15 11:58
我查看了一下host driver的注册表发现"prefix" = SDH

我是不是得找个sdio卡测试一下?
一个小虾米,加油......
zhuxiaofeng
驱动小牛
驱动小牛
  • 注册日期2007-04-06
  • 最后登录2010-04-15
  • 粉丝0
  • 关注0
  • 积分1013分
  • 威望243点
  • 贡献值0点
  • 好评度202点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2008-04-15 13:17
应该不用,如果你是SD memory卡的话,
CMD5一般需要发3次,会出现你说的三次HandleEndCommandInterrupt: response for command 5 , timed - out 。
估计是host driver有问题,需要看sendcommad 和Getresponse这两个函数。
做一个出色的程序员!
guoguor
驱动小牛
驱动小牛
  • 注册日期2004-10-10
  • 最后登录2012-03-06
  • 粉丝0
  • 关注0
  • 积分1023分
  • 威望203点
  • 贡献值0点
  • 好评度117点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2008-04-15 13:40
谢谢,我看看host代码去。过后再跟你请教
一个小虾米,加油......
guoguor
驱动小牛
驱动小牛
  • 注册日期2004-10-10
  • 最后登录2012-03-06
  • 粉丝0
  • 关注0
  • 积分1023分
  • 威望203点
  • 贡献值0点
  • 好评度117点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2008-04-23 15:03
前一段时间一直在忙其他的.最近才又看这个.
我看了一下驱动,发现这个是在host发送了 CMD5之后.我插入的卡对发送的命令响应,但是从response读取出来的 numFunctions等于0,导致软件退出的.
(numFunctions = SD_GET_NUMBER_OF_FUNCTIONS(&response))

我查看SDIO的datasheet得知,"Note that a SD memory only card may respond to a
CMD5. The proper response for a memory only card would be Memory Present = 1 and Number of I/O Functions = 0"

请教各位对于这种的sd卡得如何的初始化,并且如何的判断sd的类型呢?谢谢了
一个小虾米,加油......
guoguor
驱动小牛
驱动小牛
  • 注册日期2004-10-10
  • 最后登录2012-03-06
  • 粉丝0
  • 关注0
  • 积分1023分
  • 威望203点
  • 贡献值0点
  • 好评度117点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2008-04-24 16:32
如果该主板的mmc/sd/sdio控制器支持3.2版本的mmc卡,1.01版本的sd卡,1.0版本的sdio卡,那我是不是得找符合这个版本的卡测试,高版本的不行哦???是这样子吗
一个小虾米,加油......
werna
驱动牛犊
驱动牛犊
  • 注册日期2007-10-25
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分12分
  • 威望105点
  • 贡献值0点
  • 好评度50点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2008-04-26 10:47
你改成numFunctions等于0不退出,继续往下检测卡类型不就可以了吗?
...............
numFunctions = SD_GET_NUMBER_OF_FUNCTIONS(&response);
memoryPresent = SD_MEMORY_PRESENT_WITH_IO(&response);
if (numFunctions != 0)
{
     //SDIO or SD combo
     ......
}
else
{
    // if memory present, continue init phase
    if (memoryPresent)
    {
          DbgPrintZo(SDBUS_ZONE_DEVICE, (TEXT("SDBusDriver: SDIO Card reported zero function and memory presented \n")));
     }
     else
     {
          DbgPrintZo(SDCARD_ZONE_ERROR, (TEXT("SDBusDriver:   SDIO Device reports zero Functions ! \n")));
          status = SD_API_STATUS_DEVICE_UNSUPPORTED;
          goto exitInit;
     }
}
guoguor
驱动小牛
驱动小牛
  • 注册日期2004-10-10
  • 最后登录2012-03-06
  • 粉丝0
  • 关注0
  • 积分1023分
  • 威望203点
  • 贡献值0点
  • 好评度117点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2008-04-28 14:16
恩,加上了,也测试了,还是跑到了
SDBusDriver:  SDIO Device reports zero Functions ! \n")));
看来memoryPresent=0;
我调试时打印出了debug信息,看到response都是0x00,why??
一个小虾米,加油......
guoguor
驱动小牛
驱动小牛
  • 注册日期2004-10-10
  • 最后登录2012-03-06
  • 粉丝0
  • 关注0
  • 积分1023分
  • 威望203点
  • 贡献值0点
  • 好评度117点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2008-04-29 09:54
嗯,查看了一下,当发第二次cmd5的时候sd卡响应了.第一次的没有响应.郁闷中
一个小虾米,加油......
游客

返回顶部