打印
[技术问答]

NUC472开发板的SD卡例程读取数据有奇怪现象,在家帮分析一下

[复制链接]
1491|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
bobde163|  楼主 | 2014-10-31 16:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
       这两天没有什么事,就搞起NUC472来了,这系列是有支持SD卡控制器的,在官方给的标准外设库中有一个SD_Fats的例程,试用了一下,发现系统初始化函数里还有一些不足的地方,他把复用的接口引脚设置对了,但是注释里不对,不认真看根本发现不了这个问题,这就不说了,希望官方给的代码能严谨一些。下面说说读取数据的问题吧
       读取SD卡里的数据是最终通过调用库函数SD_Read()实现的,且不说函数对各种情况的处理合不合理,也就只能算是在正常访问顺序下能够读出数据,因为感觉少了很多错误处理机制,一旦读取错误,在不调试的情况下,几乎不知道程序出了什么样的错误,不好意思,吐槽一下又给跑题了。
       现在有一个奇怪的问题,就是我一次读取107个字节以下的数据,都是能够正常读取出来的,一旦超过这个值(SD_Read()函数的参数里可以最高到2的32次方的数量)就读取错误,因为数据接收完成标志位DIEN(Data Input Enable Bit)不清0,所以程序一直停在循环检测数据接收是否完成,并且DMA状态寄存器的ABORTIF(DMA Read/Write Target Abort Interrupt Flag)标志位置了1,说明DMA总线错误,官方文档里没有说到出现这个错误要怎么处理或者原因是什么,大家能帮忙分析一下这是什么原因吗,调了一下午,都没有什么进展。



沙发
bobde163|  楼主 | 2014-11-1 20:04 | 只看该作者
大家有测试过SD模块的吗?

使用特权

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

本版积分规则

7

主题

309

帖子

1

粉丝