548Fermer550
hwtiLe 17/01/2010 à 04:06
Il faut linker avant de convertir en binaire, donc utiliser ld ou ne pas mettre -c

J'essaye :
arm-elf-gcc -nostdlib -fpic -Os test.c -o test.elf
arm-elf-objcopy -O binary test.elf test.bin


Mais j'ai un gros offset entre .text/.rodata et .data.
Et il persiste à créer une table d'offsets absolus dès qu'il y a quelque chose dans .data.
Pourtant il accède à cette table en relatif PC.


Sinon, pour le loader on peut supprimer -fpic, et imposer une adresse de base :
arm-elf-gcc -nostdlib -Ttext=0x00100000 -Os test.c -o test.elf
et fait en assembleur un bout de code (indépendant de la position lui) qui mappe l'adresse physique à laquelle le code a été chargé en 0x00100000.