Возможности компилятора IAR:
uint8 __eeprom * p; //указатель на EEPROM
__eeprom uint8 a=1; //переменная в EEPROM
uint8 b=2; //переменная в RAM
Далее можно свободно творить такое:
*p = a + b;
Т.е. синтаксис как для обычных переменных без домыслов об их расположении.
Притом вместо uint8 может быть даже любой определенный typedef тип, например огромная структура.
ВОПРОС
Есть вот такие функции для взаимодействия с энергонезависимой памятью (FRAM):
void f24write(uint16 adr, void* p, uint8 num)
void f24read(void* p, uint16 adr, uint8 num)
где
adr – адрес в FRAM
p - указатель на RAM самого МК
num – количество байт.
Возможно ли реализовать с помощью C++ взаимодействие аналогичное по синтаксису с __eeprom?
Т.е. чтоб в итоге можно было писать, что типа того:
uint8 __fram * p; //указатель на FRAM
__fram uint8 a=1; //переменная в FRAM
uint8 b=2; //переменная в RAM
*p = a + b;