ibiza11 писал(а):Но мне кажется в данном случае Вы заблуждаетесь. в STM32L EEPROM отображается в общее адресное пространство на адреса начиная с 0x08080000.
Следовательно переменную можно разместить там явно, указав ее адрес.
Если оно так, то, с придираясь к тонкой игре слов, "разместить" ее там нельзя (нельзя ж туда записать чтото просто сказав *(uint8_t *) 0x08080000 = 1 ?), можно только объяснить линкеру, что неким чудным образом переменная там есть.
в случае IAR'а:
__no_init char var1 @ 0x08080000;
__root, если переменная используется, не нужен. это инструкция линкеру не выкидывать переменную, даже если в коде ее никто не использует.
но надо понимать, что на запись переменная так работать не будет. В отличии от атмел авр студио, где несмотря на какбе си, есть механизм, схожий с плюсовым переопределенным оператором-функцией, которой записывает значение в еепром.
флеш то он тоже напрямую адресуется, только с записью те же грабли -))