diff --git a/bsp/stm32/stm32f407-atk-explorer/board/Kconfig b/bsp/stm32/stm32f407-atk-explorer/board/Kconfig index 7d6d8cf88305f782d1d8c250ad9fbaf6497edad2..8690baf1778428fcf594692adad97ebeb0707517 100644 --- a/bsp/stm32/stm32f407-atk-explorer/board/Kconfig +++ b/bsp/stm32/stm32f407-atk-explorer/board/Kconfig @@ -99,6 +99,9 @@ menu "Onboard Peripheral Drivers" select RT_USING_MTD_NOR select BSP_USING_SPI_FLASH select BSP_USING_FS + select PKG_USING_FAL + select FAL_USING_SFUD_PORT + select PKG_USING_LITTLEFS select RT_USING_SYSTEM_WORKQUEUE default n diff --git a/bsp/stm32/stm32f407-atk-explorer/board/ports/drv_filesystem.c b/bsp/stm32/stm32f407-atk-explorer/board/ports/drv_filesystem.c index 07e6140722dd4ed13d893991a2c0096eaa4f58b4..82f9c9c76b881fc02d7af735f93cde76508f4ba4 100644 --- a/bsp/stm32/stm32f407-atk-explorer/board/ports/drv_filesystem.c +++ b/bsp/stm32/stm32f407-atk-explorer/board/ports/drv_filesystem.c @@ -16,7 +16,6 @@ #include #include #include -#include #if DFS_FILESYSTEMS_MAX < 4 #error "Please define DFS_FILESYSTEMS_MAX more than 4" @@ -77,55 +76,34 @@ static int onboard_sdcard_mount(void) #endif #ifdef BSP_USING_SPI_FLASH_LITTLEFS +#include +#define FS_PARTITION_NAME "spiflash0" -#define FS_PARTITION_NAME "filesystem" - -static void spiflash_mount(void *parameter) +static int onboard_spiflash_mount(void) { struct rt_device *mtd_dev = RT_NULL; + fal_init(); mtd_dev = fal_mtd_nor_device_create(FS_PARTITION_NAME); if (!mtd_dev) { LOG_E("Can't create a mtd device on '%s' partition.", FS_PARTITION_NAME); } - while (1) - { - rt_thread_mdelay(500); - if(rt_device_find(FS_PARTITION_NAME) != RT_NULL) - { - if (dfs_mount(FS_PARTITION_NAME, "/flash", "lfs", 0, 0) == RT_EOK) - { - LOG_I("spi flash mount to '/flash'"); - break; - } - else - { - LOG_W("spi flash mount to '/flash' failed!"); - } - } - } -} - -static int onboard_spiflash_mount(void) -{ - rt_thread_t tid; - if (dfs_mount(FS_PARTITION_NAME, "/flash", "lfs", 0, 0) == RT_EOK) + if (dfs_mount(FS_PARTITION_NAME, "/spiflash", "lfs", 0, 0) == RT_EOK) { - LOG_I("spi flash mount to '/flash'"); + LOG_I("spi flash mount to '/spiflash'"); } else { - tid = rt_thread_create("spiflash_mount", spiflash_mount, RT_NULL, - 1024, RT_THREAD_PRIORITY_MAX - 3, 20); - if (tid != RT_NULL) + dfs_mkfs("lfs", FS_PARTITION_NAME); + if (dfs_mount(FS_PARTITION_NAME, "/spiflash", "lfs", 0, 0) == RT_EOK) { - rt_thread_startup(tid); + LOG_I("spi flash mount to '/spiflash'"); } else { - LOG_E("create spiflash_mount thread err!"); + LOG_E("spi flash failed to mount to '/spiflash'"); } } @@ -133,7 +111,6 @@ static int onboard_spiflash_mount(void) } #endif - static const struct romfs_dirent _romfs_root[] = { #ifdef BSP_USING_SDCARD @@ -141,7 +118,7 @@ static const struct romfs_dirent _romfs_root[] = #endif #ifdef BSP_USING_SPI_FLASH_LITTLEFS - {ROMFS_DIRENT_DIR, "flash", RT_NULL, 0}, + {ROMFS_DIRENT_DIR, "spiflash", RT_NULL, 0}, #endif }; diff --git a/bsp/stm32/stm32f407-atk-explorer/board/ports/fal_cfg.h b/bsp/stm32/stm32f407-atk-explorer/board/ports/fal_cfg.h index 0cea945fe5267c5c78a37abd1c245883864187af..304efe869dd5162d27294cd7a35ebf0d53891f7b 100644 --- a/bsp/stm32/stm32f407-atk-explorer/board/ports/fal_cfg.h +++ b/bsp/stm32/stm32f407-atk-explorer/board/ports/fal_cfg.h @@ -52,7 +52,7 @@ extern const struct fal_flash_dev stm32_onchip_flash_128k; #ifdef BSP_USING_SPI_FLASH_LITTLEFS #define FAL_PART_TABLE \ { \ - {FAL_PART_MAGIC_WROD, "filesystem",FAL_USING_NOR_FLASH_DEV_NAME, 0 , 16 * 1024 * 1024, 0}, \ + {FAL_PART_MAGIC_WROD, "spiflash0", FAL_USING_NOR_FLASH_DEV_NAME, 0 , 16 * 1024 * 1024, 0}, \ } #else #define FAL_PART_TABLE \