Hallo zusammen, ich habe bisher immer recht erfolgreich mit AVRs gearbeitet, möchte allerdings meine "kann ich"-Bandbreite in Richtung STM32 erweitern. Bei den AVRs fand ich gerade zum Debuggen und Optimieren immer die .lss-files sehr praktisch, weil man noch einmal in einer anderen "Formulierung" lesen konnte, was man so Programmiert hat und auf diese Weise dann doch noch Fehler entdeckt hat, die man sonst immer überlesen hat. Zumindest geht das mir so. Bei den STM32 fehlt mir aktuell dieser Output. Ich kann dazu allerdings auch nichts bei Google finden. Nun wollte ich einmal fragen, ob jemand weiß, wie man vielleicht doch so ein File erzeugen lassen kann, oder ob das beim STM32-Compiler (GCC-ARM) nicht geht. Vielen Dank Grüße Michaela
Vorgehensweise analog zu GNU-toolchain für AVR. Siehe https://sourceware.org/binutils/docs-2.23.1/binutils/objdump.html#objdump z.B.
1 | arm-none-eabi-objdump -S foo.elf > foo.lss |
(Thread in Unterforum GCC verschoben)
Hey, Danke Martin, Sorry dass ich ins falsche Forum gepostet habe. Aber Danke fürs verschieben! Dein hinweis hat mich schon gut weiter gebracht. Leider klappt der Parameter -S nicht so recht. Er sollte ja dann source-code mit einfügen aber da sind wirklich nur dekompilierte Zeilen mit (für mich) nutzlosen Kommentaren. Ein Auszug:
1 | 80001fc: f202fa00 vpmax.s8 d15, d2, d0 |
2 | 8000200: 2021f843 eorcs pc, r1, r3, asr #16 |
3 | 8000204: bf00e7d1 svclt 0x0000e7d1 |
4 | 8000208: 0ff0e92d svceq 0x00f0e92d |
5 | 800020c: b00cf8d1 ldrdlt pc, [ip], -r1 |
6 | 8000210: a000f8d1 ldrdge pc, [r0], -r1 |
7 | 8000214: 9014f8d1 ; <UNDEFINED> instruction: 0x9014f8d1 |
8 | 8000218: 8018f8d1 ; <UNDEFINED> instruction: 0x8018f8d1 |
9 | 800021c: c01cf8d1 ; <UNDEFINED> instruction: 0xc01cf8d1 |
10 | 8000220: 6b4b6a0f blvs 0x92daa64 |
11 | 8000224: 6a8d6a4e bvs 0x635ab64 |
12 | 8000228: 6b8c6802 blvs 0x631a238 |
13 | 800022c: 0a0aea4b beq 0x82bab60 |
14 | 8000230: 0909ea4a stmdbeq r9, {r1, r3, r6, r9, fp, sp, lr, pc}
|
15 | 8000234: 0a08ea49 beq 0x823ab60 |
16 | 8000238: ea4ab084 b 0x92ac450 |
17 | 800023c: ea4a0a0c b 0x9282a74 |
wenn ich dem objdump aber eine Objektdatei gebe, dann kann er immerhin schon Funktionen trennen und Funktionsnamen nennen. Die Source-Code-Ausschnitte fehlen aber immernoch. Gibts dafür irgend einen Trick? oder muss ich schon beim Kompilieren irgendetwas zusätzlich angeben? Herzlichsten Dank Grüße Michaela
Gib dem Compiler mal das hier mit -g -gdwarf-2
Danke, das ist der Trick, so läufts! Gruß Michaela
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.