2014-05-13 4 views
0

Je souhaite utiliser dans mon code source l'adresse de fin (en tant que valeur d'une variable) de mon programme qui sera stockée dans la ROM après le téléchargement. J'ai trouvé le moyen d'utiliser les symboles de code source définis dans le fichier de script de l'éditeur de liens, mais je n'ai trouvé aucun symbole lié à l'adresse de fin du programme.Utilisation de l'adresse de fin du programme en tant que valeur d'une variable

Avez-vous une idée de comment puis-je obtenir cette information?

Merci pour l'aide. Cordialement.

+1

En gcc vous définissez ceci à la fin de votre script de liaison. Cela pourrait être similaire pour iar. Vérifiez attentivement le manuel, je dis. – auselen

+0

Merci pour la réponse rapide. Dans le script du linker, seule l'adresse de fin de la région Rom est définie, mais celle-ci est différente de l'adresse de fin réelle du programme qui sera stockée dans le Rom. – user3632489

+0

On dirait que vous avez besoin de travailler sur le script de l'éditeur de liens plus. Je ne sais pas à propos de iar, mais des changements subtils dans le placement dans un script de lieur gnu ld font une énorme différence. –

Répondre

0

Vous pouvez utiliser la fonction intrinsèque __segment_end. Par exemple (en supposant le code est stocké dans le segment CODE):

#pragma segment="CODE" 

void * my_f(void) { return __segment_end("CODE"); } 
Questions connexes