瀏覽代碼

[bsp][renesas] 修复SDHI尝试多块读取时只能读取到第一个块的问题 (#7737)

Jay 1 年之前
父節點
當前提交
69ec7981c3
共有 2 個文件被更改,包括 6 次插入0 次删除
  1. 5 0
      bsp/renesas/libraries/HAL_Drivers/drv_sdhi.c
  2. 1 0
      bsp/renesas/libraries/HAL_Drivers/drv_sdhi.h

+ 5 - 0
bsp/renesas/libraries/HAL_Drivers/drv_sdhi.c

@@ -94,6 +94,11 @@ rt_err_t command_send(sdhi_instance_ctrl_t *p_ctrl, struct rt_mmcsd_cmd *cmd)
                 cmd->cmd_code |= SDHI_CMD_DATA_DIR_READ;
             }
         }
+        if (data->blks > 1)
+        {
+            cmd->cmd_code |= SDHI_BLK_TRANSFER;
+            cmd->cmd_code |= SDHI_BLK_NOT_AUTO_STOP;
+        }
     }
     p_ctrl->p_reg->SD_CMD = cmd->cmd_code;
 

+ 1 - 0
bsp/renesas/libraries/HAL_Drivers/drv_sdhi.h

@@ -44,6 +44,7 @@
 #define SDHI_CMD_ADTC_EN (1 << 11)
 #define SDHI_CMD_DATA_DIR_READ (1 << 12)
 #define SDHI_BLK_TRANSFER (1 << 13)
+#define SDHI_BLK_NOT_AUTO_STOP (1 << 14)
 
 #define SDIO_MAX_FREQ 25000000