Éditeurs de liens, chargeurs et exécutables

Quel est le rôle d'un script d'édition de liens (linker script) utilisé en développement embarqué ?

  1. AIndiquer à l'éditeur de liens à quelles adresses, en flash ou en RAM notamment, placer chaque section
  2. BDécrire la procédure d'exécution automatique des tests du programme
  3. CDéfinir les règles d'écriture du code source et signaler les violations
Afficher la réponse et l'explication

Réponse : A. Indiquer à l'éditeur de liens à quelles adresses, en flash ou en RAM notamment, placer chaque section

Avec un OS de PC, le chargeur fixe les adresses, mais sur un microcontrôleur, les adresses présentes à la mise sous tension sont utilisées telles quelles. Le script d'édition de liens indique l'adresse de début et la taille de la flash et de la RAM, et spécifie l'agencement, par exemple .text et les constantes en flash, .data, .bss et la pile en RAM. Les éléments qui doivent se trouver à une adresse fixe, comme les vecteurs d'interruption, y sont aussi spécifiés.

S'entraîner sur ce thème Retour au thème

Autres questions sur Éditeurs de liens, chargeurs et exécutables

  1. Sur un microcontrôleur sans OS, quel traitement le code de démarrage effectue-t-il juste après la mise sous tension, avant d'appeler main ?
  2. Quelle est la différence correcte entre « section » et « segment » dans un fichier ELF ?
  3. Quelle attaque est plus facile à prévenir en n'autorisant jamais simultanément « inscriptible » et « exécutable » sur une page mémoire (W^X, séparation écriture-exécution) ?
  4. Sous Linux, dans quel cas incrémente-t-on généralement le numéro de version du soname, comme le « .1 » de libfoo.so.1 ?
  5. Que permet de savoir la commande ldd appliquée à un exécutable sous Linux ?

Comparatifs sur ce thème