Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 14 additions & 1 deletion bsp/renesas/ra8d1-vision-board/board/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,25 @@ menu "Hardware Drivers Config"
select RT_USING_MTD_NOR
select BSP_USING_ONCHIP_FLASH
default n
config BSP_USING_SDCARD_FS

menuconfig BSP_USING_SDCARD_FS
bool "Enable SDCARD filesystem"
select BSP_USING_SDHI
select BSP_USING_SDHI1
select RT_USING_DFS_ELMFAT
default n

if BSP_USING_SDCARD_FS

config SDHI_USING_CD
bool "enable RA_SDHI_CD_PIN"
default y

config RA_SDHI_CD_PIN
string "SD Card hot plug detection pin"
default "p503"
endif

config BSP_USING_SPICARD_FS
bool "Enable SPI FLASH filesystem"
select BSP_USING_SCI
Expand Down
3 changes: 0 additions & 3 deletions bsp/renesas/ra8d1-vision-board/board/SConscript
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
5 changes: 4 additions & 1 deletion bsp/renesas/ra8d1-vision-board/board/ports/SConscript
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
49 changes: 32 additions & 17 deletions bsp/renesas/ra8d1-vision-board/board/ports/mnt.c
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,14 @@
#ifdef BSP_USING_FS

#include <dfs_fs.h>
#include <rtdbg.h>

#define DBG_TAG "app.filesystem"
#define DBG_LVL DBG_INFO
#include <rtdbg.h>

#ifdef BSP_USING_OPENMV
#include "led.h"
#endif /* BSP_USING_OPENMV */

#ifdef BSP_USING_ONCHIP_FS
#include "fal.h"
Expand Down Expand Up @@ -47,10 +51,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)
{
Expand Down Expand Up @@ -92,39 +97,48 @@ 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();
}

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);
Expand All @@ -137,12 +151,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)
{
Expand All @@ -158,8 +172,9 @@ int sd_mount(void)

int mount_init(void)
{
rt_thread_mdelay(200);
sd_mount();
return RT_EOK;
}
// INIT_ENV_EXPORT(mount_init);
#endif
INIT_ENV_EXPORT(mount_init);
#endif