Meine Projektstruktur wie folgt aussieht:ein Makefile für ARM-Projekt schreiben
.
├── build
├── src
| ├── rbpi
| | └── gpio.h
| ├── boot.c
| ├── boot.s
| └── kernel.c
└── linker.ld
Dies ist eine einfache Raspberry Pi-Kernel, die eine LED blinken macht! ich zur Zeit eine einfache BAT-Datei mit folgendem Inhalt verwenden, es zu bauen:
arm-none-eabi-gcc -g -O0 -mfpu=neon-vfpv4 -mfloat-abi=hard -march=armv7-a -mtune=cortex-a7 -nostartfiles -Wl,-T,linker.ld src/kernel.c src/boot.c src/boot.s -o build/kernel.elf
arm-none-eabi-objcopy build/kernel.elf -O binary build/kernel7.img
Da ich mehrere Dateien zu diesem Projekt hinzufügen wird, würde ich jede Datei zu meiner „buildscript“ anzuhängen.
Wenn möglich, würde ich gerne eine makefile
verwenden.
Wie sollte mein Makefile aussehen, wenn ich die folgenden "Regeln" möchte?
- vor der Kompilierung, reinigen Sie alle
*.elf
und*.img
Dateien aus dem Verzeichnisbuild
. - Kompilieren Sie alle
*.c
und*.s
Dateien aus dem Verzeichnissrc
. - Die
kernel.elf
Datei in das Verzeichnisbuild
ausgeben. - Verwenden Sie das Linker-Skript
linker.ld
. - Führen Sie nach der Kompilierung
objcopy
aus, um eine Binärdatei zu generieren.
Vielen Dank! :) –