harktrip
驱动小牛
驱动小牛
  • 注册日期2003-11-30
  • 最后登录2016-01-09
  • 粉丝1
  • 关注0
  • 积分51分
  • 威望457点
  • 贡献值0点
  • 好评度170点
  • 原创分0分
  • 专家分2分
阅读:1814回复:11

问个蠢问题,这个SDMMC驱动的注册表到底如何写?

楼主#
更多 发布于:2007-10-08 10:40
我把他改2440后,编译得到sdmmc_loader.dll 和 sdmmc.dll
这两个dll档,但照档案内的说明,那个注册表加入后,
或是远峰的注册表照打,都无法侦测到sd卡(连debugmessage都没有任何信息)

请问,cfw.c和armint.c都要跟着改吗? 我的sd卡中断是eint18

文档的注册表
/************************************************************************
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\SDMMC]
"Dll"="s2440mmc.dll"
"Prefix"="DSK"
"Order"=dword:2
"Class"=dword:01
"SubClass"=dword:80
"ProgIF"=dword:0
"DeviceID"=dword:1100
"VendorID"=dword:15b7
"Ioctl"=dword:4
"FSD"="fatfsd.dll"
"Profile"="SDMMC"

[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\SDMMC]
"Name"="SDMMC Disk Drive"
"Folder"="SDMMC"

[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\SDMMC\FATFS]
"EnableCacheWarm"=dword:0



远峰的注册表
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\sdmmc]
"Prefix"="SML"
"Dll"="SDMMC_Loader.dll"
"Order"=dword:2
"Ioctl"=dword:4
"FriendlyName"="SDCard/MMC Loader"

[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\SDMMC]
"Name"="SD/MMC Card"
"Folder"="SD/MMC Card"
附件名称/大小 下载次数 最后更新
SDMMC.zip (93KB)  12 2007-10-08 10:40
olitwo
驱动牛犊
驱动牛犊
  • 注册日期2007-09-25
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分90分
  • 威望10点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-10-08 11:14
sd卡中断应该用16,18不行的
harktrip
驱动小牛
驱动小牛
  • 注册日期2003-11-30
  • 最后登录2016-01-09
  • 粉丝1
  • 关注0
  • 积分51分
  • 威望457点
  • 贡献值0点
  • 好评度170点
  • 原创分0分
  • 专家分2分
板凳#
发布于:2007-10-08 13:09
都试过了,连个屁都没放~~唉
harktrip
驱动小牛
驱动小牛
  • 注册日期2003-11-30
  • 最后登录2016-01-09
  • 粉丝1
  • 关注0
  • 积分51分
  • 威望457点
  • 贡献值0点
  • 好评度170点
  • 原创分0分
  • 专家分2分
地板#
发布于:2007-10-08 13:57
SDMMC:DSK_Init ActiveKey=Drivers\Active\16
SDMMC_InitializeAddresses - Success

CMD0 Chk_CMDend:1.

In idle.

Initialize fail
No Card assertion.

CMD0 Chk_CMDend:1.

In idle.

Initialize fail
No Card assertion.
SDMMC_Identify
SDMMC:DSK_Open=00000001

-------------------------------
int Chk_SD_OCR(void)
{
int i,j;

for(i=0;i<10;i++)
{
CMD55(); //Make ACMD

v_pSDMMCregs->rSDICMDARG=0xff8000; //ACMD41(OCR:2.7V~3.6V)
v_pSDMMCregs->rSDICMDCON=(0x1<<9)|(0x1<<8)|0x69;//sht_resp, wait_resp, start, ACMD41



if(Chk_CMDend(41,1)& (v_pSDMMCregs->rSDIRSP0==0x80ff8000)) //OCR最高位为0表示正在POWER UP
{
return 1; //Success
}
for(j=0;j<500;j++); //Wait Card power up status
}
return 0; //Fail
}

目前是因为这最高位的问题....返回FAIL
harktrip
驱动小牛
驱动小牛
  • 注册日期2003-11-30
  • 最后登录2016-01-09
  • 粉丝1
  • 关注0
  • 积分51分
  • 威望457点
  • 贡献值0点
  • 好评度170点
  • 原创分0分
  • 专家分2分
地下室#
发布于:2007-10-09 09:24
ATAPI DLL_PROCESS_ATTACH
SDMMC:DSK_Init ActiveKey=Drivers\Active\16
SDMMC_InitializeAddresses - Success

CMD0 Chk_CMDend:1.

In idle.

In SD ready.

End id.

RCA=0xb368

In stand-by
mmc_card_init OK.
SDMMC_Identify


到这里就卡住了
snowolf_007
驱动牛犊
驱动牛犊
  • 注册日期2006-05-09
  • 最后登录2008-06-30
  • 粉丝0
  • 关注0
  • 积分350分
  • 威望40点
  • 贡献值0点
  • 好评度39点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2007-10-09 09:41
你都跟远峰的注册表对比了,没发现有本质的区别吗?
sdmmc_loader.dll 是用来监测sd卡插入的,然后加载sdmmc.dll。
所以sdmmc_loader.dll 要放在BuiltIn\SDMMC注册项中,而不是把sdmmc.dll放在这个注册项下。
harktrip
驱动小牛
驱动小牛
  • 注册日期2003-11-30
  • 最后登录2016-01-09
  • 粉丝1
  • 关注0
  • 积分51分
  • 威望457点
  • 贡献值0点
  • 好评度170点
  • 原创分0分
  • 专家分2分
6楼#
发布于:2007-10-09 11:43
恩恩恩...试试
harktrip
驱动小牛
驱动小牛
  • 注册日期2003-11-30
  • 最后登录2016-01-09
  • 粉丝1
  • 关注0
  • 积分51分
  • 威望457点
  • 贡献值0点
  • 好评度170点
  • 原创分0分
  • 专家分2分
7楼#
发布于:2007-10-09 14:46
//    v_pSDMMCregs->rSDIDATCON=(1<<19)|(1<<17)|(Wide<<16)|(2<<12)|(1<<0);
    v_pSDMMCregs->rSDIDATCON=(2<<22)|(1<<19)|(1<<17)|(Wide<<16)|(1<<14)|(2<<12)|(1<<0);

    v_pSDMMCregs->rSDICMDARG=addr;                    //CMD17/18(addr)

    RETAILMSG(1,(TEXT("GO Read mmc sector.\r\n")))

RERDCMD:
    v_pSDMMCregs->rSDICMDCON=(0x1<<9)|(0x1<<8)|0x51;    //sht_resp,wait_resp,dat,start,CMD17

    if(!Chk_CMDend(17,1))    //Check end of CMD17
        goto RERDCMD;

-----------------------------
死在這
harktrip
驱动小牛
驱动小牛
  • 注册日期2003-11-30
  • 最后登录2016-01-09
  • 粉丝1
  • 关注0
  • 积分51分
  • 威望457点
  • 贡献值0点
  • 好评度170点
  • 原创分0分
  • 专家分2分
8楼#
发布于:2007-10-10 11:18
储存管理器可以看到了,不过多大多小的卡一律判断512MB,且未配置
另外,开机后才把卡插入,是没有任何反应的
harktrip
驱动小牛
驱动小牛
  • 注册日期2003-11-30
  • 最后登录2016-01-09
  • 粉丝1
  • 关注0
  • 积分51分
  • 威望457点
  • 贡献值0点
  • 好评度170点
  • 原创分0分
  • 专家分2分
9楼#
发布于:2007-10-10 11:19
pDisk->PerformIoctl FALSE:0x4
这个讯息不知如何解决
zhuxiaofeng
驱动小牛
驱动小牛
  • 注册日期2007-04-06
  • 最后登录2010-04-15
  • 粉丝0
  • 关注0
  • 积分1013分
  • 威望243点
  • 贡献值0点
  • 好评度202点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2007-10-10 11:41
引用第8楼harktrip于2007-10-10 11:18发表的  :
储存管理器可以看到了,不过多大多小的卡一律判断512MB,且未配置
另外,开机后才把卡插入,是没有任何反应的

这个大小是你给的,可能给错了。看看程序。
开机后看看sdmmc_loader里面检测卡是否存在那个线程是否还在跑?
应该是在。
如果在的话,
就是中断的问题了。
卡插拔中断有问题。
这个好修改。
做一个出色的程序员!
harktrip
驱动小牛
驱动小牛
  • 注册日期2003-11-30
  • 最后登录2016-01-09
  • 粉丝1
  • 关注0
  • 积分51分
  • 威望457点
  • 贡献值0点
  • 好评度170点
  • 原创分0分
  • 专家分2分
11楼#
发布于:2007-10-11 12:39
盘符出现了,
不过内容是空的
游客

返回顶部