드 자동화 하기 위한 Makefile 작성.
책에 clean 부분 오타가 있어서 수정함.
rm -fr -> rm -rf
또한 Ubuntu 18.04 에서는 arm-none-eabi-gdb가 존재하지 않으므로 그자리에 gdb-multiarch로 수정해서 쓰면 된다.
ARCH = armv7-a
MCPU = cortex-a8
CC = arm-none-eabi-gcc
AS = arm-none-eabi-as
LD = arm-none-eabi-ld
OC = arm-none-eabi-objcopy
LINKER_SCRIPT = navilos.ld
ASM_SRCS = $(wildcard boot/*.S)
ASM_OBJS = $(patsubst boot/%.S, build/%.o, $(ASM_SRCS))
navilos = build/navilos.axf
navilos_bin = build/navilos.bin
.PHONY: all clean run debug gdb
all: $(navilos)
clean:
# 책에는 rm -fr 로 되어있는데 오타인거 같아 rm -rf로 수정함 #
@rm -rf build
run: $(navilos)
qemu-system-arm -M realview-pb-a8 -kernel $(navilos)
debug: $(navilos)
qemu-system-arm -M realview-pb-a8 -kernel $(navilos) -S -gdb tcp::1234,ipv4
gdb:
gdb-multiarch
$(navilos): $(ASM_OBJS) $(LINKER_SCRIPT)
$(LD) -n -T $(LINKER_SCRIPT) -o $(navilos) $(ASM_OBJS)
$(OC) -O binary $(navilos) $(navilos_bin)
build/%.o: boot/%.S
mkdir -p $(shell dirname $@) #mkdir -p build 실행 됨 #
$(AS) -march=$(ARCH) -mcpu=$(MCPU) -g -o $@ $<
'Firmware > RTOS' 카테고리의 다른 글
임베디드 OS 개발 프로젝트 5 (0) | 2020.01.26 |
---|---|
임베디드 OS 개발 프로젝트 A-1 (2) | 2020.01.25 |
임베디드 OS 개발 프로젝트 4 (0) | 2020.01.25 |
임베디드 OS 개발 프로젝트 3 (0) | 2020.01.18 |
임베디드 OS 개발 프로젝트 1 (1) | 2020.01.18 |