完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
我正在为基于 SDK 版本的 iMX6Q 编写裸机 uSDHC 驱动程序,但遇到读取问题(尚未尝试写入)。我可以向 SDHC 卡发送命令并得到正确的响应,因此发送命令不是问题。我相信设置读取的代码也是正确的,包括 adma2 的设置。我正在使用 CMD17(读取单块)尝试使用 Boundary Devices 的已知良好 OTS 板读取已知良好 (16GB) SDCARD 的 MBR(扇区 0)。我用值 0x5a 初始化读取缓冲区(512 字节)以检测读取的内容。这是我得到的(缓冲区从 0x104098a0 开始):
最后的 55 aa 是正确的,一些 00 字节也可能是正确的。由于没有字节是 0x5a,因此从某处读取了 512 个字节。 以下是数据应该是什么: 以下是发送命令之前的寄存器: 下面是读取后的寄存器(注意INT_STATUS已经被清除): 在我的设置中,我使用了三个 adma2 描述符。第一个覆盖从缓冲区的开始直到第一个缓存行的开始。读取的数据被读入一个单独的未缓存缓冲区(在 DRAM 中),然后复制到实际缓冲区中。第二个用于读取其余数据直至最后一个完整的 32 字节(最后一个完整缓存行)。该数据被读入物理内存,然后虚拟内存失效,迫使缓存重新加载。第三个描述符用于读取剩余的任何内容,其作用与第一个描述符相同。 adma2 描述符在本例中设置(在未缓存的 DRAM 中),缓冲区在缓存行上启动,因此仅使用两个描述符(不需要第三个)。似乎没有任何描述符错误 (AMDA_ERR_STATUS = 0),使用的 2 个描述符的地址是 0x184000C0 和 0x184000C8。ADMA_SYS_ADDR reg 显示 0x184000D0,这表明所使用的 2 个描述符已被执行。INT_STATUS reg 中没有报告错误。 它出现某种计时问题或数据未准备好,卡可以足够快地发送数据 (@25MHz)。CIHB 和 CDIHB 都被选中,如您在附加代码中所见。 有什么想法可以从哪里开始寻找有关数据为何不正确的错误? |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
2137个成员聚集在这个小组
加入小组我的项目我做主,使用GN+Ninja来完成构建系统(VSCode开发RT106X)
37398 浏览 0 评论
NXP IMX8应用处理器快速入门必备:技巧、使用、设计指南
6792 浏览 1 评论
7815 浏览 1 评论
7662 浏览 0 评论
NXP i.MX6UL开发板(linux系统烧录+规格+硬件+模块移植)使用手册
5085 浏览 0 评论
1577浏览 2评论
关于NINA-W132 Wi-Fi模块SPI通信遇到的疑问求解
1220浏览 2评论
如何在MPC PowerPC MCU上首次刷写后禁用BDM?
763浏览 1评论
将HFREFR和LFREFR寄存器值设置为错误的值来将故障注入CMU,但CMU_ISR值始终为零,为什么?
751浏览 1评论
将SPSDK for FRDM-MCX-W71 SDK与VS一起安装时出现hidapi构建错误怎么解决?
694浏览 1评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-9 22:11 , Processed in 0.548988 second(s), Total 70, Slave 53 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1270