Ну прочтите же, наконец, документацию!

Перемещаем .data
WinAVR 20060421, avr-libc-user-manual-1.4.4.pdf
8.7.2 The .data Section
This section contains static data which was defined in your code. Things like the fol-
lowing would end up in .data:
Код
char err_str [] = "Your program has died a horrible death!";
struct point pt= { 1, 1 };
It is possible to tell the linker the SRAM address of the beginning of the .data section.
This is accomplished by adding -Wl,-Tdata,addr to the avr-gcc command
used to the link your program. Not that addr must be offset by adding 0x800000
the to real SRAM address so that the linker knows that the address is in the SRAM
memory space. Thus, if you want the .data section to start at 0x1100, pass 0x801100
at the address to the linker.

Для того, чтобы привязать переменную к абсолютному адресу, можно назначить ей уникальное имя секции при помощи указания атрибута. Способ указания атрибутов переменных рассмотрен в gcc.pdf, раздел 5.32 Specifying Attributes of Variables.
Вот пример :
Код
int my_glob_var __attribute__ (( section ("my_glob_var") ));

Как переместить секцию, написано в разделе 8.10.3 файла avr-libc-user-manual-1.4.4.pdf
Если линковка выполняется из avr-gcc, а не прямым вызовом avr-ld, то в командной строке (или в строке Makefile, где вызывается avr-gcc, надо написать -Wl,--section-start=.my_glob_var=0x801234