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
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.
Auch mit der Zeile: CFLAGS += -Wa,-adhlns="$@.lst" wird ein namenloses .lst File erstellt, was immer wieder überschrieben wird. ???
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.
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.
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?
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.