智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 1662|回复: 3
打印 上一主题 下一主题

关于LPLD SDHC DMA方式的一个问题

[复制链接]

2

主题

56

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
3891
威望
1771
贡献
1456
兑换币
890
注册时间
2009-6-25
在线时间
332 小时
跳转到指定楼层
1#
发表于 2013-4-1 12:29:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
先感谢一下LPLD,用他的库是因为我喜欢他的那中表达方式,龙丘和野火的我看的很累 哈哈。在用LPLD的库函数的时候调试的时候,我是用的是DMA方式,我个人觉得里面的CMD_do 这个子函数有点问题,问题在这一块
// 获取响应
  if (SDHC_IRQSTAT & SDHC_IRQSTAT_CTOE_MASK)
  {
    SDHC_IRQSTAT |= SDHC_IRQSTAT_CTOE_MASK | SDHC_IRQSTAT_CC_MASK;
    return RES_NONRSPNS;
  }
  
  SDHC_IRQSTAT |= SDHC_IRQSTAT_CC_MASK;

调试的时候会发现IRQSTAT在执行SDHC_IRQSTAT |= SDHC_IRQSTAT_CC_MASK;后为0;
经过一段观察,修改为
  
  if (SDHC_IRQSTAT & SDHC_IRQSTAT_CTOE_MASK)
  {
    SDHC_IRQSTAT |= SDHC_IRQSTAT_CTOE_MASK | SDHC_IRQSTAT_CC_MASK;
    return RES_NONRSPNS;
  }
  
  if ((xfertyp & SDHC_XFERTYP_RSPTYP_MASK) != SDHC_XFERTYP_RSPTYP(0))
    {
        (void)SDHC_CMDRSP(0);
    }
SDHC_IRQSTAT |= SDHC_IRQSTAT_CC_MASK;
SDHC_IRQSTAT中的值会正确显示。我也不清楚为什么加了红色文字这块就能解决这个问题,并能正确执行waitstatus这个函数。望有人能帮我解决这个问题。



8

主题

61

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1181
威望
586
贡献
267
兑换币
237
注册时间
2012-9-6
在线时间
164 小时
毕业学校
重庆交通大学
2#
发表于 2013-4-11 18:06:34 | 只看该作者
弄好了么?SDHC多块读写可以了?
回复 支持 反对

使用道具 举报

2

主题

56

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
3891
威望
1771
贡献
1456
兑换币
890
注册时间
2009-6-25
在线时间
332 小时
3#
 楼主| 发表于 2013-4-11 23:31:41 | 只看该作者
SDHC DMA 方式下多块读写没问题的  速度没测过
回复 支持 反对

使用道具 举报

5

主题

49

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
429
QQ
威望
215
贡献
108
兑换币
139
注册时间
2013-3-17
在线时间
53 小时
4#
发表于 2013-6-25 22:25:25 | 只看该作者
顶 ········· LPLD
回复 支持 反对

使用道具 举报

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

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-12-27 00:58 , Processed in 0.045957 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表