3.9. eeprom_soft
— Software EEPROM¶
Source code: src/drivers/eeprom_soft.h, src/drivers/eeprom_soft.c
Test code: tst/drivers/eeprom_soft/main.c
Functions
-
int
eeprom_soft_module_init
(void)¶ Initialize software EEPROM 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
eeprom_soft_init
(struct eeprom_soft_driver_t *self_p, struct flash_driver_t *flash_p, const struct eeprom_soft_block_t *blocks_p, int number_of_blocks, size_t chunk_size)¶ Initialize given driver object.
- Return
- zero(0) or negative error code.
- Parameters
self_p
: Driver object to initialize.flash_p
: Flash driver.blocks_p
: Flash memory blocks to use.number_of_blocks
: Number of blocks.chunk_size
: Chunk size in bytes. This is the size of the EEPROM. Eight bytes of the chunk will be used to store metadata, so onlychunk_size - 8
bytes are available to the user.
-
int
eeprom_soft_mount
(struct eeprom_soft_driver_t *self_p)¶ Mount given software EEPROM.
- Return
- zero(0) or negative error code.
- Parameters
self_p
: Driver object to mount.
-
int
eeprom_soft_format
(struct eeprom_soft_driver_t *self_p)¶ Format given software EEPROM.
- Return
- zero(0) or negative error code.
- Parameters
self_p
: Driver object to format.
-
ssize_t
eeprom_soft_read
(struct eeprom_soft_driver_t *self_p, void *dst_p, uintptr_t src, size_t size)¶ Read into given buffer from given address.
- Return
- Number of bytes read or negative error code.
- Parameters
self_p
: Initialized driver object.dst_p
: Buffer to read into.src
: Software EEPROM address to read from. Addressing starts at zero(0).size
: Number of bytes to read.
-
ssize_t
eeprom_soft_write
(struct eeprom_soft_driver_t *self_p, uintptr_t dst, const void *src_p, size_t size)¶ Write given buffer to given address.
- Return
- Number of bytes written or negative error code.
- Parameters
self_p
: Initialized driver object.dst
: Software EEPROM address to write to. Addressing starts at zero(0).src_p
: Buffer to write.size
: Number of bytes to write.
-
struct
eeprom_soft_block_t
¶ - #include <eeprom_soft.h>
-
struct
eeprom_soft_driver_t
¶ Public Members
-
struct flash_driver_t *
flash_p
¶
-
const struct eeprom_soft_block_t *
blocks_p
¶
-
int
number_of_blocks
¶
-
size_t
chunk_size
¶
-
size_t
eeprom_size
¶
-
const struct eeprom_soft_block_t *
block_p
¶
-
uintptr_t
chunk_address
¶
-
uint16_t
revision
¶
-
struct eeprom_soft_driver_t::@3 eeprom_soft_driver_t::current
-
struct flash_driver_t *