完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
当尝试读取/写入连接的 eMMC 设备时,eMMC 驱动程序有时会因错误而失败。以这种方式失败后,每次调用 HAL_MMC_ReadBlocks 或 HAL_MMC_WriteBlocks 都会失败,直到微控制器重新启动。
如果一系列读取中的第一个调用成功,则所有后续调用都将毫无问题地完成*除非*以下调用是针对 eMMC 内存中的非顺序部分,在这种情况下,它们可能会失败。 我发现的部分解决方法是在每次调用 eMMC 内存之前调用 HAL_Delay,但这并不总是有效。 同样,在调试模式下运行并缓慢地完成整个过程将始终有效。然后following calls高速运行没有问题。 HAL_MMC_GetCardState 函数总是返回一个 4 - HAL_MMC_CARD_TRANSFER。如果我在拨打电话之前尝试等待卡状态变为 HAL_MMC_CARD_READY,它将无限期停止。 我的假设是 STM32l5xx_hal_mmc 驱动程序没有正确读取 eMMC 卡状态。因此在尝试发送/接收数据之前没有正确等待 eMMC 内存准备好传输。 因为我使用的卡有一个小处理器并优化了顺序块的速度,所以我可能只看到非顺序问题,因为它们需要更长的时间,而且卡还没有为新命令做好准备. 我找不到关于此问题的任何文档,将不胜感激任何帮助。 |
|
相关推荐
1个回答
|
|
软件驱动程序变得可疑,因为问题是定期引起的,但只在第一次调用时发生(所有未来的调用都可以正常工作),并且驱动程序没有正确维护状态,这似乎排除了信号完整性问题。但事实证明错误是缺少引脚上拉。
|
|
|
|
只有小组成员才能发言,加入小组>>
请教:在使用UDE STK时,单片机使用SPC560D30L1,在配置文件怎么设置或选择?里面只有SPC560D40的选项
2642 浏览 1 评论
3208 浏览 1 评论
请问是否有通过UART连接的两个微处理器之间实现双向值交换的方法?
1783 浏览 1 评论
3611 浏览 6 评论
5989 浏览 21 评论
939浏览 4评论
1316浏览 4评论
在Linux上安装Atollic TRUEStudio的步骤有哪些呢?
584浏览 3评论
使用DMA激活某些外设会以导致外设无法工作的方式生成代码是怎么回事
1303浏览 3评论
1361浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-24 17:55 , Processed in 1.205100 second(s), Total 78, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号