Добрый день! Столкнулся с вот такой проблемой:
Использую IAR ARM v8.32 для MSP432F411V.
Необходимо задать константу по определённому адресу с квалификатором volatile.
Код:
__root volatile conct uint8_t Data @ 0x00206000= 0x55;
Почему с квалификатором volatile - потому что я её перезаписываю в процессе работы.
А читаться она должна как константа.
Ошибка:
Линковщик не размещает данную константу в hex файле.
Если квалификатор volatile убрать, то линковщик разместит константу там, где надо.
Проблему должна решать директива __root, которая говорит компилятору и линковщику - не выкидывать код или данные, даже если они не используются.
Однако получается что квалификатор volatile пересиливает директиву __root. Компилятор(Линковщик) решает, что это не константа и не размещает её во FLASH.
Вопрос - как это победить?