modm API documentation
|
Block device using heap (RAM) More...
#include <modm/driver/storage/block_device_heap.hpp>
Public Typedefs | |
using | bd_address_t = uint32_t |
using | bd_size_t = uint32_t |
Public Member Functions | |
bool | initialize () |
Initializes the memory with zeros. | |
bool | initialize (uint8_t *externalMemoryAddress) |
Data will be stored at externalMemoryAddress. | |
bool | deinitialize () |
Deinitializes nothing. | |
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) |
void | setMemoryAddress (uint8_t *memory) |
Block device using heap (RAM)
Usually not persistant, but at least useful for testing. This is also useful for battery backed SRAM, some STM32 have up to 4kB of this stuff.
DeviceSize | The size of the block device |
externalMemory | Set to true to use an external supplied memory block (see initialize(uint8_t*) ) |
bool modm::BdHeap< DeviceSize_, externalMemory >::erase | ( | bd_address_t | address, |
bd_size_t | size | ||
) |
Erase blocks
The state of an erased block is undefined until it has been programmed
address | Address of block to begin erasing |
size | Size to erase in bytes (multiple of read block size) |
bool modm::BdHeap< DeviceSize_, externalMemory >::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
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) |
bool modm::BdHeap< DeviceSize_, externalMemory >::read | ( | uint8_t * | buffer, |
bd_address_t | address, | ||
bd_size_t | size | ||
) |
Read data from one or more blocks
buffer | Buffer to read data into |
address | Address to begin reading from |
size | Size to read in bytes (multiple of read block size) |
bool modm::BdHeap< DeviceSize_, externalMemory >::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 prior to being programmed
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) |