TI论坛
直播中

王荣

7年用户 158经验值
私信 关注

请问为什么AM3352 SD卡 mmcblk0: retrying using single block read导致系统卡死?

本帖最后由 一只耳朵怪 于 2018-6-21 09:00 编辑

开发过程中发现,人为割断data[3]模拟sd卡接触不良现象,导致系统卡死。
log中会出现mmcblk0: retrying using single block read语句。
我尝试在sd初始化阶段规避这个问题,方法如下
设置sd卡4线操作后,使用ACMD13命令再次读取sd状态寄存器,发现仍然卡死。
mmc_wait_for_req
   -> __mmc_start_req
   -> mmc_wait_for_req_done
SD卡中断有触发,但是死在了mmc_wait_for_req_done中,且mmc_wait_for_req_done 中的 wait_for_completion_timeout函数都没有执行。
请帮忙分析一下。

回帖(2)

王荣

2018-6-21 05:05:26
问题已经解决
系统卡死实际上是一直触发setup_dma_interrupt,原因是没有清空中断标志位。

红框中的if语句无法进入,无法清空中断标志位
而if语句无法进入的主要原因在于
1 举报
  • 傻瓜猫虫: 麻烦问下这个回答后面部分吗?这里显示不完整,这种问题怎么处理了?现在我碰到同样的问题了

余少虹

2018-6-21 05:15:40
引用: KPOD 发表于 2018-6-21 05:05
问题已经解决
系统卡死实际上是一直触发setup_dma_interrupt,原因是没有清空中断标志位。

感谢分享!
举报

更多回帖

发帖
×
20
完善资料,
赚取积分