From 2f7c294d97fe2fa3f86fc7206574c8dedd50b324 Mon Sep 17 00:00:00 2001 From: Meco Man <920369182@qq.com> Date: Thu, 18 Aug 2022 20:17:42 -0400 Subject: [stm32f407-explorer][fs] 优化文件系统选项配置 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bsp/stm32/stm32f407-atk-explorer/board/Kconfig | 59 ++++++++-------- bsp/stm32/stm32f407-atk-explorer/board/SConscript | 3 +- .../board/ports/drv_filesystem.c | 14 +--- .../board/ports/fal/fal_cfg.h | 66 ++++++++++++++++++ .../board/ports/fal/fal_spi_flash_sfud_port.c | 80 ++++++++++++++++++++++ .../stm32f407-atk-explorer/board/ports/fal_cfg.h | 66 ------------------ .../board/ports/fal_spi_flash_sfud_port.c | 80 ---------------------- 7 files changed, 178 insertions(+), 190 deletions(-) create mode 100644 bsp/stm32/stm32f407-atk-explorer/board/ports/fal/fal_cfg.h create mode 100644 bsp/stm32/stm32f407-atk-explorer/board/ports/fal/fal_spi_flash_sfud_port.c delete mode 100644 bsp/stm32/stm32f407-atk-explorer/board/ports/fal_cfg.h delete mode 100644 bsp/stm32/stm32f407-atk-explorer/board/ports/fal_spi_flash_sfud_port.c (limited to 'bsp') diff --git a/bsp/stm32/stm32f407-atk-explorer/board/Kconfig b/bsp/stm32/stm32f407-atk-explorer/board/Kconfig index e9a3d5fce0..b62ef50547 100644 --- a/bsp/stm32/stm32f407-atk-explorer/board/Kconfig +++ b/bsp/stm32/stm32f407-atk-explorer/board/Kconfig @@ -134,40 +134,29 @@ menu "Onboard Peripheral Drivers" select BSP_USING_I2C1 select PKG_USING_MPU6XXX - menu "Enable File System" - config BSP_USING_FS - bool - default n - - config BSP_USING_SDCARD_FATFS - bool "Enable SDCARD (FATFS)" - select BSP_USING_SDIO - select RT_USING_DFS - select RT_USING_DFS_ELMFAT - select RT_USING_DFS_ROMFS - select BSP_USING_FS - default n + menuconfig BSP_USING_FS + bool "Enable File System" + select RT_USING_DFS + select RT_USING_DFS_ROMFS + default n - config SDIO_MAX_FREQ - int "sdio max freq" - range 0 24000000 - depends on BSP_USING_SDCARD - default 1000000 - - config BSP_USING_SPI_FLASH_LITTLEFS - bool "Enable SPI-FLASH (LittleFS)" - select RT_USING_DFS - select RT_USING_DFS_ROMFS - select RT_USING_MTD_NOR - select BSP_USING_SPI_FLASH - select BSP_USING_FS - select RT_USING_FAL - select FAL_USING_AUTO_INIT - select FAL_PART_HAS_TABLE_CFG - select PKG_USING_LITTLEFS - default n + if BSP_USING_FS + config BSP_USING_SDCARD_FATFS + bool "Enable SDCARD (FATFS)" + select BSP_USING_SDIO + select RT_USING_DFS_ELMFAT + default n - endmenu + config BSP_USING_SPI_FLASH_LITTLEFS + bool "Enable SPI-FLASH (LittleFS)" + select RT_USING_MTD_NOR + select BSP_USING_SPI_FLASH + select RT_USING_FAL + select FAL_USING_AUTO_INIT + select FAL_PART_HAS_TABLE_CFG + select PKG_USING_LITTLEFS + default n + endif endmenu @@ -467,6 +456,12 @@ menu "On-chip Peripheral Drivers" select RT_USING_DFS default n + config SDIO_MAX_FREQ + int "sdio max freq" + range 0 24000000 + depends on BSP_USING_SDIO + default 1000000 + config BSP_USING_USBD bool "Enable USB Device" select RT_USING_USB_DEVICE diff --git a/bsp/stm32/stm32f407-atk-explorer/board/SConscript b/bsp/stm32/stm32f407-atk-explorer/board/SConscript index f45fee08a8..c01bb6a129 100644 --- a/bsp/stm32/stm32f407-atk-explorer/board/SConscript +++ b/bsp/stm32/stm32f407-atk-explorer/board/SConscript @@ -27,7 +27,8 @@ if GetDepend(['BSP_USING_SPI_FLASH']): if GetDepend(['BSP_USING_FS']): src += Glob('ports/drv_filesystem.c') if GetDepend(['BSP_USING_SPI_FLASH_LITTLEFS']): - src += Glob('ports/fal_spi_flash_sfud_port.c') + src += Glob('ports/fal/fal_spi_flash_sfud_port.c') + path += [cwd + '/ports/fal'] if GetDepend(['BSP_USING_SRAM']): src += Glob('ports/drv_sram.c') 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 cafb45b107..c54157eb0d 100644 --- a/bsp/stm32/stm32f407-atk-explorer/board/ports/drv_filesystem.c +++ b/bsp/stm32/stm32f407-atk-explorer/board/ports/drv_filesystem.c @@ -11,15 +11,9 @@ */ #include - -#ifdef BSP_USING_FS #include #include #include -#include -#include -#include -#include #if DFS_FILESYSTEMS_MAX < 4 #error "Please define DFS_FILESYSTEMS_MAX more than 4" @@ -46,7 +40,7 @@ static int onboard_sdcard_mount(void) return RT_EOK; } -#endif +#endif /* BSP_USING_SDCARD_FATFS */ #ifdef BSP_USING_SPI_FLASH_LITTLEFS #include @@ -83,7 +77,7 @@ static int onboard_spiflash_mount(void) return RT_EOK; } -#endif +#endif /* BSP_USING_SPI_FLASH_LITTLEFS */ static const struct romfs_dirent _romfs_root[] = { @@ -96,7 +90,7 @@ static const struct romfs_dirent _romfs_root[] = #endif }; -const struct romfs_dirent romfs_root = +static const struct romfs_dirent romfs_root = { ROMFS_DIRENT_DIR, "/", (rt_uint8_t *)_romfs_root, sizeof(_romfs_root) / sizeof(_romfs_root[0]) }; @@ -118,5 +112,3 @@ static int filesystem_mount(void) return RT_EOK; } INIT_APP_EXPORT(filesystem_mount); - -#endif /* BSP_USING_FS */ diff --git a/bsp/stm32/stm32f407-atk-explorer/board/ports/fal/fal_cfg.h b/bsp/stm32/stm32f407-atk-explorer/board/ports/fal/fal_cfg.h new file mode 100644 index 0000000000..adeb531953 --- /dev/null +++ b/bsp/stm32/stm32f407-atk-explorer/board/ports/fal/fal_cfg.h @@ -0,0 +1,66 @@ +/* + * Copyright (c) 2006-2021, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2018-12-5 SummerGift first version + */ + +#ifndef _FAL_CFG_H_ +#define _FAL_CFG_H_ + +#include +#include + +#ifdef BSP_USING_SPI_FLASH_LITTLEFS +extern struct fal_flash_dev w25q128; +#else +#define FLASH_SIZE_GRANULARITY_16K (4 * 16 * 1024) +#define FLASH_SIZE_GRANULARITY_64K (64 * 1024) +#define FLASH_SIZE_GRANULARITY_128K (7 * 128 * 1024) +#define STM32_FLASH_START_ADRESS_16K STM32_FLASH_START_ADRESS +#define STM32_FLASH_START_ADRESS_64K (STM32_FLASH_START_ADRESS_16K + FLASH_SIZE_GRANULARITY_16K) +#define STM32_FLASH_START_ADRESS_128K (STM32_FLASH_START_ADRESS_64K + FLASH_SIZE_GRANULARITY_64K) + +extern const struct fal_flash_dev stm32_onchip_flash_16k; +extern const struct fal_flash_dev stm32_onchip_flash_64k; +extern const struct fal_flash_dev stm32_onchip_flash_128k; +#endif + + +/* flash device table */ +#ifdef BSP_USING_SPI_FLASH_LITTLEFS +#define FAL_FLASH_DEV_TABLE \ +{ \ + &w25q128, \ +} +#else +#define FAL_FLASH_DEV_TABLE \ +{ \ + &stm32_onchip_flash_16k, \ + &stm32_onchip_flash_64k, \ + &stm32_onchip_flash_128k, \ +} +#endif + +/* ====================== Partition Configuration ========================== */ +#ifdef FAL_PART_HAS_TABLE_CFG + +/* partition table */ +#ifdef BSP_USING_SPI_FLASH_LITTLEFS +#define FAL_PART_TABLE \ +{ \ + {FAL_PART_MAGIC_WROD, "spiflash0", "W25Q128", 0 , 16 * 1024 * 1024, 0}, \ +} +#else +#define FAL_PART_TABLE \ +{ \ + {FAL_PART_MAGIC_WROD, "bootloader", "onchip_flash_16k", 0 , FLASH_SIZE_GRANULARITY_16K , 0}, \ + {FAL_PART_MAGIC_WROD, "param", "onchip_flash_64k", 0 , FLASH_SIZE_GRANULARITY_64K , 0}, \ + {FAL_PART_MAGIC_WROD, "app", "onchip_flash_128k", 0 , FLASH_SIZE_GRANULARITY_128K, 0}, \ +} +#endif +#endif /* FAL_PART_HAS_TABLE_CFG */ +#endif /* _FAL_CFG_H_ */ diff --git a/bsp/stm32/stm32f407-atk-explorer/board/ports/fal/fal_spi_flash_sfud_port.c b/bsp/stm32/stm32f407-atk-explorer/board/ports/fal/fal_spi_flash_sfud_port.c new file mode 100644 index 0000000000..96da95b4c4 --- /dev/null +++ b/bsp/stm32/stm32f407-atk-explorer/board/ports/fal/fal_spi_flash_sfud_port.c @@ -0,0 +1,80 @@ +/* + * Copyright (c) 2006-2021, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2021-08-07 Meco Man first version + */ + +#include +#include + +#ifdef RT_USING_SFUD +#include +#endif + +static int init(void); +static int read(long offset, uint8_t *buf, size_t size); +static int write(long offset, const uint8_t *buf, size_t size); +static int erase(long offset, size_t size); + +static sfud_flash_t sfud_dev = NULL; +struct fal_flash_dev w25q128 = +{ + .name = "W25Q128", + .addr = 0, + .len = 16 * 1024 * 1024, + .blk_size = 4096, + .ops = {init, read, write, erase}, + .write_gran = 1 +}; + +static int init(void) +{ + sfud_dev = rt_sfud_flash_find_by_dev_name("W25Q128"); + if (RT_NULL == sfud_dev) + { + return -1; + } + + /* update the flash chip information */ + w25q128.blk_size = sfud_dev->chip.erase_gran; + w25q128.len = sfud_dev->chip.capacity; + + return 0; +} + +static int read(long offset, uint8_t *buf, size_t size) +{ + assert(sfud_dev); + assert(sfud_dev->init_ok); + sfud_read(sfud_dev, w25q128.addr + offset, size, buf); + + return size; +} + +static int write(long offset, const uint8_t *buf, size_t size) +{ + assert(sfud_dev); + assert(sfud_dev->init_ok); + if (sfud_write(sfud_dev, w25q128.addr + offset, size, buf) != SFUD_SUCCESS) + { + return -1; + } + + return size; +} + +static int erase(long offset, size_t size) +{ + assert(sfud_dev); + assert(sfud_dev->init_ok); + if (sfud_erase(sfud_dev, w25q128.addr + offset, size) != SFUD_SUCCESS) + { + return -1; + } + + return size; +} diff --git a/bsp/stm32/stm32f407-atk-explorer/board/ports/fal_cfg.h b/bsp/stm32/stm32f407-atk-explorer/board/ports/fal_cfg.h deleted file mode 100644 index adeb531953..0000000000 --- a/bsp/stm32/stm32f407-atk-explorer/board/ports/fal_cfg.h +++ /dev/null @@ -1,66 +0,0 @@ -/* - * Copyright (c) 2006-2021, RT-Thread Development Team - * - * SPDX-License-Identifier: Apache-2.0 - * - * Change Logs: - * Date Author Notes - * 2018-12-5 SummerGift first version - */ - -#ifndef _FAL_CFG_H_ -#define _FAL_CFG_H_ - -#include -#include - -#ifdef BSP_USING_SPI_FLASH_LITTLEFS -extern struct fal_flash_dev w25q128; -#else -#define FLASH_SIZE_GRANULARITY_16K (4 * 16 * 1024) -#define FLASH_SIZE_GRANULARITY_64K (64 * 1024) -#define FLASH_SIZE_GRANULARITY_128K (7 * 128 * 1024) -#define STM32_FLASH_START_ADRESS_16K STM32_FLASH_START_ADRESS -#define STM32_FLASH_START_ADRESS_64K (STM32_FLASH_START_ADRESS_16K + FLASH_SIZE_GRANULARITY_16K) -#define STM32_FLASH_START_ADRESS_128K (STM32_FLASH_START_ADRESS_64K + FLASH_SIZE_GRANULARITY_64K) - -extern const struct fal_flash_dev stm32_onchip_flash_16k; -extern const struct fal_flash_dev stm32_onchip_flash_64k; -extern const struct fal_flash_dev stm32_onchip_flash_128k; -#endif - - -/* flash device table */ -#ifdef BSP_USING_SPI_FLASH_LITTLEFS -#define FAL_FLASH_DEV_TABLE \ -{ \ - &w25q128, \ -} -#else -#define FAL_FLASH_DEV_TABLE \ -{ \ - &stm32_onchip_flash_16k, \ - &stm32_onchip_flash_64k, \ - &stm32_onchip_flash_128k, \ -} -#endif - -/* ====================== Partition Configuration ========================== */ -#ifdef FAL_PART_HAS_TABLE_CFG - -/* partition table */ -#ifdef BSP_USING_SPI_FLASH_LITTLEFS -#define FAL_PART_TABLE \ -{ \ - {FAL_PART_MAGIC_WROD, "spiflash0", "W25Q128", 0 , 16 * 1024 * 1024, 0}, \ -} -#else -#define FAL_PART_TABLE \ -{ \ - {FAL_PART_MAGIC_WROD, "bootloader", "onchip_flash_16k", 0 , FLASH_SIZE_GRANULARITY_16K , 0}, \ - {FAL_PART_MAGIC_WROD, "param", "onchip_flash_64k", 0 , FLASH_SIZE_GRANULARITY_64K , 0}, \ - {FAL_PART_MAGIC_WROD, "app", "onchip_flash_128k", 0 , FLASH_SIZE_GRANULARITY_128K, 0}, \ -} -#endif -#endif /* FAL_PART_HAS_TABLE_CFG */ -#endif /* _FAL_CFG_H_ */ diff --git a/bsp/stm32/stm32f407-atk-explorer/board/ports/fal_spi_flash_sfud_port.c b/bsp/stm32/stm32f407-atk-explorer/board/ports/fal_spi_flash_sfud_port.c deleted file mode 100644 index 96da95b4c4..0000000000 --- a/bsp/stm32/stm32f407-atk-explorer/board/ports/fal_spi_flash_sfud_port.c +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Copyright (c) 2006-2021, RT-Thread Development Team - * - * SPDX-License-Identifier: Apache-2.0 - * - * Change Logs: - * Date Author Notes - * 2021-08-07 Meco Man first version - */ - -#include -#include - -#ifdef RT_USING_SFUD -#include -#endif - -static int init(void); -static int read(long offset, uint8_t *buf, size_t size); -static int write(long offset, const uint8_t *buf, size_t size); -static int erase(long offset, size_t size); - -static sfud_flash_t sfud_dev = NULL; -struct fal_flash_dev w25q128 = -{ - .name = "W25Q128", - .addr = 0, - .len = 16 * 1024 * 1024, - .blk_size = 4096, - .ops = {init, read, write, erase}, - .write_gran = 1 -}; - -static int init(void) -{ - sfud_dev = rt_sfud_flash_find_by_dev_name("W25Q128"); - if (RT_NULL == sfud_dev) - { - return -1; - } - - /* update the flash chip information */ - w25q128.blk_size = sfud_dev->chip.erase_gran; - w25q128.len = sfud_dev->chip.capacity; - - return 0; -} - -static int read(long offset, uint8_t *buf, size_t size) -{ - assert(sfud_dev); - assert(sfud_dev->init_ok); - sfud_read(sfud_dev, w25q128.addr + offset, size, buf); - - return size; -} - -static int write(long offset, const uint8_t *buf, size_t size) -{ - assert(sfud_dev); - assert(sfud_dev->init_ok); - if (sfud_write(sfud_dev, w25q128.addr + offset, size, buf) != SFUD_SUCCESS) - { - return -1; - } - - return size; -} - -static int erase(long offset, size_t size) -{ - assert(sfud_dev); - assert(sfud_dev->init_ok); - if (sfud_erase(sfud_dev, w25q128.addr + offset, size) != SFUD_SUCCESS) - { - return -1; - } - - return size; -} -- cgit v1.3.1