Updated memory storage functionality

- cachedStorage is functional
- Presets can be loaded from FLASH
- CRC32 added and applied
- Presets with corrputed data will be replaced by default preset

Next: Preset update functionality from menu 

git-svn-id: https://svn.vbchaos.nl/svn/hsb/trunk@269 05563f52-14a8-4384-a975-3d1654cca0fa
This commit is contained in:
mmi
2017-11-02 12:58:27 +00:00
parent 76783a6061
commit 4901cb1a09
27 changed files with 894 additions and 144 deletions

View File

@@ -56,15 +56,25 @@
// Function definitions
// -----------------------------------------------------------------------------
ErrorStatus MemoryDevice_construct(struct MemoryDevice* self, uint32_t startAddress, uint32_t endAddress, MemoryReadFunction read, MemoryWriteFunction write, MemoryErasePageFunction erasePage)
ErrorStatus MemoryDevice_construct(struct MemoryDevice* self, uint32_t startAddress, uint32_t endAddress, uint32_t pageSize, bool needsEraseBeforeWrite, MemoryReadFunction read, MemoryWriteFunction write, MemoryErasePageFunction erasePage)
{
ErrorStatus returnValue = SUCCESS;
self->_read = read;
self->_write = write;
self->_erasePage = erasePage;
self->startAddress = startAddress;
self->endAddress = endAddress;
if (!self->initialized)
{
self->_read = read;
self->_write = write;
self->_erasePage = erasePage;
self->startAddress = startAddress;
self->endAddress = endAddress;
self->pageSize = pageSize;
self->initialized = true;
self->needsEraseBeforeWrite = needsEraseBeforeWrite;
}
else
{
returnValue = ERROR;
}
return returnValue;
}