Go Down

Topic: générer le code asm ? (Read 1 time) previous topic - next topic

vohu

Bonsoir,


Je voulais savoir si y avait possibilité de convertir le programme en asm depuis la source C, ou depuis le fichier .hex ?

Merci :)

skywodd

Salut,

Si tu veut obtenir le code assembleur d'un fichier .hex .elf ou .c (en le compilant avant), voici un makefile qui le permet :
Code: [Select]
TARGET = atmega328p
OBJECT = main.c

COMPILER = avr-gcc -mmcu=$(TARGET) -Wall -Os -DF_CPU=16000000
OBJCOPY = avr-objcopy -O ihex
OBJCOPYBIN = avr-objcopy -I ihex -O binary
OBJCOPYELF = avr-objcopy -I binary -B avr -O elf32-avr
OBJDUMP = avr-objdump
OBJSIZE = avr-size --mcu=$(TARGET)

all: clean elf hex asm size

elf: $(OBJECT)
$(COMPILER) -o $(OBJECT).elf $(OBJECT)

hex: $(OBJECT).elf
$(OBJCOPY) $(OBJECT).elf $(OBJECT).hex

asm: $(OBJECT).elf
$(OBJDUMP) -d $(OBJECT).elf > $(OBJECT).S

size: $(OBJECT).hex
$(OBJSIZE) $(OBJECT).elf
$(OBJSIZE) $(OBJECT).hex

clean:
rm -f *.elf *.hex *.S

make all -> compile le fichier source .c en .elf, puis le transforme en .S (asm) et génère le .hex associé
make elf -> compile le fichier source .c en .elf
make hex -> transforme le .elf en .hex
make asm -> transforme le .elf en .S
make size -> affiche la taille du programme compilé .hex
make clean -> fait le ménage en supprimant tout les fichiers .elf .hex et .S du dossier courant
Des news, des tutos et plein de bonnes choses sur http://skyduino.wordpress.com !

barbudor


skywodd


Code: [Select]
avr-g++  -S  test.cpp

Roo ! C'est de la triche il a dit "depuis la source C, ou depuis le fichier .hex" :P
Des news, des tutos et plein de bonnes choses sur http://skyduino.wordpress.com !

barbudor

Ah, depuis du C ?
Alors
Code: [Select]
avr-gcc  -S  test.c

XD

Go Up