【发布时间】:2016-05-22 09:55:51
【问题描述】:
我的项目结构如下:
.
├── build
├── src
| ├── rbpi
| | └── gpio.h
| ├── boot.c
| ├── boot.s
| └── kernel.c
└── linker.ld
这是一个简单的树莓派内核,可以让 LED 闪烁! 我目前使用一个包含以下内容的简单 bat 文件来构建它:
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。
如果我想要以下“规则”,我的 makefile 应该是什么样子?
- 编译前,清除
build目录中的所有*.elf和*.img文件。 - 编译
src目录中的所有*.c和*.s文件。 - 将
kernel.elf文件输出到build目录下。 - 使用链接描述文件
linker.ld。 - 编译后运行
objcopy生成二进制文件。
【问题讨论】: