pebble/src/fw/drivers/flash
Josh Soref 7bd5bbfeb1 spelling: arguments
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-01-28 21:18:59 -05:00
..
micron_n25q Import of the watch repository from Pebble 2025-01-27 11:38:16 -08:00
cd_flash_driver.c Import of the watch repository from Pebble 2025-01-27 11:38:16 -08:00
flash_api.c Import of the watch repository from Pebble 2025-01-27 11:38:16 -08:00
flash_crc.c Import of the watch repository from Pebble 2025-01-27 11:38:16 -08:00
flash_erase.c Import of the watch repository from Pebble 2025-01-27 11:38:16 -08:00
flash_impl.h Import of the watch repository from Pebble 2025-01-27 11:38:16 -08:00
flash_internal.h Import of the watch repository from Pebble 2025-01-27 11:38:16 -08:00
mt25q.c Import of the watch repository from Pebble 2025-01-27 11:38:16 -08:00
mx25u.c Import of the watch repository from Pebble 2025-01-27 11:38:16 -08:00
nvram_bkp.c Import of the watch repository from Pebble 2025-01-27 11:38:16 -08:00
qspi_flash.c Import of the watch repository from Pebble 2025-01-27 11:38:16 -08:00
qspi_flash.h Import of the watch repository from Pebble 2025-01-27 11:38:16 -08:00
qspi_flash_definitions.h Import of the watch repository from Pebble 2025-01-27 11:38:16 -08:00
qspi_flash_part_definitions.h Import of the watch repository from Pebble 2025-01-27 11:38:16 -08:00
README.md Import of the watch repository from Pebble 2025-01-27 11:38:16 -08:00
spansion_s29vs.c spelling: arguments 2025-01-28 21:18:59 -05:00

Flash Memory Drivers

Flash memory access is exposed through two separate APIs. The main API, defined in flash.h and implemented in flash_api.c, is used almost everywhere. There is also an alternate API used exclusively for performing core dumps, implemented in cd_flash_driver.c. The alternate API is carefully implemented to be usable regardless of how messed up the system state is in by not relying on any OS services.

The flash APIs are written to be agnostic to the specific type of flash used. They are written against the generic low-level driver interface defined in flash_impl.h. Each low-level driver is specific to a combination of flash memory part and microcontroller interface. The low-level drivers make no use of OS services so that they can be used for both the main and core dump driver APIs.