1

Puisque je vois qu'il y a des spécialistes de gcc sur ce forum je me lance.

Lors du tutorial de gbajunkie.co.uk, je compile un exemple pour afficher un sprite pacman au milieu de l'écran.

Si j'utilise les commandes suivantes (utilisées sur le site en question):
gcc -o ch4a.elf ch4a.cpp -lm
objcopy -O binary ch4a.elf ch4a.bin
j'obtiens un exécutable qui marche bien.

Par contre, si j'utilise les commandes suivantes (façon de faire trouvée dans d'autres sites) :
gcc -c -O3 -mthumb -mthumb-interwork -o ch4a.o ch4a.cpp
gcc -mthumb -mthumb-interwork -o ch4a.elf ch4a.o
objcopy -O binary ch4a.elf ch4a.bin
j'obtiens un exécutable qui ne marche pas (il y a seulement une tâche bleue en haut à gauche de l'écran)

J'aimerais connaître la raison de cette différence de comportement, et ce que représentent les paramètres de gcc dans la deuxième compil (qui marche sur d'autres exemples).

Merci par avance.

2

>gcc -o ch4a.elf ch4a.cpp -lm
Creation du fichier ELF a partir de la source avec a jout de la bibliotheque mathematique (lm)

>objcopy -O binary ch4a.elf ch4a.bin
Trandformation du format ELF en format binaire.

>gcc -c -O3 -mthumb -mthumb-interwork -o ch4a.o ch4a.cpp
Creation du fichier objet (-c) compile en mode Thumb.

>gcc -mthumb -mthumb-interwork -o ch4a.elf ch4a.o
Creation du fichier ELF a partir du (des) fichiers objets.

>objcopy -O binary ch4a.elf ch4a.bin
Creation du fichier Binaire.

Pkoi ca marche pas ?
Au demarrage ton systeme boote en mode ARM et pas THUMB. Donc tu dois ajouter une ligne permettant de swapper du mode ARM au mode THUMB. Un fichier u=init.s par xemple smile
Enleve les refs a thumb et ca marchera.