Forum: Compiler & IDEs .lss-file von code für den STM32 erzeugen möglich?


von Michaela (Gast)


Lesenswert?

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

von Martin T. (mthomas) (Moderator) Benutzerseite


Lesenswert?

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)

von Michaela (Gast)


Lesenswert?

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

von holger (Gast)


Lesenswert?

Gib dem Compiler mal das hier mit

-g -gdwarf-2

von Michaela (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.