Добрый день.
Стоит задача сохранить в eeprom несколько байт данных. Сохраняю по 3 набора данных и пытаюсь отделить их друг от друга разделительной областью:
Код
__eeprom unsigned char var1;
__eeprom unsigned char area1[32];
__eeprom unsigned char var2;
__eeprom unsigned char area2[32];
__eeprom unsigned char var3;
__eeprom unsigned char area3[32];
Компилятор упорно оптимизирует эти разделительные области т.к. я к ним не обращаюсь.
Приходится вводить фиктивное обращение к ним чтобы обмануть компилятор.
Подскажите пожалуйста как явно указать компилятору чтобы он не оптимизировал эти области.
Пробовал использовать __require(area1) выдаёт следующие ошибки:
Код
Error[Pe147]: declaration is incompatible with "void __require(void *)" (declared at line 57 of "C:\Program Files\IAR Systems\IAR AVR\ D:\projects\Kotel\IAR\eeprom.h 36
Error[Pe144]: a value of type "unsigned char __eeprom *" cannot be used to initialize an entity of type "int" D:\projects\Kotel\IAR\eeprom.h 36
Подскажите как в IARe решается эта проблема.