Я пишу программное обеспечение для микроконтроллеров ARM на C, используя Linux, и я не использую IDE. Причина этого состоит в том, чтобы узнать, как работают действительно низкоуровневые вещи. Теперь я хочу включить .h
файл, который имеет соответствующий .c
файл, в мою main.c
программу "обычным способом", написав #include "timer.h"
. Это, конечно, требует от меня как-то изменить Makefile и / или linkerscript !?
Как я могу это сделать?
Прямо сейчас файл timer.h
включен, но прямо в Makefile, как это:
LD=arm-none-eabi-gcc
OBJCOPY=arm-none-eabi-objcopy
CFLAGS=-mcpu=cortex-m3 -mthumb -g -std=c99 -Wall
LDFLAGS=-mcpu=cortex-m3 -mthumb -g -lgcc -lc -lcs3 -lcs3unhosted -lefm32gg -Llib
ASFLAGS=-mcpu=cortex-m3 -mthumb -g
LINKERSCRIPT=lib/efm32gg.ld
polling.bin : polling.elf
${OBJCOPY} -O binary $< $@
polling.elf : polling.o timer.o dac.o gpio.o interrupt_handlers.o
${LD} -T ${LINKERSCRIPT} $^ -o $@ ${LDFLAGS}
%.o : %.c
${CC} ${CFLAGS} -c $< -o $@
.PHONY : pretty
pretty :
-indent *.c *.h
.PHONY : upload
upload :
-eACommander.sh -r --address 0x00000000 -f "polling.bin" -r
.PHONY : clean
clean :
-rm -rf *.o *.elf *.bin *.hex