智能车制作

标题: 关于LPLD SDHC DMA方式的一个问题 [打印本页]

作者: hanqbww    时间: 2013-4-1 12:29
标题: 关于LPLD SDHC DMA方式的一个问题
先感谢一下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这个函数。望有人能帮我解决这个问题。




作者: 缘与缘    时间: 2013-4-11 18:06
弄好了么?SDHC多块读写可以了?

作者: hanqbww    时间: 2013-4-11 23:31
SDHC DMA 方式下多块读写没问题的  速度没测过
作者: 牛牛爱向阳    时间: 2013-6-25 22:25
顶 ········· LPLD




欢迎光临 智能车制作 (http://111.231.132.190/) Powered by Discuz! X3.2