#include <modm/architecture/interface/block_device.hpp>
|
|
using | bd_address_t = uint32_t |
| |
|
using | bd_size_t = uint32_t |
| |
|
|
| BlockDevice (const BlockDevice &) = delete |
| |
|
BlockDevice & | operator= (const BlockDevice &) = delete |
| |
|
bool | initialize () |
| | Initializes the storage hardware.
|
| |
|
bool | deinitialize () |
| | Deinitializes the storage hardware.
|
| |
| bool | read (uint8_t *buffer, bd_address_t address, bd_size_t size) |
| |
| bool | program (const uint8_t *buffer, bd_address_t address, bd_size_t size) |
| |
| bool | erase (bd_address_t address, bd_size_t size) |
| |
| bool | write (const uint8_t *buffer, bd_address_t address, bd_size_t size) |
| |
|
| static constexpr bd_size_t | BlockSizeRead = 1 |
| |
|
static constexpr bd_size_t | BlockSizeWrite = 1 |
| |
|
static constexpr bd_size_t | BlockSizeErase = 1 |
| |
Interface of a Block Device
Access to storage devices like flash chips
- Author
- Raphael Lehmann
| bool modm::BlockDevice::erase |
( |
bd_address_t |
address, |
|
|
bd_size_t |
size |
|
) |
| |
Erase blocks
The state of an erased block is undefined until it has been programmed
- Parameters
-
| address | Address of block to begin erasing |
| size | Size to erase in bytes (multiple of read block size) |
- Returns
- True on success
| bool modm::BlockDevice::program |
( |
const uint8_t * |
buffer, |
|
|
bd_address_t |
address, |
|
|
bd_size_t |
size |
|
) |
| |
Program blocks with data
Any block has to be erased prior to being programmed
- Parameters
-
| buffer | Buffer of data to write to blocks |
| address | Address of first block to begin writing to |
| size | Size to write in bytes (multiple of read block size) |
- Returns
- True on success
| bool modm::BlockDevice::read |
( |
uint8_t * |
buffer, |
|
|
bd_address_t |
address, |
|
|
bd_size_t |
size |
|
) |
| |
Read data from one or more blocks
- Parameters
-
| buffer | Buffer to read data into |
| address | Address to begin reading from |
| size | Size to read in bytes (multiple of read block size) |
- Returns
- True on success
| bool modm::BlockDevice::write |
( |
const uint8_t * |
buffer, |
|
|
bd_address_t |
address, |
|
|
bd_size_t |
size |
|
) |
| |
Writes data to one or more blocks after erasing them
The blocks are erased proir to being programmed
- Parameters
-
| buffer | Buffer of data to write to blocks |
| address | Address of first block to begin writing to |
| size | Size to write in bytes (multiple of read block size) |
- Returns
- True on success
| constexpr bd_size_t modm::BlockDevice::BlockSizeRead = 1 |
|
staticconstexpr |
Minimum block sizes for block device operations
Most persistent storage devices require program(), erase() and sometimes read() operations to be executed on fixed sized blocks.
The documentation for this class was generated from the following file: