打印

关于SDIO和其他中断冲突的问题

[复制链接]
3904|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xxx7597|  楼主 | 2011-4-14 10:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用的sdcard.c的库 发现在读操作的时候,如果在等待sd卡数据返回的时候 如果其他中断发生的话   有时会产生硬件错误中断(HardFault_Handler)。
其中sdcard.c中会产生错误代码的部分为
SD_Error SD_ReadBlock(uint32_t addr, uint32_t *readbuff, uint16_t BlockSize)的
SDIO_ITConfig(SDIO_IT_DCRCFAIL | SDIO_IT_DTIMEOUT | SDIO_IT_DATAEND | SDIO_IT_RXOVERR | SDIO_IT_RXFIFOHF | SDIO_IT_STBITERR, ENABLE);

    while ((TransferEnd == 0) && (TransferError == SD_OK))/*在此等待的时候 会发生错误 其他方式亦然 */
    {
    ;
    }

    if (TransferError != SD_OK)
    {
     return(TransferError);
    }


此时其他任务又不能关闭,比如系统滴答的任务,这个怎么解决
沙发
passage110| | 2011-8-11 11:18 | 只看该作者
通病 不能在标志位上设置断点

使用特权

评论回复
板凳
byeyear| | 2011-8-11 16:44 | 只看该作者
我经常把断点打在标志位上 从没出过Fault (iar+jlink v8)
分析一下HardFault后的堆栈结构 (从sp指针开始依次是r0, r1, r2, r3, r12, lr, pc)
找到进Fault之前的代码 或许有线索

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

14

帖子

0

粉丝