Add support for SpiNorFlash and FS (#30)
The external SPI flash is implemented as a 4MB on the local filesystem. This allows the FS (littleFS) and settings to work properly. Remove the simulated `FS.h` and `FS.cpp`, because we can now use the files from InfiniTime directly as the heavy lifting is done in the simulated `SpiNorFlash.h` and cpp files. `SpiNorFlash.h` provides read and write functions with `uint8_t` buffer, but `fs::fstream` expects `char` buffer. Use `reinterpret_cast` and check if by any chance the `char` type on a platform is implemented with more than one byte. Then the `reinterpret_cast<char *>(buffer)` would change the meaning of the `size` parameter, which could lead to garbage data. Co-authored-by: Reinhold Gschweicher <pyro4hell@gmail.com>
This commit is contained in:
@@ -88,8 +88,6 @@ target_sources(infinisim PUBLIC
|
||||
sim/components/brightness/BrightnessController.cpp
|
||||
sim/components/firmwarevalidator/FirmwareValidator.h
|
||||
sim/components/firmwarevalidator/FirmwareValidator.cpp
|
||||
sim/components/fs/FS.h
|
||||
sim/components/fs/FS.cpp
|
||||
sim/components/heartrate/HeartRateController.h
|
||||
sim/components/heartrate/HeartRateController.cpp
|
||||
sim/components/motion/MotionController.h
|
||||
@@ -173,13 +171,21 @@ file(GLOB InfiniTime_WIDGETS
|
||||
"${InfiniTime_DIR}/src/displayapp/widgets/*.cpp"
|
||||
"${InfiniTime_DIR}/src/displayapp/widgets/*.h"
|
||||
)
|
||||
set(LITTLEFS_SRC
|
||||
${InfiniTime_DIR}/src/libs/littlefs/lfs_util.h
|
||||
${InfiniTime_DIR}/src/libs/littlefs/lfs.h
|
||||
${InfiniTime_DIR}/src/libs/littlefs/lfs_util.c
|
||||
${InfiniTime_DIR}/src/libs/littlefs/lfs.c
|
||||
)
|
||||
target_sources(infinisim PUBLIC ${InfiniTime_SCREENS})
|
||||
target_sources(infinisim PUBLIC ${InfiniTime_FONTS})
|
||||
target_sources(infinisim PUBLIC ${InfiniTime_ICONS})
|
||||
target_sources(infinisim PUBLIC ${InfiniTime_WIDGETS})
|
||||
target_sources(infinisim PUBLIC ${LITTLEFS_SRC})
|
||||
|
||||
# add files directly from InfiniTime sources
|
||||
target_include_directories(infinisim PRIVATE "${InfiniTime_DIR}/src")
|
||||
target_include_directories(infinisim PRIVATE "${InfiniTime_DIR}/src/libs/littlefs")
|
||||
target_sources(infinisim PUBLIC
|
||||
${InfiniTime_DIR}/src/BootloaderVersion.h
|
||||
${InfiniTime_DIR}/src/BootloaderVersion.cpp
|
||||
@@ -202,6 +208,8 @@ target_sources(infinisim PUBLIC
|
||||
${InfiniTime_DIR}/src/components/settings/Settings.cpp
|
||||
${InfiniTime_DIR}/src/components/ble/NotificationManager.h
|
||||
${InfiniTime_DIR}/src/components/ble/NotificationManager.cpp
|
||||
${InfiniTime_DIR}/src/components/fs/FS.h
|
||||
${InfiniTime_DIR}/src/components/fs/FS.cpp
|
||||
${InfiniTime_DIR}/src/components/timer/TimerController.h
|
||||
${InfiniTime_DIR}/src/components/timer/TimerController.cpp
|
||||
${InfiniTime_DIR}/src/drivers/PinMap.h
|
||||
|
Reference in New Issue
Block a user