怎么支持大容量SD卡

diannao   2009-8-5 14:44 楼主
使用wince 6   打上r2及到2009。4月的所有补丁
硬件:S3C2443

以下是调试过程中的输出:

SendCommand (0xd2998b60, 0x0005, 0x00000000, 0x0005, 0x0) starts
CreaGetCommandResponse returned SD_API_STATUS_RESPONSE_TIMEOUT (COMMAND_TIMED_OUT)!
SendCommand (0xd2998b60, 0x0005, 0x00000000, 0x0005, 0x0) starts
GetCommandResponse returned SD_API_STATUS_RESPONSE_TIMEOUT (COMMAND_TIMED_OUT)!
SendCommand (0xd2998b60, 0x0005, 0x00000000, 0x0005, 0x0) starts
GetCommandResponse returned SD_API_STATUS_RESPONSE_TIMEOUT (COMMAND_TIMED_OUT)!
SendCommand (0xd2998b60, 0x0005, 0x00000000, 0x0005, 0x0) starts
GetCommandResponse returned SD_API_STATUS_RESPONSE_TIMEOUT (COMMAND_TIMED_OUT)!
SendCommand (0xd2998b60, 0x0000, 0x00000000, 0x0000, 0x0) starts
SendCommand (0xd2998b60, 0x0008, 0x0000015a, 0x0008, 0x0) starts
*(vm_pSDIReg->SDIRSP0) = 0x15a
                              GetCommandResponse returned SD_API_STATUS_SUCCESS
SendCommand (0xd2998b60, 0x0001, 0x00300000, 0x0004, 0x0) starts
GetCommandResponse returned SD_API_STATUS_RESPONSE_TIMEOUT (COMMAND_TIMED_OUT)!
SendCommand (0xd2998b60, 0x0001, 0x00300000, 0x0004, 0x0) starts
GetCommandResponse returned SD_API_STATUS_RESPONSE_TIMEOUT (COMMAND_TIMED_OUT)!
SendCommand (0xd2998b60, 0x0001, 0x00300000, 0x0004, 0x0) starts
GetCommandResponse returned SD_API_STATUS_RESPONSE_TIMEOUT (COMMAND_TIMED_OUT)!
SendCommand (0xd2998b60, 0x0001, 0x00300000, 0x0004, 0x0) starts
GetCommandResponse returned SD_API_STATUS_RESPONSE_TIMEOUT (COMMAND_TIMED_OUT)!
SendCommand (0xd2998b60, 0x0037, 0x00000000, 0x0001, 0x0) starts
*(vm_pSDIReg->SDIRSP0) = 0x400120
                                 GetCommandResponse returned SD_API_STATUS_SUCCESS
SendCommand (0xd2998b60, 0x0029, 0x40300000, 0x0004, 0x0) starts
*(vm_pSDIReg->SDIRSP0) = 0xff8000
                                 GetCommandResponse returned SD_API_STATUS_SUCCESS
INFO: Plug: Mapped Irq 0x3 to SendCommand (0xd2998b60, 0x0000, 0x00000000, 0x0000, 0x0) starts
SendCommand (0xd2998b60, 0x0008, 0x0000015a, 0x0008, 0x0) starts
*(vm_pSDIReg->SDIRSP0) = 0x15a
                              GetCommandResponse returned SD_API_STATUS_SUCCESS
SendCommand (0xd2998b60, 0x0037, 0x00000000, 0x0001, 0x0) starts
*(vm_pSDIReg->SDIRSP0) = 0x120
                              GetCommandResponse returned SD_API_STATUS_SUCCESS
SendCommand (0xd2998b60, 0x0029, 0x40100000, 0x0004, 0x0) starts
*(vm_pSDIReg->SDIRSP0) = 0xff8000
                                 GetCommandResponse returned SD_API_STATUS_SUCCESS
SendCommand (0xd2998b60, 0x0037, 0x00000000, 0x0001, 0x0) starts
*(vm_pSDIReg->SDIRSP0) = 0x120
                              GetCommandResponse returned SD_API_STATUS_SUCCESS
SendCommand (0xd2998b60, 0x0029, 0x40100000, 0x0004, 0x0) starts
*(vm_pSDIReg->SDIRSP0) = 0xc0ff8000
                                   GetCommandResponse returned SD_API_STATUS_SUCCESS
SendCommand (0xd2998b60, 0x0002, 0x00000000, 0x0003, 0x0) starts
*(vm_pSDIReg->SDIRSP3) = 0x9900914f
                                   *(vm_pSDIReg->SDIRSP2) = 0x38b38fa5
                                                                      *(vm_pSDIReg->SDIRSP1) = 0x44303447
      *(vm_pSDIReg->SDIRSP0) = 0x2544d53
                                        GetCommandResponse returned SD_API_STATUS_SUCCESS
SendCommand (0xd2998b60, 0x0003, 0x00000000, 0x0007, 0x0) starts
*(vm_pSDIReg->SDIRSP0) = 0x6b940520
                                   GetCommandResponse returned SD_API_STATUS_SUCCESS
SendCommand (0xd2998b60, 0x0009, 0x6b940000, 0x0003, 0x0) starts
*(vm_pSDIReg->SDIRSP3) = 0xa400051
                                  *(vm_pSDIReg->SDIRSP2) = 0x1d877f80
                                                                     *(vm_pSDIReg->SDIRSP1) = 0x5b590000
     *(vm_pSDIReg->SDIRSP0) = 0x400e0032
                                        GetCommandResponse returned SD_API_STATUS_SUCCESS
