Przeglądaj źródła

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

Jay 1 rok temu
rodzic
commit
69ec7981c3

+ 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;
                 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;
     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_ADTC_EN (1 << 11)
 #define SDHI_CMD_DATA_DIR_READ (1 << 12)
 #define SDHI_CMD_DATA_DIR_READ (1 << 12)
 #define SDHI_BLK_TRANSFER (1 << 13)
 #define SDHI_BLK_TRANSFER (1 << 13)
+#define SDHI_BLK_NOT_AUTO_STOP (1 << 14)
 
 
 #define SDIO_MAX_FREQ 25000000
 #define SDIO_MAX_FREQ 25000000