Forum: Compiler & IDEs Makefile Atmel ARM assembler listing erstellen


von X- R. (x-rocka)


Angehängte Dateien:

Lesenswert?

Moin,

ich nutze den Atmel SAM3U (ARM Cortex M3) mit der gcc arm-none-eabi 
Toolchain.
Funktioniert alles prima, nur würde ich gerne assembler listings 
erstellen, diese hübschen *.lst-Files.

Mit diesen zusätzlichen Compiler Flags bekomme ich schon mal ein .lst 
File, dummerweise aber nur eins, da der Compiler die Namen der .c oder 
.o Files nicht übernimmt:
CFLAGS += -Wa,-adhlns=$(subst $(suffix $<),$(ASMLST)/.lst,$<)

".lst" ist am Ende der Kompilierung also das List File für den letzten 
Eintrag, im angehängten Makefile also C_OBJECTS += systick.o .

Kann mir bitte jemand helfen, wie ich dem Makefile beibringe, mir zu 
jedem .c ein .lst zu machen?

Danke,
X

von X- R. (x-rocka)


Lesenswert?

Keiner? :(

von ich (Gast)


Lesenswert?

Hast du das mal versucht? Beitrag "ARM-Entwicklung mit Eclipse & CodeSourcery: asm-listings löschen" 
Gib mir dann Bescheid wenn du rausgefunden hast wie man die automatisch 
wieder löscht.

von X- R. (x-rocka)


Lesenswert?

Auch mit der Zeile:
CFLAGS += -Wa,-adhlns="$@.lst"

wird ein namenloses .lst File erstellt, was immer wieder überschrieben 
wird.

???

von Rolf Magnus (Gast)


Lesenswert?

Ist das oben gezeigte wirklich das Makefile, bei dem's nicht tut? Ist es 
in einem Unterverzeichnis eines rekursiven make-Aufrufs?
Ich vermute, daß CFLAGS schon vorher irgendwo definiert wurde, und zwar 
mit :=. Dann   wird nämlich alles zum Zeitpunkt der Variablendefinition 
expandiert (bzw. dort, wo du das += machst) und nicht erst dort, wo sie 
eingesetzt wird.

von X- R. (x-rocka)


Lesenswert?

Rolf Magnus schrieb:
> Ist das oben gezeigte wirklich das Makefile, bei dem's nicht tut? Ist es
> in einem Unterverzeichnis eines rekursiven make-Aufrufs?
> Ich vermute, daß CFLAGS schon vorher irgendwo definiert wurde, und zwar
> mit :=. Dann   wird nämlich alles zum Zeitpunkt der Variablendefinition
> expandiert (bzw. dort, wo du das += machst) und nicht erst dort, wo sie
> eingesetzt wird.

Das Makefile befindet sich in im Projektverzeichnis, und "make all" wird 
als Programmer's Notepad Tool aufgerufen.
Keine Ahnung, wo CFLAGS schon definiert worden sein sollte. Die Suche 
zeigt, dass nur im Makefile CFLAGS existiert.
Hab's probiert, kompiliert auch mit "CFLAGS =" in erster Zeile.
Was muss ich tun, damit die .lst Files auch die Namen der .c-Files 
übernehmen. Habe schon ganz viel rumprobiert.

von Rolf Magnus (Gast)


Lesenswert?

Wie sieht es mit den hier eingebundenen Files aus:
1
# Compile with chip specific features
2
include $(AT91LIB)/boards/$(BOARD)/$(CHIP)/chip.mak
3
4
# Compile for all memories available on the board (this sets $(MEMORIES))
5
include $(AT91LIB)/boards/$(BOARD)/board.mak

Wird da was an den CFLAGS gemacht?

von X- R. (x-rocka)


Lesenswert?

Rolf Magnus schrieb:
> Wie sieht es mit den hier eingebundenen Files aus:
>
>
1
> # Compile with chip specific features
2
> include $(AT91LIB)/boards/$(BOARD)/$(CHIP)/chip.mak
3
> 
4
> # Compile for all memories available on the board (this sets
5
> $(MEMORIES))
6
> include $(AT91LIB)/boards/$(BOARD)/board.mak
7
>
>
> Wird da was an den CFLAGS gemacht?

Nein. Da wird unter anderem "MEMORIES" spezifiziert, für die make all 
Schleife unten im Makefile.

Auf jeden Fall schon mal vielen Dank für die Hilfe!

chip.mak:
1
# Defines which are the specific available IP for the chip AT91SAM3U4
2
CHIP_CORE    = cortexm3
3
CHIP_IP_EFC  = EEFC
4
CHIP_IP_MCI  = MCI_DMA
5
CHIP_IP_SSC  = SSC_DMA

board.mak:
1
# Defines which are the available memory targets for the AT91SAM3UE-EK board.
2
MEMORIES = sram flash psram

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.