Моей структура проекта выглядит следующим образом:Дать Makefile для ARM проекта
.
├── build
├── src
| ├── rbpi
| | └── gpio.h
| ├── boot.c
| ├── boot.s
| └── kernel.c
└── linker.ld
Это простая малина пи ядро, которое делает LED мигает! В настоящее время я использую простой файл летучей мыши со следующим содержанием, чтобы построить его:
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
Поскольку я добавлять новые файлы в этот проект, я бы добавить все файлы в мой «buildscript».
Если возможно, я хотел бы использовать makefile
.
Как должен выглядеть мой make-файл, если мне нужны следующие «правила»?
- Перед компиляцией, очистить все
*.elf
и*.img
файлы из каталогаbuild
. - Скомпилируйте все
*.c
и*.s
файлы из каталогаsrc
. - Выведите файл
kernel.elf
в каталогbuild
. - Используйте сценарий компоновщика
linker.ld
. - После компиляции запустите
objcopy
для создания двоичного файла.
Большое спасибо! :) –