-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathMakefile
82 lines (64 loc) · 2.67 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
# arm-linux-gnueabihf toolchain for Linux based compiling
# arm-none-eabi toolchain for Windows based compiling
# CROSSCOMPILE = arm-linux-gnueabihf-
CROSSCOMPILE = arm-none-eabi-
.SUFFIXES:
.SUFFIXES: .c .s .h .o
DRV=drivers/
DRVC=drivers_C/
OBJ=obj/
CFLAGS = -mcpu=cortex-a8 -marm -Wall -O2 -nostdlib -nostartfiles -ffreestanding \
-fstack-usage -Wstack-usage=16384 -I $(DRV) \
-I $(DRVC) \
-I $(DRVC)include \
-I lwip \
-I lwip/apps/udp_raw \
-I lwip/apps/echoserver_raw \
-I lwip/apps/httpserver_raw \
-I lwip/ports/cpsw \
-I lwip/ports/cpsw/include \
-I lwip/ports/cpsw/netif \
-I lwip/src/include \
-I lwip/src/include/ipv4 \
-I lwip/src/include/lwip \
-I mmc_lib \
-I mmc_lib/include \
-I mmc_lib/fatfs/src
VPATH = $(DRV) lwip/ports/cpsw lwip/ports/cpsw/netif lwip/src/core
all : rts.elf
$(OBJ)main.o : main.c
$(CROSSCOMPILE)gcc $(CFLAGS) -c main.c -o $(OBJ)main.o
$(OBJ)%.o : $(DRV)%.s
$(CROSSCOMPILE)gcc $(CFLAGS) -c $< -o $@
$(OBJ)%.o : $(DRVC)%.c
$(CROSSCOMPILE)gcc $(CFLAGS) -c $< -o $@
$(OBJ)lwiplib.o : lwip/ports/cpsw/lwiplib.c lwip/ports/cpsw/netif/cpswif.c
$(CROSSCOMPILE)gcc $(CFLAGS) -c lwip/ports/cpsw/lwiplib.c -o $(OBJ)lwiplib.o
$(OBJ)%.o : mmc_lib/%.c
$(CROSSCOMPILE)gcc $(CFLAGS) -c $< -o $@
$(OBJ)diskio.o : mmc_lib/fatfs/port/diskio.c
$(CROSSCOMPILE)gcc $(CFLAGS) -c $< -o $@
$(OBJ)ff.o : mmc_lib/fatfs/src/ff.c
$(CROSSCOMPILE)gcc $(CFLAGS) -c $< -o $@
$(OBJ)udp_apps.o : lwip/apps/udp_raw/udp_apps.c
$(CROSSCOMPILE)gcc $(CFLAGS) -c lwip/apps/udp_raw/udp_apps.c -o $(OBJ)udp_apps.o
$(OBJ)echod.o : lwip/apps/echoserver_raw/echod.c
$(CROSSCOMPILE)gcc $(CFLAGS) -c lwip/apps/echoserver_raw/echod.c -o $(OBJ)echod.o
$(OBJ)httpd.o : lwip/apps/httpserver_raw/httpd.c
$(CROSSCOMPILE)gcc $(CFLAGS) -c lwip/apps/httpserver_raw/httpd.c -o $(OBJ)httpd.o
rts.elf : memmap.lds $(OBJ)*.o
$(CROSSCOMPILE)ld -o rts.elf -T memmap.lds $(OBJ)startup.o $(OBJ)irq.o $(OBJ)mclk.o \
$(OBJ)gpio.o $(OBJ)uart.o $(OBJ)tim.o $(OBJ)cp15.o $(OBJ)mmc.o $(OBJ)eth.o \
$(OBJ)dma.o $(OBJ)mmu.o $(OBJ)mmc_hwif.o $(OBJ)mmc_api.o $(OBJ)diskio.o \
$(OBJ)ff.o $(OBJ)con_uif.o $(OBJ)eth_hwif.o $(OBJ)mdio.o $(OBJ)phy.o $(OBJ)lwiplib.o \
$(OBJ)libc.o $(OBJ)udp_apps.o $(OBJ)httpd.o $(OBJ)echod.o $(OBJ)main.o
# $(CROSSCOMPILE)objcopy rts.elf rts.bin -O srec
# srec format above for jtag loading (ie binary format with a short header)
# binary format below for MMC and UART booting
$(CROSSCOMPILE)objcopy rts.elf app -O binary
$(CROSSCOMPILE)objdump -M reg-names-raw -D rts.elf > rts.lst
# $(CROSSCOMPILE)objdump -d -S -h -t rts.elf > rts.dmp
clean :
-@del *.dmp *.lst *.elf
# NB never ever delete any object files from obj/
# it will mess up the rule for making rts.elf