init vector implementation
[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-m3 
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         $(LD) -nostartfiles -T link.ld -o start.out start.o main.o uart.o ivt.o
19         $(MKIMG) -Obinary -R .data start.out kernel.bin
20
21 run:
22         qemu-system-arm -serial stdio  -M lm3s6965evb -kernel kernel.bin
23
24 examine:
25         arm-none-eabi-objdump -S start.out
26
27 %.o: %.c
28         $(CC) -c $(CFLAGS) $< -o $@
29         $(CC) -MM $(CFLAGS) $< > $*.d
30
31 %.o: %.s
32         $(CC) -c $(CFLAGS) $< -o $@
33
34
35
36