1 |
2 |
ayersg |
# Makefile for XUM
|
2 |
|
|
#
|
3 |
|
|
# Compiles code to run on the XUM platform, which
|
4 |
|
|
# is based on MIPS32 and a GCC cross-compiler toolchain.
|
5 |
|
|
#
|
6 |
|
|
# Author: Grant Ayers (ayers@cs.utah.edu)
|
7 |
|
|
# Date: 3 July 2012
|
8 |
|
|
#
|
9 |
|
|
|
10 |
|
|
SHELL = /bin/sh
|
11 |
|
|
|
12 |
|
|
SRC = ../src
|
13 |
|
|
MIPS_PREFIX = /home/User/XUM/gnu_mips/crosstools
|
14 |
|
|
MIPS_BIN = $(MIPS_PREFIX)/bin
|
15 |
|
|
MIPS_LIB = $(MIPS_PREFIX)/mips-elf/lib
|
16 |
|
|
MIPS_CC = $(MIPS_BIN)/mips-elf-gcc-4.7.1.exe
|
17 |
|
|
MIPS_AS = $(MIPS_BIN)/mips-elf-as.exe
|
18 |
|
|
MIPS_LD = $(MIPS_BIN)/mips-elf-ld.exe
|
19 |
|
|
MIPS_OBJDUMP = $(MIPS_BIN)/mips-elf-objdump.exe
|
20 |
|
|
MIPS_OBJCOPY = $(MIPS_BIN)/mips-elf-objcopy.exe
|
21 |
|
|
UTIL_PREFIX = /home/User/XUM/demos/util
|
22 |
|
|
UTIL_CONVBIN = $(UTIL_PREFIX)/bintohex.exe
|
23 |
|
|
UTIL_CONVXUM = $(UTIL_PREFIX)/bintoxum.exe
|
24 |
|
|
|
25 |
|
|
AS_FLAGS = -march=mips32 -EB -G0
|
26 |
|
|
LD_FLAGS = -EB -static -Map app.map -T ../src/os/xum.ls
|
27 |
|
|
LD_LIBS = -lm -lc -lgcc
|
28 |
|
|
LD_SEARCH = -L$(MIPS_PREFIX)/mips-elf/lib \
|
29 |
|
|
-L$(MIPS_PREFIX)/lib/gcc/mips-elf/4.7.1
|
30 |
|
|
LD_DRIVER = $(MIPS_LD) $(LD_FLAGS) $(LD_SEARCH) $(LD_LIBS)
|
31 |
|
|
CC_FLAGS_ARCH = -march=mips32 -EB -msoft-float -mno-mips16 -mno-branch-likely \
|
32 |
|
|
-mgpopt
|
33 |
|
|
CC_FLAGS_LANG = -Wall -O2
|
34 |
|
|
CC_FLAGS_INC = -I../src/
|
35 |
|
|
CC_FLAGS_AS = -Wa,-EB,-mips32,-msoft-float
|
36 |
|
|
CC_FLAGS_LD = -nostdlib -nostartfiles -static -T ../src/os/xum.ls
|
37 |
|
|
CC_FLAGS_LIB = -lm -lc -lgcc
|
38 |
|
|
CC_DRIVER = $(MIPS_CC) $(CC_FLAGS_ARCH) $(CC_FLAGS_LANG) \
|
39 |
|
|
$(CC_FLAGS_AS) $(CC_FLAGS_INC)
|
40 |
|
|
|
41 |
|
|
|
42 |
|
|
all : app
|
43 |
|
|
|
44 |
|
|
app : app.o monitor.o i2c.o lcd.o boot.o vectors.o exceptions.o exception_handler.o piezo.o
|
45 |
|
|
$(LD_DRIVER) $^ -o app.exe
|
46 |
|
|
@$(MIPS_OBJDUMP) -EB --disassemble app.exe > app.lst
|
47 |
|
|
@$(MIPS_OBJCOPY) -O binary -j .text app.exe app-code.bin
|
48 |
|
|
@$(MIPS_OBJCOPY) -O binary -j .data app.exe app-data1.bin
|
49 |
|
|
@$(MIPS_OBJCOPY) -O binary -j .sdata app.exe app-data2.bin
|
50 |
|
|
@$(MIPS_OBJCOPY) -O binary -j .sbss app.exe app-data3.bin
|
51 |
|
|
@$(MIPS_OBJCOPY) -O binary -j .bss app.exe app-data4.bin
|
52 |
|
|
@cat app-data1.bin app-data2.bin app-data3.bin app-data4.bin >> app-data.bin
|
53 |
|
|
@$(UTIL_CONVXUM) -d 4096 app-code.bin app-data.bin app.xum
|
54 |
|
|
#@$(UTIL_CONVBIN) -c -b app-code.bin app-code.coe
|
55 |
|
|
$(UTIL_CONVBIN) -c -b app.xum app.coe
|
56 |
|
|
|
57 |
|
|
|
58 |
|
|
|
59 |
|
|
app.o : $(SRC)/app/app.c
|
60 |
|
|
$(CC_DRIVER) -c $(SRC)/app/app.c -o app.o
|
61 |
|
|
|
62 |
|
|
uart.o : $(SRC)/drivers/uart.c $(SRC)/drivers/uart.h
|
63 |
|
|
$(CC_DRIVER) -c $(SRC)/drivers/uart.c -o uart.o
|
64 |
|
|
|
65 |
|
|
i2c.o : $(SRC)/drivers/i2c.c $(SRC)/drivers/i2c.h
|
66 |
|
|
$(CC_DRIVER) -c $(SRC)/drivers/i2c.c -o i2c.o
|
67 |
|
|
|
68 |
|
|
lcd.o : $(SRC)/drivers/lcd.c $(SRC)/drivers/lcd.h
|
69 |
|
|
$(CC_DRIVER) -c $(SRC)/drivers/lcd.c -o lcd.o
|
70 |
|
|
|
71 |
|
|
monitor.o : $(SRC)/drivers/monitor.c $(SRC)/drivers/monitor.h i2c.o
|
72 |
|
|
$(CC_DRIVER) -c $(SRC)/drivers/monitor.c -o monitor.o
|
73 |
|
|
|
74 |
|
|
piezo.o : $(SRC)/drivers/piezo.c $(SRC)/drivers/piezo.h
|
75 |
|
|
$(CC_DRIVER) -c $(SRC)/drivers/piezo.c -o piezo.o
|
76 |
|
|
|
77 |
|
|
exception_handler.o : $(SRC)/os/exception_handler.c $(SRC)/os/exception_handler.h lcd.o piezo.o monitor.o
|
78 |
|
|
$(CC_DRIVER) -c $(SRC)/os/exception_handler.c -o exception_handler.o
|
79 |
|
|
|
80 |
|
|
boot.o : $(SRC)/os/boot.asm
|
81 |
|
|
$(MIPS_AS) $(AS_FLAGS) -o boot.o $(SRC)/os/boot.asm
|
82 |
|
|
|
83 |
|
|
vectors.o : $(SRC)/os/vectors.asm
|
84 |
|
|
$(MIPS_AS) $(AS_FLAGS) -o vectors.o $(SRC)/os/vectors.asm
|
85 |
|
|
|
86 |
|
|
exceptions.o : $(SRC)/os/exceptions.asm
|
87 |
|
|
$(MIPS_AS) $(AS_FLAGS) -o exceptions.o $(SRC)/os/exceptions.asm
|
88 |
|
|
|
89 |
|
|
clean :
|
90 |
|
|
rm -f *.o *.exe *.map *.coe *.bin *.map *.xum *.lst
|
91 |
|
|
|