summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCXSforHPU <[email protected]>2025-03-07 21:33:44 +0800
committerRbb666 <[email protected]>2025-03-10 13:05:10 +0800
commitd34981f81ddd6c42977b95a97eb6ed68cbe38f0e (patch)
tree52935ffe16d0a76ed7fdaed21de3266f14371642
parent9333ed7856b77a5af34f9091c48cc13de9f1cedb (diff)
[bsp/renesas/vision_board] Fix the sdio mount
-rw-r--r--bsp/renesas/ra8d1-vision-board/board/SConscript3
-rw-r--r--bsp/renesas/ra8d1-vision-board/board/ports/SConscript5
-rw-r--r--bsp/renesas/ra8d1-vision-board/board/ports/mnt.c55
3 files changed, 43 insertions, 20 deletions
diff --git a/bsp/renesas/ra8d1-vision-board/board/SConscript b/bsp/renesas/ra8d1-vision-board/board/SConscript
index 59c56a1442..b25953601a 100644
--- a/bsp/renesas/ra8d1-vision-board/board/SConscript
+++ b/bsp/renesas/ra8d1-vision-board/board/SConscript
@@ -7,9 +7,6 @@ list = os.listdir(cwd)
CPPPATH = [cwd]
src = Glob('*.c')
-if GetDepend(['BSP_USING_FS']):
- src += Glob('ports/mnt.c')
-
CPPDEFINES = ['BSP_CFG_RTOS = 2']
objs = DefineGroup('Drivers', src, depend = [''], CPPPATH = CPPPATH, CPPDEFINES=CPPDEFINES)
diff --git a/bsp/renesas/ra8d1-vision-board/board/ports/SConscript b/bsp/renesas/ra8d1-vision-board/board/ports/SConscript
index e8ac9ae59e..2cb6a23eed 100644
--- a/bsp/renesas/ra8d1-vision-board/board/ports/SConscript
+++ b/bsp/renesas/ra8d1-vision-board/board/ports/SConscript
@@ -2,10 +2,13 @@ import os
from building import *
objs = []
-src = Glob('*.c')
+src = ["drv_sdram.c"]
cwd = GetCurrentDir()
CPPPATH = [cwd]
+if GetDepend(['BSP_USING_FS']):
+ src += ['mnt.c']
+
objs = DefineGroup('Drivers', src, depend = [''], CPPPATH = CPPPATH)
list = os.listdir(cwd)
diff --git a/bsp/renesas/ra8d1-vision-board/board/ports/mnt.c b/bsp/renesas/ra8d1-vision-board/board/ports/mnt.c
index c228415702..4768e3173c 100644
--- a/bsp/renesas/ra8d1-vision-board/board/ports/mnt.c
+++ b/bsp/renesas/ra8d1-vision-board/board/ports/mnt.c
@@ -9,6 +9,13 @@
#define DBG_LVL DBG_INFO
#include <rtdbg.h>
+#define SDHI_USING_CD
+#define RA_SDHI_CD_PIN "p503"
+
+#ifdef BSP_USING_OPENMV
+#include "led.h"
+#endif /* BSP_USING_OPENMV */
+
#ifdef BSP_USING_ONCHIP_FS
#include "fal.h"
#define FS_PARTITION_NAME "disk"
@@ -47,10 +54,11 @@ static void sd_mount(void)
#elif defined(BSP_USING_SDCARD_FS)
#include <drv_sdhi.h>
+#ifdef SDHI_USING_CD
/* SD Card hot plug detection pin */
-#define SD_CHECK_PIN "p405"
-
+#define SD_CHECK_PIN RA_SDHI_CD_PIN
static rt_base_t sd_check_pin = 0;
+#endif
static void _sdcard_mount(void)
{
@@ -92,10 +100,11 @@ static void _sdcard_unmount(void)
static void sd_auto_mount(void *parameter)
{
- rt_uint8_t re_sd_check_pin = 1;
- rt_thread_mdelay(20);
+ rt_uint8_t re_sd_check_pin = 0;
+ rt_thread_mdelay(500);
- if (!rt_pin_read(sd_check_pin))
+#ifdef SDHI_USING_CD
+ if (re_sd_check_pin = rt_pin_read(sd_check_pin))
{
_sdcard_mount();
}
@@ -103,28 +112,36 @@ static void sd_auto_mount(void *parameter)
while (1)
{
rt_thread_mdelay(200);
-
- if (re_sd_check_pin && (re_sd_check_pin = rt_pin_read(sd_check_pin)) == 0)
+ if (!re_sd_check_pin && (re_sd_check_pin = rt_pin_read(sd_check_pin)) != 0)
{
+#ifdef BSP_USING_OPENMV
+ led_state(LED_RED, 1);
+#endif /* BSP_USING_OPENMV */
_sdcard_mount();
+#ifdef BSP_USING_OPENMV
+ led_state(LED_RED, 0);
+#endif /* BSP_USING_OPENMV */
}
- if (!re_sd_check_pin && (re_sd_check_pin = rt_pin_read(sd_check_pin)) != 0)
+ if (re_sd_check_pin && (re_sd_check_pin = rt_pin_read(sd_check_pin)) == 0)
{
_sdcard_unmount();
}
}
+#else
+ _sdcard_mount();
+#endif /* SDHI_USING_CD */
}
static void sd_mount(void)
{
rt_thread_t tid;
-
+#ifdef SDHI_USING_CD
sd_check_pin = rt_pin_get(SD_CHECK_PIN);
rt_pin_mode(sd_check_pin, PIN_MODE_INPUT_PULLUP);
-
+#endif /* SDHI_USING_CD */
tid = rt_thread_create("sd_mount", sd_auto_mount, RT_NULL,
- 2048, RT_THREAD_PRIORITY_MAX - 2, 20);
+ 2048, RT_THREAD_PRIORITY_MAX - 12, 20);
if (tid != RT_NULL)
{
rt_thread_startup(tid);
@@ -137,12 +154,12 @@ static void sd_mount(void)
}
#else
-#include <dev_spi_msd.h>
-#include "drv_sci.h"
+#include <spi_msd.h>
+#include "drv_sci_spi.h"
int sd_mount(void)
{
uint32_t cs_pin = BSP_IO_PORT_10_PIN_05;
- rt_hw_sci_spi_device_attach("sci2s", "scpi20", cs_pin);
+ rt_hw_sci_spi_device_attach("scpi2", "scpi20", cs_pin);
msd_init("sd0", "scpi20");
if (dfs_mount("sd0", "/", "elm", 0, 0) == 0)
{
@@ -158,8 +175,14 @@ int sd_mount(void)
int mount_init(void)
{
+ mmcsd_wait_cd_changed(0);
+
+ sdcard_change();
+ mmcsd_wait_cd_changed(RT_WAITING_FOREVER);
+
+ rt_thread_mdelay(200);
sd_mount();
return RT_EOK;
}
-// INIT_ENV_EXPORT(mount_init);
-#endif
+INIT_ENV_EXPORT(mount_init);
+#endif \ No newline at end of file