SendCommand (0xd2998b60, 0x000d, 0x6b940000, 0x0001, 0x0) starts
*(vm_pSDIReg->SDIRSP0) = 0x700
                              GetCommandResponse returned SD_API_STATUS_SUCCESS
SendCommand (0xd2998b60, 0x0007, 0x6b940000, 0x0002, 0x0) starts
*(vm_pSDIReg->SDIRSP0) = 0x700
                              GetCommandResponse returned SD_API_STATUS_SUCCESS
SendCommand (0xd2998b60, 0x0037, 0x6b940000, 0x0001, 0x0) starts
*(vm_pSDIReg->SDIRSP0) = 0x920
                              GetCommandResponse returned SD_API_STATUS_SUCCESS
SD_READ Dma 0x00000008, 0x0001
SendCommand (0xd2998b60, 0x0033, 0x00000000, 0x0001, 0x1) starts
*(vm_pSDIReg->SDIRSP0) = 0x920
                              GetCommandResponse returned SD_API_STATUS_SUCCESS
SendCommand (0xd2998b60, 0x0037, 0x6b940000, 0x0001, 0x0) starts
*(vm_pSDIReg->SDIRSP0) = 0x920
                              GetCommandResponse returned SD_API_STATUS_SUCCESS
SendCommand (0xd2998b60, 0x002a, 0x00000000, 0x0001, 0x0) starts
*(vm_pSDIReg->SDIRSP0) = 0x920
                              GetCommandResponse returned SD_API_STATUS_SUCCESS
SendCommand (0xd2998b60, 0x0037, 0x6b940000, 0x0001, 0x0) starts
*(vm_pSDIReg->SDIRSP0) = 0x920
                              GetCommandResponse returned SD_API_STATUS_SUCCESS
SendCommand (0xd2998b60, 0x0006, 0x00000002, 0x0001, 0x0) starts
*(vm_pSDIReg->SDIRSP0) = 0x920
                              GetCommandResponse returned SD_API_STATUS_SUCCESS
SD_READ Dma 0x00000200, 0x0001
SendCommand (0xd2998b60, 0x0011, 0x00000000, 0x0001, 0x1) starts
*(vm_pSDIReg->SDIRSP0) = 0x900
                              GetCommandResponse returned SD_API_STATUS_SUCCESS
SD_READ Dma 0x00000200, 0x0001
SendCommand (0xd2998b60, 0x0011, 0x00400000, 0x0001, 0x1) starts
*(vm_pSDIReg->SDIRSP0) = 0x900
                              GetCommandResponse returned SD_API_STATUS_SUCCESS
SD_READ Dma 0x00000200, 0x0001
SendCommand (0xd2998b60, 0x0011, 0x00000000, 0x0001, 0x1) starts
*(vm_pSDIReg->SDIRSP0) = 0x900
                              GetCommandResponse returned SD_API_STATUS_SUCCESS
SD_READ Dma 0x00000200, 0x0001
SendCommand (0xd2998b60, 0x0011, 0x00400000, 0x0001, 0x1) starts
*(vm_pSDIReg->SDIRSP0) = 0x900
                              GetCommandResponse returned SD_API_STATUS_SUCCESS


从回应信息*(vm_pSDIReg->SDIRSP0) = 0xc0ff8000看,可以知道该卡是sdhc卡。但结果启动wince 6后,看到存储卡。 那位DX指导一下


关于wince5 支持大容量SD卡的
http://support.microsoft.com/default.aspx/kb/933809

回复评论 (6)

打补丁还是不行的,还要修改一些配置,环境变量以及驱动的一些命令。
点赞  2009-8-5 15:02
Mark一下 一起学习
点赞  2009-8-5 15:12
引用: 引用 1 楼 gooogleman 的回复:
打补丁还是不行的,还要修改一些配置,环境变量以及驱动的一些命令。

在SendCommand函数中 添加ResponseR7,如下
。。。。
    case ResponseR5:               
    case ResponseR6:  
    case ResponseR7:// 增加的行
            vm_pSDIReg->SDICCON = WAIT_FOR_RESPONSE | START_COMMAND | COMMAND_START_BIT | (Cmd & MAX_CMD_VALUE);

在GetCommandResponse函数中,添加

        case ResponseR1:               
        case ResponseR1b:
        case ResponseR7://增加的行
            *(respBuff    ) = (BYTE)(START_BIT | TRANSMISSION_BIT | pRequest->CommandCode);
            *(respBuff + 1) = (BYTE)(vm_pSDIReg->SDIRSP0      );
            *(respBuff + 2) = (BYTE)(vm_pSDIReg->SDIRSP0 >> 8 );
            *(respBuff + 3) = (BYTE)(vm_pSDIReg->SDIRSP0 >> 16);
            *(respBuff + 4) = (BYTE)(vm_pSDIReg->SDIRSP0 >> 24);
            *(respBuff + 5) = (BYTE)(END_RESERVED | END_BIT);

还需要修改那些?我已经在catalog中选中了 SD bus Driver(IMGSDBUS2)
点赞  2009-8-6 09:33
已经识别出来了  。
点赞  2009-8-7 12:51
怎么识别的啊?,改哪个函数啊?WINCE500下?
点赞  2009-11-24 17:15
引用: 引用 4 楼 zrz4066 的回复:
已经识别出来了 。

楼主怎么识别出来的啊????
点赞  2010-3-30 16:58
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复