crt0.o et crt1.o — Quelle est la différence?
Récemment, j'ai essayé de debug de bas niveau travail et je ne pouvais pas trouver la crt0.S
pour le compilateur (avr-gcc) mais j'ai trouvé un crt1.S
(et la même chose avec le correspondant .o
fichiers).
Quelle est la différence entre ces deux fichiers? Est crt1
quelque chose de complètement différent ou quoi? Ils semblent tous deux avoir à faire avec quelque chose pour 'bootstrap' (mise en place de stack frame
et par exemple), mais pourquoi cette distinction?
Vous devez vous connecter pour publier un commentaire.
Les deux crt0/crt1 faire la même chose, en gros faire ce qui est nécessaire avant l'appel de main() (comme l'initialisation de la pile, paramètre irq, etc.). Vous devriez avoir un lien avec l'un ou l'autre mais pas les deux. Ils ne sont pas vraiment des bibliothèques, mais vraiment assembly en ligne de code.
Comme je le comprends, le crt est disponible en deux "saveurs"
crtbeginT.o
etcrtend.o
qui sont les consructors et destructeurs.