Hi,
so wäre es mal einen Versuch Wert:

1. Im SourceCode eine Section angeben wo die Variable hin soll
unsigned int VariableAtFixAdress __attribute__ ((section (".FixAdressSection"))) ;

2. Im makefile diese Section definieren und angeben wo diese liegen soll.
Bei RAM Adress definitionen muß immer 0×800000 addiert werden, damit der Compiler/Linker weiss daß es sich um RAM handelt.
CFLAGS += -Wl,-section-start=.FixAdressSection=0x800080

3. Make aufrufen und anschließend in das *.map File schauen, da müsste jetzt sowas auftauchen wie
.FixAdressSection
0x00800080 0x2

d.h. daß ab Adresse 0x80 - 2 Bytes reserviert sind.

Aufpassen muß man mit Adress Überlappungen und dem Stackbereich. Am besten die ".data" - Section verkleinern, damit der Linker da nix hinlegt.