9eba3b454feaf8ae7608035a8af9c800889269c9
[cortex-from-scratch] / Makefile
1 CC=arm-none-eabi-gcc
2 LD=arm-none-eabi-ld
3 AR=$(TOOLROOT)/arm-none-eabi-ar
4 AS=arm-none-eabi-as
5 MKIMG=arm-none-eabi-objcopy
6
7 LDFLAGS+= -mthumb -mcpu=cortex-m0 
8 CFLAGS+= -mcpu=cortex-m3 -mthumb -g 
9
10 as: 
11         $(AS) $(CFLAGS) -o start.o start.asm
12
13 all:
14         $(AS) $(CFLAGS) -o start.o start.asm
15         $(CC) $(CFLAGS) -c -I./include -ffreestanding -o main.o main.c
16         $(CC) $(CFLAGS) -c -I./include -ffreestanding -o uart.o uart.c
17         $(CC) $(CFLAGS) -c -I./include -ffreestanding -o ivt.o ivt.c 
18         $(CC) $(CFLAGS) -c -I./include -ffreestanding -o systick.o systick.c 
19         $(CC) $(CFLAGS) -c -I./include -ffreestanding -o sysinfo.o sysinfo.c 
20         $(CC) $(CFLAGS) -c -I./include -ffreestanding -o lib.o lib.c 
21         $(CC) $(CFLAGS) -c -I./include -ffreestanding -o mm.o mm.c 
22         $(LD) -nostartfiles -T link.ld -o start.out start.o main.o uart.o ivt.o systick.o sysinfo.o lib.o mm.o
23         $(MKIMG) -Obinary -R .data start.out kernel.bin
24
25 run:
26         /usr/local/bin/qemu-system-arm -serial stdio  -M stm32-f103c8 -kernel kernel.bin
27
28 examine:
29         arm-none-eabi-objdump -S start.out
30
31 %.o: %.c
32         $(CC) -c $(CFLAGS) $< -o $@
33         $(CC) -MM $(CFLAGS) $< > $*.d
34
35 %.o: %.s
36         $(CC) -c $(CFLAGS) $< -o $@
37
38
39
40