3.11. flash
— Flash memory¶
Source code: src/drivers/flash.h, src/drivers/flash.c
Test code: tst/drivers/flash/main.c
Functions
-
int
flash_module_init
(void)¶ Initialize the flash module. This function must be called before calling any other function in this module.
The module will only be initialized once even if this function is called multiple times.
- Return
- zero(0) or negative error code.
-
int
flash_init
(struct flash_driver_t *self_p, struct flash_device_t *dev_p)¶ Initialize given driver object.
- Return
- zero(0) or negative error code.
- Parameters
self_p
: Driver object to initialize.dev_p
: Device to use.
-
ssize_t
flash_read
(struct flash_driver_t *self_p, void *dst_p, uintptr_t src, size_t size)¶ Read data from given flash memory.
- Return
- Number of read bytes or negative error code.
- Parameters
self_p
: Initialized driver object.dst_p
: Buffer to read into.src
: Address in flash memory to read from.size
: Number of bytes to receive.
-
ssize_t
flash_write
(struct flash_driver_t *self_p, uintptr_t dst, const void *src_p, size_t size)¶ Write data to given flash memory.
- Return
- Number of written bytes or negative error code.
- Parameters
self_p
: Initialized driver object.dst
: Address in flash memory to write to.src_p
: Buffer to write.size
: Number of bytes to write.
-
int
flash_erase
(struct flash_driver_t *self_p, uintptr_t addr, size_t size)¶ Erase all sectors part of given memory range.
- Return
- zero(0) or negative error code.
- Parameters
self_p
: Initialized driver object.dst
: Address in flash memory to erase from.size
: Number of bytes to erase.
Variables
-
struct flash_device_t
flash_device
[FLASH_DEVICE_MAX]¶