阅读:2000回复:14
请zhuxiaofeng 老兄进来一下。
还是SD驱动的问题!
读0block时失败了。 这是我现在的调试信息 SDMemory: +DllEntry++++++DLL_PROCESS_ATTACH SDMemory: +SMC_Init SDMemory: +GetStorageID SDMemory: GetStorageID Insufficient buffer space SDMemory: -GetStorageID SDMemory: +GetStorageID SDMemory: -GetStorageID SDMemory: +SDMemRead SDMemRead: Reading blocks 0-0 SDMemReadMultiple: Reading blocks 0-0 SDMemDoBusRequest: CMD17 Arg 0x00000000 TransferClass 0 NumBlocks 1 BlockSize 512 BusRequestHandler starts (CMD:17).pRequest->TransferClass=0. SDHCD: Clock started... SendCommand (0x00044910, 0x0011, 0x00000000, 0x0001, 0x1) starts sendSDICommand short response required GetCommandResponse started GetCommandResponse returned SD_API_STATUS_SUCCESS SDHCD:BusRequestHandler ends TransferIstThread(): Wait Failed! SDHCD: Clock stopped 2 SDHCD: Clock stopped... BusRequestHandler starts (CMD:17).pRequest->TransferClass=0. SDHCD: Clock started... SendCommand (0x00044910, 0x0011, 0x00000000, 0x0001, 0x1) starts sendSDICommand short response required SDHCD:BusRequestHandler ends GetCommandResponse started GetCommandResponse returned SD_API_STATUS_SUCCESS TransferIstThread(): Wait Failed! SDHCD: Clock stopped 2 SDHCD: Clock stopped... BusRequestHandler starts (CMD:17).pRequest->TransferClass=0. SDHCD: Clock started... SendCommand (0x00044910, 0x0011, 0x00000000, 0x0001, 0x1) starts sendSDICommand short response required SDHCD:BusRequestHandler ends GetCommandResponse started GetCommandResponse returned SD_API_STATUS_SUCCESS TransferIstThread(): Wait Failed! SDHCD: Clock stopped 2 SDHCD: Clock stopped... BusRequestHandler starts (CMD:17).pRequest->TransferClass=0. SDHCD: Clock started... SendCommand (0x00044910, 0x0011, 0x00000000, 0x0001, 0x1) starts sendSDICommand short response required SDHCD:BusRequestHandler ends GetCommandResponse started GetCommandResponse returned SD_API_STATUS_SUCCESS TransferIstThread(): Wait Failed! SDHCD: Clock stopped 2 SDHCD: Clock stopped... SDMemDoBusRequest Failed: CMD17 returned API status 0xC0000015 SDMemory: -SDMemRead BusRequestHandler starts (CMD:7).pRequest->TransferClass=2. SDHCD: Clock started... SendCommand (0x00044910, 0x0007, 0x00000000, 0x0000, 0x0) starts SendCommand no response required SDHCD: Clock stopped 2 SDHCD: Clock stopped... SDHCD:BusRequestHandler ends BusRequestHandler starts (CMD:13).pRequest->TransferClass=2. SDHCD: Clock started... SendCommand (0x00044910, 0x000d, 0x00020000, 0x0001, 0x0) starts sendSDICommand short response required GetCommandResponse started GetCommandResponse returned SD_API_STATUS_SUCCESS SDHCD: Clock stopped 2 SDHCD: Clock stopped... SDHCD:BusRequestHandler ends |
|
|
沙发#
发布于:2007-07-09 18:32
你更新了没有??
2007---5月份的更新。。 SDMemory: +GetStorageID SDMemory: GetStorageID Insufficient buffer space 这这个函数里面微软又加了一句话。。 详细的见www.cnemb.com中有关这个主题的讨论吧。 |
|
|
板凳#
发布于:2007-07-09 18:37
|
|
|
地板#
发布于:2007-07-09 18:39
还有看看你的DMA中断寄存器,
好像是中断没有产生。 TransferIstThread(): Wait Failed! 在这时候看看相关的数据传输的寄存器。 |
|
|
地下室#
发布于:2007-07-10 14:44
感谢!
果然是DMA没有产生中断。 现在存储管理里面已经可以看到SD卡了。而且可以格式化,新建分区,不能mount上去。 所以在windows目录下还是没有盘符。 |
|
|
5楼#
发布于:2007-07-10 14:59
那剩下的应该是注册表的问题了
|
|
6楼#
发布于:2007-07-10 15:01
我以前也遇到过重问题,
能在存储器里面看见,但是没有盘符。 主要还是读写有问题, 仔细看看读写的情况,如果正确的话,就会出现了。。 |
|
|
7楼#
发布于:2007-07-10 17:31
sdbus和sdmemory的注册表就是默认的没有改。应该也不用改吧。
读写有问题怎么还可以格式化呢? 请问zhuxiaofeng,你当时是怎么改的呢。可不可以提供一下代码?这驱动搞了我快三周了。快晕死了。 |
|
|
8楼#
发布于:2007-07-10 18:18
你用的什么的板子?
平台什么的? 我的提供给你也没用,我们是自己的板子, 寄存器什么都不一样。 |
|
|
9楼#
发布于:2007-07-10 18:39
sdbus和sdmemory的注册表这些都不用改。
因为你的DMA 中断都没有产生,所以数据都没传输。 所以读写肯定有问题了。 正常的话,DMA中断是肯定要产生的。 这句话TransferIstThread(): Wait Failed!不应该出现的。 好好看看寄存器的值吧! |
|
|
10楼#
发布于:2007-07-10 19:13
我用的是2440,硬件上应该不会有太大差别。
DMA已经可以产生中断了。不过现在还不能确定数据传输是否正确了。 |
|
|
11楼#
发布于:2007-07-10 20:03
差别很大的,呵呵,我们是自己的板子。
自己控制器。和samsung的差别很大的。 用CETK测试一下就知道。 它有专门的测试项。 呵呵。。 |
|
|
12楼#
发布于:2007-07-11 11:00
看来真是数据传输有问题了。
我把m_pDMABuffer的值打印出来居然为NULL。 但是DMA中断设为传输完产生,即从MMCFIFO传送到m_pDMABuffer, 中断产生了,即便是数据传错了也不应该为NULL啊。不解。 |
|
|
13楼#
发布于:2007-07-11 21:32
DMA中断是数据传输后自动产生的,
不是你设置什么时候产生就产生的吧? 看看传之前的BUffur, 在看看DMA的物理地址的数据。 我的更奇怪,在DEBUG下面没事, 现在 Release的时候不能用了。 以前一直没有release过,呵呵,在调试中,。。。 |
|
|
14楼#
发布于:2007-07-17 11:11
Re:请进来一下。
问题找到了。真是物理地址有问题,申请地址的时候写错了。现在SD驱动已经基本上OK了,速度也还可以。打了补丁,也不知道是不是真的支持SD2.0了,下次去弄一张大点的卡试下了。感谢zhuxiaofeng 老兄的一路关注和提示。 |
|
|