3988|12

67

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

armsys2410 大容量sd卡驱动开发 (再续)-----dma传输线程失败的问题 [复制链接]


通过串口打印的信息:
。。。。。
CSDIOControllerBase::Set_SDI_Bus_Width_4Bit
CSDIOControllerBase::SetClockRate - Clock rate set to 12687500 Hz

。。。。。。。。。。。。。。。

CSDIOControllerBase::BusRequestHandler BusRequestHandler starts (CMD:17)(发送命令17)
CSDIOControllerBase::Start_SDI_Clock SDHCD: Clock started...
in CSDIOControllerBase::SetupDmaXfer
CSDIOControllerBase::Stop_SDIO_DMA_Channel(停止dma通道)
CSDIOControllerBase::Get_SDI_Bus_Width(获得宽度为4)
CSDIOControllerBase::SendCommand SendCommand (0x00442800, 0x0011, 0x00000000, 0x0001, 0x1) starts
CSDIOControllerBase::SendCommand sendSDICommand short response6 required
CSDIOControllerBase::BusRequestHandler SDHCD:BusRequestHandler ends
CSDIOControllerBase::GetCommandResponse --GetCommandResponse started
CSDIOControllerBase::GetCommandResponse --GetCommandResponse returned SD_API_STATUS_SUCCESS(命令17的响应好像没错阿)
CSDIOControllerBase::Enable_SDIO_DMA_Channel
CSDIOControllerBase::Get_SDI_Bus_Width
63CSDIOControllerBase::TransferIstThread : Wait Failed!(为什么dma传输线程失败呢)
CSDIOControllerBase::Stop_SDIO_DMA_Channel
CSDIOControllerBase::Is_SDIO_Interrupt_Enabled
125CSDIOControllerBase::SDIO_Interrupt_Disable(是不是有sd卡插入,sd中断就关闭)
CSDIOControllerBase::Stop_SDI_Clock SDHCD: Clock stopped...
此帖出自ARM技术论坛

最新回复

路过  详情 回复 发表于 2009-12-26 17:20
点赞 关注
 

回复
举报

70

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
使用的是微软的2007年4月份针对sdhc更新的源代码,
另有几个疑惑
1 CSDIOControllerBase是专门针对于sdio卡的驱动吗?
2 如果不是,而是可以兼容各种sd卡的驱动,那么在我的bsp中有这么3个系统中断
#define SYSINTR_SDMMC_CARD_DETECT   (SYSINTR_FIRMWARE+15) 用于发觉sd卡的中断,实际中断号18在armint.c中定义并将中断与逻辑中断关联

  #define SYSINTR_SDMMC   (SYSINTR_FIRMWARE+14) 实际中断号21在armint.c中定义并将中断与逻辑中断关联
  #define SYSINTR_SDMMC_SDIO_INTERRUPT    (SYSINTR_FIRMWARE+16) 实际中断号21在armint.c中定义并将中断与逻辑中断关联,但是这两个中断对应的系统中断不一样

而CSDIOControllerBase中要输入一个sdio中断,我该输入哪一个?
我现在用的就是金士顿4G sd卡,他应该属于哪个中断??
此帖出自ARM技术论坛
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
up
此帖出自ARM技术论坛
 
 
 

回复

85

帖子

0

TA的资源

一粒金砂(初级)

4
 
搞过1g的CF.
1.的话可以肯定不是的。
2.不敢确定,但感觉是SYSINTR_SDMMC_SDIO_INTERRUPT这个。
此帖出自ARM技术论坛
 
 
 

回复

59

帖子

0

TA的资源

一粒金砂(初级)

5
 
我在编以后的文件夹看见了sdbus2.dll,这个与sdbus.dll有什么区别
此帖出自ARM技术论坛
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

6
 
up
此帖出自ARM技术论坛
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

7
 
老兄,你的这个都续了好几回了吧。呵呵。
此帖出自ARM技术论坛
 
 
 

回复

48

帖子

0

TA的资源

一粒金砂(初级)

8
 
呵呵,问题老是解决不了。
明天还要请你多多指教
此帖出自ARM技术论坛
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

9
 
你如果使用的是Memory卡的话不用去理会那个SDIO的中断。
存储卡使用的是Detect中断和DMA中断。
那个SDIO中断只是在使用SDIO卡时才会使用到。
此帖出自ARM技术论坛
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

10
 
dma线程最后是等待超时了,才返回失败。也就是说dma事件没发生--意味着dma系统中断没有。于是我分析要不就是dma0中断与系统中断dma0没关联上,要不就是dma0中断本身没发生。从初始化sd卡的信息可以看到:

::: SYSINTR_DMA0   OEMInterruptDisable说明dma0中断给禁用了。我不明白为什么一初始化时就给它禁了????????????
此帖出自ARM技术论坛
 
 
 

回复

56

帖子

0

TA的资源

一粒金砂(初级)

11
 
你就看这两个中断:
#define SYSINTR_SDMMC_CARD_DETECT  (SYSINTR_FIRMWARE+15) 用于发觉sd卡的中断,实际中断号18在armint.c中定义并将中断与逻辑中断关联

  #define SYSINTR_SDMMC  (SYSINTR_FIRMWARE+14) 实际中断号21在armint.c中定义并将中断与逻辑中断关联
此帖出自ARM技术论坛
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

12
 
问题解决了,感谢gsymichael ,谢谢你!!!!!!!!!!!!
我一直以为 SYSINTR_SDMMC  是没用的,而用的是 #define SYSINTR_SDMMC_SDIO_INTERRUPT    (SYSINTR_FIRMWARE+16)

哈哈,大哥,我太兴奋了!!!虽然有点幼稚,而且这对于你来所太过于小儿科,可是只是我第一次接触驱动,过程很痛苦也很美妙。万分感谢!!!!
此帖出自ARM技术论坛
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

13
 
路过
此帖出自ARM技术论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
【有奖直播】2025是德科技数字月-数字新品来助阵
直播时间:3月19日(周三)14:00
直播奖励:小米口红充电宝、倍思充电线、是德科技十周年鼠标垫

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

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

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

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

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