2775|0

85

帖子

0

TA的资源

一粒金砂(初级)

楼主
 
贴一段代码出来,对上面的6,7,12,28...等数字不理解,请大家帮忙解释下.谢谢
int IssueCommand_CH0( U16 uCmd, U32 uArg, U32 uIsAcmd)
{
        U32 uSfr;

        while ((rHM0_PRNSTS&0x1)); // Check CommandInhibit_CMD

        if (!uIsAcmd)//R1b type commands have to check CommandInhibit_DAT bit
        {
                if((uCmd==6&&ThisIsMmc_ch0)||uCmd==7||uCmd==12||uCmd==28||uCmd==29||uCmd==38||((uCmd==42||uCmd==56)&&(!ThisIsMmc_ch0)))
                {
                        do        {
                                uSfr = rHM0_PRNSTS;
                        } while((uSfr&0x2)); // Check CommandInhibit_DAT
                }
        }
        // Argument Setting
        if (!uIsAcmd)// <------------------- Normal Command (CMD)
        {
                if(uCmd==3||uCmd==4||uCmd==7||uCmd==9||uCmd==10||uCmd==13||uCmd==15||uCmd==55)
                        rHM0_ARGUMENT = uArg<<16;
                else
                        rHM0_ARGUMENT = uArg;
        }
        else// <--------------------------- APP.Commnad (ACMD)
                rHM0_ARGUMENT = uArg;

        SetCommandReg_CH0(uCmd,uIsAcmd);

        if (!WaitForCommandComplete_CH0())
                {
                        printf(("Command NOT Complete\n"));
                }
        else
                ClearCommandCompleteStatus_CH0();       

        if (!(rHM0_NORINTSTS&0x8000))
        {
                if(((rHM0_CMDREG>>8) == 0x8) &&(ThisIsMmc_ch0 !=1))
                        {
                        printf("\nCMD8 Support");
                        SDSpecVer_ch0 = 2;
                        }
                return 1;
        }
        else
        {
                if(OCRcheck_ch0 == 1)
                        return 0;
                else
                        {
                        printf("Command = %d, Error Stat = %x\n",(rHM0_CMDREG>>8),rHM0_ERRINTSTS);
                        rHM0_ERRINTSTS = rHM0_ERRINTSTS;
                        rHM0_NORINTSTS =rHM0_NORINTSTS;
                        if((rHM0_CMDREG>>8) == 0x8)
                                {
                                printf("\nThis Card version is NOT SD 2.0\n");
                                }
                        return 0;                                                               
                        }
        }

}
点赞 关注

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表