mbed.org local branch of microbit-dal. The real version lives in git at https://github.com/lancaster-university/microbit-dal

Dependencies:   BLE_API nRF51822 mbed-dev-bin

Dependents:   microbit Microbit IoTChallenge1 microbit ... more

Embed: (wiki syntax)

« Back to documentation index

MicroBitStorage Class Reference

MicroBitStorage Class Reference

Class definition for the MicroBitStorage class. More...

#include <MicroBitStorage.h>

Public Member Functions

 MicroBitStorage ()
 Default constructor.
int writeBytes (uint8_t *buffer, uint32_t address, int length)
 Writes the given number of bytes to the address specified.
void flashPageErase (uint32_t *page_address)
 Method for erasing a page in flash.
void flashWordWrite (uint32_t *address, uint32_t value)
 Method for writing a word of data in flash with a value.
int put (const char *key, uint8_t *data, int dataSize)
 Places a given key, and it's corresponding value into flash at the earliest available point.
int put (ManagedString key, uint8_t *data, int dataSize)
 Places a given key, and it's corresponding value into flash at the earliest available point.
KeyValuePair * get (const char *key)
 Retreives a KeyValuePair identified by a given key.
KeyValuePair * get (ManagedString key)
 Retreives a KeyValuePair identified by a given key.
int remove (const char *key)
 Removes a KeyValuePair identified by a given key.
int remove (ManagedString key)
 Removes a KeyValuePair identified by a given key.
int size ()
 The size of the flash based KeyValueStore.

Detailed Description

Class definition for the MicroBitStorage class.

This allows reading and writing of small blocks of data to FLASH memory.

This class operates as a key value store, it allows the retrieval, addition and deletion of KeyValuePairs.

The first 8 bytes are reserved for the KeyValueStore struct which gives core information such as the number of KeyValuePairs in the store, and whether the store has been initialised.

After the KeyValueStore struct, KeyValuePairs are arranged contiguously until the end of the block used as persistent storage.

|-------8-------|--------48-------|-----|---------48--------| | KeyValueStore | KeyValuePair[0] | ... | KeyValuePair[N-1] | |---------------|-----------------|-----|-------------------|

Definition at line 86 of file MicroBitStorage.h.


Constructor & Destructor Documentation

Default constructor.

Class definition for the MicroBitStorage class.

Creates an instance of MicroBitStorage which acts like a KeyValueStore that allows the retrieval, addition and deletion of KeyValuePairs.

This allows reading and writing of FLASH memory. Default constructor.

Creates an instance of MicroBitStorage which acts like a KeyValueStore that allows the retrieval, addition and deletion of KeyValuePairs.

Definition at line 41 of file MicroBitStorage.cpp.


Member Function Documentation

void flashPageErase ( uint32_t *  page_address )

Method for erasing a page in flash.

Parameters:
page_addressAddress of the first word in the page to be erased.

Definition at line 72 of file MicroBitStorage.cpp.

void flashWordWrite ( uint32_t *  address,
uint32_t  value 
)

Method for writing a word of data in flash with a value.

Parameters:
addressAddress of the word to change.
valueValue to be written to flash.

Definition at line 124 of file MicroBitStorage.cpp.

KeyValuePair * get ( const char *  key )

Retreives a KeyValuePair identified by a given key.

Parameters:
keythe unique name used to identify a KeyValuePair in flash.
Returns:
a pointer to a heap allocated KeyValuePair struct, this pointer will be NULL if the key was not found in storage.
Note:
it is up to the user to free memory after use.

Definition at line 331 of file MicroBitStorage.cpp.

KeyValuePair * get ( ManagedString  key )

Retreives a KeyValuePair identified by a given key.

Parameters:
keythe unique name used to identify a KeyValuePair in flash.
Returns:
a pointer to a heap allocated KeyValuePair struct, this pointer will be NULL if the key was not found in storage.
Note:
it is up to the user to free memory after use.

Definition at line 383 of file MicroBitStorage.cpp.

int put ( const char *  key,
uint8_t *  data,
int  dataSize 
)

Places a given key, and it's corresponding value into flash at the earliest available point.

Parameters:
keythe unique name that should be used as an identifier for the given data. The key is presumed to be null terminated.
dataa pointer to the beginning of the data to be persisted.
dataSizethe size of the data to be persisted
Returns:
MICROBIT_OK on success, MICROBIT_INVALID_PARAMETER if the key or size is too large, MICROBIT_NO_RESOURCES if the storage page is full

Definition at line 217 of file MicroBitStorage.cpp.

int put ( ManagedString  key,
uint8_t *  data,
int  dataSize 
)

Places a given key, and it's corresponding value into flash at the earliest available point.

Parameters:
keythe unique name that should be used as an identifier for the given data.
dataa pointer to the beginning of the data to be persisted.
dataSizethe size of the data to be persisted
Returns:
MICROBIT_OK on success, MICROBIT_INVALID_PARAMETER if the key or size is too large, MICROBIT_NO_RESOURCES if the storage page is full

Definition at line 316 of file MicroBitStorage.cpp.

int remove ( const char *  key )

Removes a KeyValuePair identified by a given key.

Parameters:
keythe unique name used to identify a KeyValuePair in flash.
Returns:
MICROBIT_OK on success, or MICROBIT_NO_DATA if the given key was not found in flash.

Definition at line 396 of file MicroBitStorage.cpp.

int remove ( ManagedString  key )

Removes a KeyValuePair identified by a given key.

Parameters:
keythe unique name used to identify a KeyValuePair in flash.
Returns:
MICROBIT_OK on success, or MICROBIT_NO_DATA if the given key was not found in flash.

Definition at line 468 of file MicroBitStorage.cpp.

int size (  )

The size of the flash based KeyValueStore.

Returns:
the number of entries in the key value store

Definition at line 478 of file MicroBitStorage.cpp.

int writeBytes ( uint8_t *  buffer,
uint32_t  address,
int  length 
)

Writes the given number of bytes to the address specified.

Parameters:
bufferthe data to write.
addressthe location in memory to write to.
lengththe number of bytes to write.
Note:
currently not implemented.

Definition at line 58 of file MicroBitStorage.cpp.