From d81be2e8fdff9a018fedc201d189b8798b62fcfe Mon Sep 17 00:00:00 2001 From: Meco Man <920369182@qq.com> Date: Mon, 10 May 2021 15:14:50 +0800 Subject: [bsp][stm32f407-explorer] fix a bug that cannot use fatfs in the main thread at starting up --- .../board/ports/drv_sdcard.c | 70 ++++++++++++++++++++++ .../board/ports/sdcard_port.c | 62 ------------------- 2 files changed, 70 insertions(+), 62 deletions(-) create mode 100644 bsp/stm32/stm32f407-atk-explorer/board/ports/drv_sdcard.c delete mode 100644 bsp/stm32/stm32f407-atk-explorer/board/ports/sdcard_port.c diff --git a/bsp/stm32/stm32f407-atk-explorer/board/ports/drv_sdcard.c b/bsp/stm32/stm32f407-atk-explorer/board/ports/drv_sdcard.c new file mode 100644 index 0000000000..4ad71158f4 --- /dev/null +++ b/bsp/stm32/stm32f407-atk-explorer/board/ports/drv_sdcard.c @@ -0,0 +1,70 @@ +/* + * Copyright (c) 2006-2021, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2018-12-13 balanceTWK add sdcard port file + * 2021-05-10 Meco Man fix a bug that cannot use fatfs in the main thread at starting up + */ + +#include + +#ifdef BSP_USING_SDCARD + +#include +#include +#include + +#define DBG_TAG "app.card" +#define DBG_LVL DBG_INFO +#include + +static void sd_mount(void *parameter) +{ + while (1) + { + rt_thread_mdelay(500); + if(rt_device_find("sd0") != RT_NULL) + { + if (dfs_mount("sd0", "/", "elm", 0, 0) == RT_EOK) + { + LOG_I("sd card mount to '/'"); + break; + } + else + { + LOG_W("sd card mount to '/' failed!"); + } + } + } +} + +static int onboard_sdcard_mount(void) +{ + rt_thread_t tid; + + if (dfs_mount("sd0", "/", "elm", 0, 0) == RT_EOK) + { + LOG_I("sd card mount to '/'"); + } + else + { + tid = rt_thread_create("sd_mount", sd_mount, RT_NULL, + 1024, RT_THREAD_PRIORITY_MAX - 2, 20); + if (tid != RT_NULL) + { + rt_thread_startup(tid); + } + else + { + LOG_E("create sd_mount thread err!"); + } + } + + return RT_EOK; +} +INIT_APP_EXPORT(onboard_sdcard_mount); + +#endif /* BSP_USING_SDCARD */ diff --git a/bsp/stm32/stm32f407-atk-explorer/board/ports/sdcard_port.c b/bsp/stm32/stm32f407-atk-explorer/board/ports/sdcard_port.c deleted file mode 100644 index bc7e8b676e..0000000000 --- a/bsp/stm32/stm32f407-atk-explorer/board/ports/sdcard_port.c +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Copyright (c) 2006-2021, RT-Thread Development Team - * - * SPDX-License-Identifier: Apache-2.0 - * - * Change Logs: - * Date Author Notes - * 2018-12-13 balanceTWK add sdcard port file - */ - -#include - -#ifdef BSP_USING_SDCARD - -#include -#include -#include - -#define DBG_TAG "app.card" -#define DBG_LVL DBG_INFO -#include - -void sd_mount(void *parameter) -{ - while (1) - { - rt_thread_mdelay(500); - if(rt_device_find("sd0") != RT_NULL) - { - if (dfs_mount("sd0", "/", "elm", 0, 0) == RT_EOK) - { - LOG_I("sd card mount to '/'"); - break; - } - else - { - LOG_W("sd card mount to '/' failed!"); - } - } - } -} - -int stm32_sdcard_mount(void) -{ - rt_thread_t tid; - - tid = rt_thread_create("sd_mount", sd_mount, RT_NULL, - 1024, RT_THREAD_PRIORITY_MAX - 2, 20); - if (tid != RT_NULL) - { - rt_thread_startup(tid); - } - else - { - LOG_E("create sd_mount thread err!"); - } - return RT_EOK; -} -INIT_APP_EXPORT(stm32_sdcard_mount); - -#endif /* BSP_USING_SDCARD */ - -- cgit v1.3.1