Tanken är att man har ett lager som kallas t.ex "vars.c" och ha funktiner som:
Kod: Markera allt
void varWrite( index, dataPtr*); // skriver in data till ett givet index, med motsvarnde storlek
void* varRead( index ); // returnerar en pekare till objektet man vill läsa ut.
Detta "index" skulle jag vilja koppla till
- vart variabeln är lagrad, t.ex eeprom, flash-minne
- adress som variabeln ligger på.
- storlek på variabeln.
Men jag får inte riktigt till det så att man får överblick på minnesmappen.
ex:
Kod: Markera allt
typedef struct
{
uint32_t address; // offset in bytes where to find the object in a 128 byte block of data
uint32_t numBytes; // size of the item
uint32_t location; // which page number the variable corresponds to.
}varItem_t;
VarItem_t memmap[] = { { APA_ADDR, sizeof(uint16_t) , EEPROM}, // Index 0, variable Apa
{ APA_ADDR + sizeof( uint16_t), EEPROM} }; // Index 1, variabel Ko
typedef enum
{
APA_INDEX = 0,
KO_INDEX = 1,
}
Har ni något förslag på hur man kan göra detta på ett snyggare sätt?