Цитата(yung @ Jan 13 2012, 16:37)

Здравствуйте! Работаю с Atmega128 и компилятором ICC6.31. Возникла необходимость, чтобы ряд глобальных переменных находился по фиксированным адресам.
Читая последние ответы можно подумать что нормального способа сделать это нет. Но, к счастью, это не так. Отсутствие возможности разместить перемееную по конкретному адресу звучит для меня настолько дико, что я просто не могу в это поверить.
Никогда не пользовался ICC-шным компилятором, но все же не поленился залезь в хелп у них на сайте, где нашел такое:
Код
#pragma abs_address
In a C file, put the following:
#pragma abs_address:0x1000
unsigned LCD_control_register;
#pragma end_abs_address
#pragma abs_address:0x2000
unsigned char dual_port_SRAM[100];
#pragma end_abs_address
These variables may be declared as extern per the usual C rules in other files. Note that you cannot initialize them in the declarations.
Насколько я понимаю, это именно то, что вам требуется.
P.S. Раздел хелпа "Addressing Absolute Memory Locations". Там еще про то же на ассемблере.