From e8520182e08018ed0db660a386164ead82a2276b Mon Sep 17 00:00:00 2001 From: Giovanni Di Sirio Date: Sat, 4 Dec 2021 11:19:22 +0000 Subject: [PATCH] Easier VFS integration. git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@15187 27425a3e-05d8-49a3-a47f-9c15f0e5edd8 --- .../cfg/stm32g474re_nucleo64/vfsconf.h | 2 +- demos/STM32/RT-VFS-FATFS/main.c | 14 ++++---------- .../RT-VFS-FATFS/make/stm32g474re_nucleo64.make | 2 -- .../RT-VFS-FATFS/make/stm32l4r9ai_discovery.make | 5 +---- os/vfs/drivers/fatfs/drvfatfs.c | 5 ++++- os/vfs/drivers/fatfs/drvfatfs.h | 4 ++++ os/vfs/drivers/fatfs/drvfatfs.mk | 9 --------- os/vfs/drivers/overlay/drvoverlay.c | 5 ++++- os/vfs/drivers/overlay/drvoverlay.h | 4 ++++ os/vfs/drivers/overlay/drvoverlay.mk | 9 --------- os/vfs/drivers/streams/drvstreams.c | 5 ++++- os/vfs/drivers/streams/drvstreams.h | 4 ++++ os/vfs/drivers/streams/drvstreams.mk | 9 --------- os/vfs/include/vfs.h | 13 +++++++++++++ os/vfs/vfs.mk | 10 ++++++++-- 15 files changed, 51 insertions(+), 49 deletions(-) delete mode 100644 os/vfs/drivers/fatfs/drvfatfs.mk delete mode 100644 os/vfs/drivers/overlay/drvoverlay.mk delete mode 100644 os/vfs/drivers/streams/drvstreams.mk diff --git a/demos/STM32/RT-VFS-FATFS/cfg/stm32g474re_nucleo64/vfsconf.h b/demos/STM32/RT-VFS-FATFS/cfg/stm32g474re_nucleo64/vfsconf.h index db4824c55..07e8dbd5c 100644 --- a/demos/STM32/RT-VFS-FATFS/cfg/stm32g474re_nucleo64/vfsconf.h +++ b/demos/STM32/RT-VFS-FATFS/cfg/stm32g474re_nucleo64/vfsconf.h @@ -69,7 +69,7 @@ * @brief Enables the VFS FatFS Driver. */ #if !defined(VFS_CFG_ENABLE_DRV_FATFS) || defined(__DOXYGEN__) -#define VFS_CFG_ENABLE_DRV_FATFS TRUE +#define VFS_CFG_ENABLE_DRV_FATFS FALSE #endif /** @} */ diff --git a/demos/STM32/RT-VFS-FATFS/main.c b/demos/STM32/RT-VFS-FATFS/main.c index f77b0839f..6a1130455 100644 --- a/demos/STM32/RT-VFS-FATFS/main.c +++ b/demos/STM32/RT-VFS-FATFS/main.c @@ -20,11 +20,6 @@ #include "ch.h" #include "hal.h" #include "vfs.h" -#include "drvoverlay.h" -#include "drvstreams.h" -#if defined(DEMO_USE_FATFS) -#include "drvfatfs.h" -#endif #include "rt_test_root.h" #include "oslib_test_root.h" @@ -35,7 +30,6 @@ #include "portab.h" - /*===========================================================================*/ /* Card insertion monitor. */ /*===========================================================================*/ @@ -45,7 +39,7 @@ */ static event_source_t inserted_event, removed_event; -#if defined(DEMO_USE_FATFS) +#if VFS_CFG_ENABLE_DRV_FATFS == TRUE #define POLLING_INTERVAL 10 #define POLLING_DELAY 10 @@ -216,7 +210,7 @@ static void InsertHandler(eventid_t id) { (void)id; -#if defined(DEMO_USE_FATFS) +#if VFS_CFG_ENABLE_DRV_FATFS == TRUE msg_t err; #if HAL_USE_SDC @@ -249,7 +243,7 @@ static void RemoveHandler(eventid_t id) { (void)id; -#if defined(DEMO_USE_FATFS) +#if VFS_CFG_ENABLE_DRV_FATFS == TRUE #if HAL_USE_SDC sdcDisconnect(&PORTAB_SDCD1); #else @@ -317,7 +311,7 @@ int main(void) { sdStart(&PORTAB_SD1, NULL); nullObjectInit(&nullstream); -#if defined(DEMO_USE_FATFS) +#if VFS_CFG_ENABLE_DRV_FATFS == TRUE /* Activates the SDC driver using default configuration.*/ sdcStart(&PORTAB_SDCD1, NULL); diff --git a/demos/STM32/RT-VFS-FATFS/make/stm32g474re_nucleo64.make b/demos/STM32/RT-VFS-FATFS/make/stm32g474re_nucleo64.make index ed02a4bc3..b9c5486ce 100644 --- a/demos/STM32/RT-VFS-FATFS/make/stm32g474re_nucleo64.make +++ b/demos/STM32/RT-VFS-FATFS/make/stm32g474re_nucleo64.make @@ -108,8 +108,6 @@ include $(CHIBIOS)/os/rt/rt.mk include $(CHIBIOS)/os/common/ports/ARMv7-M/compilers/GCC/mk/port.mk # VFS files (optional). include $(CHIBIOS)/os/vfs/vfs.mk -include $(CHIBIOS)/os/vfs/drivers/overlay/drvoverlay.mk -include $(CHIBIOS)/os/vfs/drivers/streams/drvstreams.mk # Auto-build files in ./source recursively. include $(CHIBIOS)/tools/mk/autobuild.mk # Other files (optional). diff --git a/demos/STM32/RT-VFS-FATFS/make/stm32l4r9ai_discovery.make b/demos/STM32/RT-VFS-FATFS/make/stm32l4r9ai_discovery.make index cba277db4..9907a01a4 100644 --- a/demos/STM32/RT-VFS-FATFS/make/stm32l4r9ai_discovery.make +++ b/demos/STM32/RT-VFS-FATFS/make/stm32l4r9ai_discovery.make @@ -108,9 +108,6 @@ include $(CHIBIOS)/os/rt/rt.mk include $(CHIBIOS)/os/common/ports/ARMv7-M/compilers/GCC/mk/port.mk # VFS files (optional). include $(CHIBIOS)/os/vfs/vfs.mk -include $(CHIBIOS)/os/vfs/drivers/overlay/drvoverlay.mk -include $(CHIBIOS)/os/vfs/drivers/streams/drvstreams.mk -include $(CHIBIOS)/os/vfs/drivers/fatfs/drvfatfs.mk # Auto-build files in ./source recursively. include $(CHIBIOS)/tools/mk/autobuild.mk # Other files (optional). @@ -159,7 +156,7 @@ CPPWARN = -Wall -Wextra -Wundef # # List all user C define here, like -D_DEBUG=1 -UDEFS = -DDEMO_USE_FATFS +UDEFS = # Define ASM defines here UADEFS = diff --git a/os/vfs/drivers/fatfs/drvfatfs.c b/os/vfs/drivers/fatfs/drvfatfs.c index 052564f54..30e3e212f 100644 --- a/os/vfs/drivers/fatfs/drvfatfs.c +++ b/os/vfs/drivers/fatfs/drvfatfs.c @@ -28,7 +28,8 @@ #include #include "vfs.h" -#include "drvfatfs.h" + +#if (VFS_CFG_ENABLE_DRV_FATFS == TRUE) || defined(__DOXYGEN__) /*===========================================================================*/ /* Module local definitions. */ @@ -530,4 +531,6 @@ msg_t drvFatFSUnmount(const char *name) { return translate_error(res); } +#endif /* VFS_CFG_ENABLE_DRV_FATFS == TRUE */ + /** @} */ diff --git a/os/vfs/drivers/fatfs/drvfatfs.h b/os/vfs/drivers/fatfs/drvfatfs.h index 92619b402..31dc73e3f 100644 --- a/os/vfs/drivers/fatfs/drvfatfs.h +++ b/os/vfs/drivers/fatfs/drvfatfs.h @@ -28,6 +28,8 @@ #ifndef DRVFATFS_H #define DRVFATFS_H +#if (VFS_CFG_ENABLE_DRV_FATFS == TRUE) || defined(__DOXYGEN__) + #include "ff.h" /*===========================================================================*/ @@ -186,6 +188,8 @@ extern "C" { /* Module inline functions. */ /*===========================================================================*/ +#endif /* VFS_CFG_ENABLE_DRV_FATFS == TRUE */ + #endif /* DRVFATFS_H */ /** @} */ diff --git a/os/vfs/drivers/fatfs/drvfatfs.mk b/os/vfs/drivers/fatfs/drvfatfs.mk deleted file mode 100644 index cb8bdd42e..000000000 --- a/os/vfs/drivers/fatfs/drvfatfs.mk +++ /dev/null @@ -1,9 +0,0 @@ -# List of all the FatFS VFS driver files. -DRVFATFSSRC := $(CHIBIOS)/os/vfs/drivers/fatfs/drvfatfs.c - -# Required include directories -DRVFATFSINC := $(CHIBIOS)/os/vfs/drivers/fatfs - -# Shared variables -ALLCSRC += $(DRVFATFSSRC) -ALLINC += $(DRVFATFSINC) diff --git a/os/vfs/drivers/overlay/drvoverlay.c b/os/vfs/drivers/overlay/drvoverlay.c index 78940b1b1..6b8fec727 100644 --- a/os/vfs/drivers/overlay/drvoverlay.c +++ b/os/vfs/drivers/overlay/drvoverlay.c @@ -28,7 +28,8 @@ #include #include "vfs.h" -#include "drvoverlay.h" + +#if (VFS_CFG_ENABLE_DRV_OVERLAY == TRUE) || defined(__DOXYGEN__) /*===========================================================================*/ /* Module local definitions. */ @@ -310,4 +311,6 @@ msg_t drvOverlayRegisterDriver(vfs_overlay_driver_t *vodp, return err; } +#endif /* VFS_CFG_ENABLE_DRV_OVERLAY == TRUE */ + /** @} */ diff --git a/os/vfs/drivers/overlay/drvoverlay.h b/os/vfs/drivers/overlay/drvoverlay.h index c117c5211..da827ad4e 100644 --- a/os/vfs/drivers/overlay/drvoverlay.h +++ b/os/vfs/drivers/overlay/drvoverlay.h @@ -28,6 +28,8 @@ #ifndef DRVOVERLAY_H #define DRVOVERLAY_H +#if (VFS_CFG_ENABLE_DRV_OVERLAY == TRUE) || defined(__DOXYGEN__) + /*===========================================================================*/ /* Module constants. */ /*===========================================================================*/ @@ -158,6 +160,8 @@ extern "C" { /* Module inline functions. */ /*===========================================================================*/ +#endif /* VFS_CFG_ENABLE_DRV_OVERLAY == TRUE */ + #endif /* DRVOVERLAY_H */ /** @} */ diff --git a/os/vfs/drivers/overlay/drvoverlay.mk b/os/vfs/drivers/overlay/drvoverlay.mk deleted file mode 100644 index 32821841b..000000000 --- a/os/vfs/drivers/overlay/drvoverlay.mk +++ /dev/null @@ -1,9 +0,0 @@ -# List of all the overlay VFS driver files. -DRVOVERLAYSRC := $(CHIBIOS)/os/vfs/drivers/overlay/drvoverlay.c - -# Required include directories -DRVOVERLAYINC := $(CHIBIOS)/os/vfs/drivers/overlay - -# Shared variables -ALLCSRC += $(DRVOVERLAYSRC) -ALLINC += $(DRVOVERLAYINC) diff --git a/os/vfs/drivers/streams/drvstreams.c b/os/vfs/drivers/streams/drvstreams.c index 857f4a8bd..aeed494bc 100644 --- a/os/vfs/drivers/streams/drvstreams.c +++ b/os/vfs/drivers/streams/drvstreams.c @@ -28,7 +28,8 @@ #include #include "vfs.h" -#include "drvstreams.h" + +#if (VFS_CFG_ENABLE_DRV_STREAMS == TRUE) || defined(__DOXYGEN__) /*===========================================================================*/ /* Module local definitions. */ @@ -306,4 +307,6 @@ vfs_driver_t *drvStreamsObjectInit(vfs_streams_driver_t *vsdp, return (vfs_driver_t *)vsdp; } +#endif /* VFS_CFG_ENABLE_DRV_STREAMS == TRUE */ + /** @} */ diff --git a/os/vfs/drivers/streams/drvstreams.h b/os/vfs/drivers/streams/drvstreams.h index 97dfbf4a6..31f58f194 100644 --- a/os/vfs/drivers/streams/drvstreams.h +++ b/os/vfs/drivers/streams/drvstreams.h @@ -28,6 +28,8 @@ #ifndef DRVSTREAMS_H #define DRVSTREAMS_H +#if (VFS_CFG_ENABLE_DRV_STREAMS == TRUE) || defined(__DOXYGEN__) + /*===========================================================================*/ /* Module constants. */ /*===========================================================================*/ @@ -194,6 +196,8 @@ extern "C" { /* Module inline functions. */ /*===========================================================================*/ +#endif /* VFS_CFG_ENABLE_DRV_STREAMS == TRUE */ + #endif /* DRVSTREAMS_H */ /** @} */ diff --git a/os/vfs/drivers/streams/drvstreams.mk b/os/vfs/drivers/streams/drvstreams.mk deleted file mode 100644 index c7941e239..000000000 --- a/os/vfs/drivers/streams/drvstreams.mk +++ /dev/null @@ -1,9 +0,0 @@ -# List of all the streams VFS driver files. -DRVSTREAMSSRC := $(CHIBIOS)/os/vfs/drivers/streams/drvstreams.c - -# Required include directories -DRVSTREAMSINC := $(CHIBIOS)/os/vfs/drivers/streams - -# Shared variables -ALLCSRC += $(DRVSTREAMSSRC) -ALLINC += $(DRVSTREAMSINC) diff --git a/os/vfs/include/vfs.h b/os/vfs/include/vfs.h index b1ab7e644..623e045ed 100644 --- a/os/vfs/include/vfs.h +++ b/os/vfs/include/vfs.h @@ -84,6 +84,19 @@ #include "vfsnodes.h" #include "vfsdrivers.h" +/* File System drivers.*/ +#if VFS_CFG_ENABLE_DRV_OVERLAY == TRUE +#include "drvoverlay.h" +#endif + +#if VFS_CFG_ENABLE_DRV_STREAMS == TRUE +#include "drvstreams.h" +#endif + +#if VFS_CFG_ENABLE_DRV_FATFS == TRUE +#include "drvfatfs.h" +#endif + /* Application code is suppored to export this symbol, it is expected to exists.*/ extern vfs_driver_t *vfs_root; diff --git a/os/vfs/vfs.mk b/os/vfs/vfs.mk index 8de97103e..34246b3a8 100644 --- a/os/vfs/vfs.mk +++ b/os/vfs/vfs.mk @@ -1,9 +1,15 @@ # List of all the ChibiOS/VFS files. VFSSRC := $(CHIBIOS)/os/vfs/src/vfsparser.c \ - $(CHIBIOS)/os/vfs/src/vfs.c + $(CHIBIOS)/os/vfs/src/vfs.c \ + $(CHIBIOS)/os/vfs/drivers/fatfs/drvfatfs.c \ + $(CHIBIOS)/os/vfs/drivers/overlay/drvoverlay.c \ + $(CHIBIOS)/os/vfs/drivers/streams/drvstreams.c # Required include directories -VFSINC := $(CHIBIOS)/os/vfs/include +VFSINC := $(CHIBIOS)/os/vfs/include \ + $(CHIBIOS)/os/vfs/drivers/fatfs \ + $(CHIBIOS)/os/vfs/drivers/overlay \ + $(CHIBIOS)/os/vfs/drivers/streams # Shared variables ALLCSRC += $(VFSSRC)