Accéder aux symboles définis dans le script de l'éditeur de liens par application

Dans mon linker le fichier de script, j'ai défini deux symboles

define symbol _region_RAM_start__     = 0xC0000000;
define symbol _region_RAM_end__       = 0xC00fffff; 

et puis j'ai exporté en tant que bien comme montré ci-dessous

export symbol _region_RAM_start__;
export symbol _region_RAM_end__;

De l'application du code, j'essaie d'accéder à ces symboles

extern const unsigned int _region_RAM_start__;
extern const unsigned int _region_RAM_end__;
....
int GetRAMSize()
{
    int size = 0;
    unsigned int address_1 = _region_RAM_start__;
    unsigned int address_2 = _region_RAM_end__;
    size = address_2 - address_1 + 1U;
    return size;
}

Maintenant, j'attend le retour de la valeur de la 0x00100000, cependant, tout ce que je reçois est de 0.
Donc, quand je me suis tourné vers le débogueur, j'ai remarqué qu' _région_RAM_start__ et _région_RAM_fin__ ont les valeurs 0xC0000000 et 0xC00fffff respectivement, mais address_1 et address_2 ont la valeur 0.

L'optimisation du compilateur est réglé sur "None". Cela a été m'énerve pour un certain temps maintenant. Est là quelque chose de très évident, je suis absent ici (autre que je ne devrais pas faire cela en premier lieu)?

Solution
Grâce à n.m. pour la réponse

  unsigned int address_1 = (unsigned int) (&_region_RAM_start__);

Sinon address_1 et address_2 les deux contiennent des ordures valeurs (valeurs disponibles à l'adresse 0xC0000000 et 0xC00fffff respectivement, mais les ordures du point de vue de ce code)

source d'informationauteur ka05