Forum: Compiler & IDEs Assembly listing zusammen mit C-Code ausgeben


von Bernhard _. (Firma: dl1bg) (bernhard_)


Angehängte Dateien:

Lesenswert?

Hallo ihr,

ich weiß, dass es dazu schon einiges gibt, leider bringe ich es trotzdem 
nicht zum Laufen.

Ich arbeite mit G++ und dem angehängten Makefile.

Das .s kann ich mir noch ausgeben lassen mit dem folgenden Aufruf
$$(CPP_OBJECTS_$(1)): $(OBJ)/$(1)_%.o: %.cpp Makefile $(OBJ) $(BIN)
  $(CPP)  -S -c $(CFLAGS) $(CPPFLAGS) $$<
  $(CPP) $(CFLAGS) $(CPPFLAGS) -c -o $$@ $$<

Nach
http://www.delorie.com/djgpp/v2faq/faq8_20.html
habe ich weitergemacht, leider ging
$$(CPP_OBJECTS_$(1)): $(OBJ)/$(1)_%.o: %.cpp Makefile $(OBJ) $(BIN)
  $(CPP)  -S -c $(CFLAGS) $(CPPFLAGS) $$<
  $(CPP)  -c -g -Wa,-a,-ad $(CFLAGS) $(CPPFLAGS) $$< > %.lst
  $(CPP) $(CFLAGS) $(CPPFLAGS) -c -o $$@ $$<
gründlich schief, es kommt
make all
arm-none-eabi-g++  -S -c -Wall -ffunction-sections -g -Os 
-IC:\cygwin\tmp\ecos_stm32_install/include -Iapp/../ -Ilibs/libstm32/inc 
-DTRACE_LEVEL=TRACE_LEVEL_NO_TRACE -mcpu=cortex-m3 -mthumb -fno-rtti 
-fno-exceptions main2.cpp
arm-none-eabi-g++  -c -g -Wa,-a,-ad -Wall -ffunction-sections -g -Os 
-IC:\cygwin\tmp\ecos_stm32_install/include -Iapp/../ -Ilibs/libstm32/inc 
-DTRACE_LEVEL=TRACE_LEVEL_NO_TRACE -mcpu=cortex-m3 -mthumb -fno-rtti 
-fno-exceptions main2.cpp > %.lst
main2.cpp:13:28: error: cyg/infra/diag.h: No such file or directory

heraus.

Kann mir jemand helfen?

Danke
Bernhard

von Axel S. (a-za-z0-9)


Lesenswert?

Bernhard __ schrieb:
> ich weiß, dass es dazu schon einiges gibt, leider bringe ich es trotzdem
> nicht zum Laufen.
>
> Ich arbeite mit G++ und dem angehängten Makefile.

<schnipp>

Warum machst du es dir so schwer? Ich mache mir ein globales Listing aus 
dem ELF-File mit folgender make-Regel:

1
disasm: $(TARGET).elf                                                           
2
        $(OBJDUMP) -d -S $(TARGET).elf >$(TARGET).disasm

Funktioniert zumindest für AVR einwandfrei. Voraussetzung: du hast ein 
-g in den CFLAGS/CXXFLAGS.


XL

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.