]>
Commit | Line | Data |
---|---|---|
1 | # This makefile needs to be edited to reflect the location | |
2 | # of your own arm-elf-gcc toolchain (LIB variable) | |
3 | ||
4 | CC = arm-elf-gcc | |
5 | AS = arm-elf-as | |
6 | LD = arm-elf-ld | |
7 | OBJCOPY = arm-elf-objcopy | |
8 | ||
9 | # Indicate where your gnuarm toolchain libgcc.a library is located: | |
10 | LIB = /usr/local/new/gnuarm-4.3.0/lib/gcc/arm-elf/4.3.0/interwork | |
11 | ||
12 | # Add -DWITH_LCD to EXTRA_CFLAGS if you want support for LCD | |
13 | # in your firmware (add OBJLCD to OBJ too!) | |
14 | #EXTRA_CFLAGS = -DWITH_LCD | |
15 | EXTRA_CFLAGS = | |
16 | ||
17 | ### You should not need to edit below this line | |
18 | ||
19 | INCLUDE = -I../include | |
20 | INCLUDES = ../include/proxmark3.h ../include/at91sam7s128.h ../include/config_gpio.h ../include/usb_cmd.h apps.h | |
21 | CFLAGS_COMMON = -O6 -c $(INCLUDE) -Wall -mthumb-interwork | |
22 | CFLAGS = $(CFLAGS_COMMON) $(EXTRA_CFLAGS) -mthumb | |
23 | ||
24 | ||
25 | OBJDIR = obj | |
26 | ||
27 | OBJLCD = $(OBJDIR)/LCD.o\ | |
28 | $(OBJDIR)/fonts.o | |
29 | ||
30 | OBJ = $(OBJDIR)/start.o \ | |
31 | $(OBJDIR)/appmain.o \ | |
32 | $(OBJDIR)/fpga.o \ | |
33 | $(OBJDIR)/iso15693.o \ | |
34 | $(OBJDIR)/util.o | |
35 | ||
36 | # To be compiled in ARM mode, not thumb mode: larger but faster | |
37 | # Alleviates the 'blew circular buffer' issues somehow... | |
38 | OBJFAST = $(OBJDIR)/iso14443.o \ | |
39 | $(OBJDIR)/iso14443a.o | |
40 | ||
41 | OBJFPGA = $(OBJDIR)/fpgaimg.o | |
42 | ||
43 | OBJCOMMON = $(OBJDIR)/usb.o | |
44 | ||
45 | all: osimage.s19 fpgaimage.s19 fullimage.s19 | |
46 | ||
47 | fpgaimage.s19: $(OBJFPGA) | |
48 | @echo fpgaimage.s19 | |
49 | $(LD) -g -Tldscript-fpga -o $(OBJDIR)/fpgaimage.elf $^ | |
50 | $(OBJCOPY) -Osrec --srec-forceS3 $(OBJDIR)/fpgaimage.elf fpgaimage.s19 | |
51 | ||
52 | osimage.s19: $(OBJ) $(OBJFAST) $(OBJCOMMON) | |
53 | @echo osimage.s19 | |
54 | $(LD) -g -Tldscript -o $(OBJDIR)/osimage.elf $^ $(LIB)/libgcc.a | |
55 | $(OBJCOPY) -Osrec --srec-forceS3 $(OBJDIR)/osimage.elf osimage.s19 | |
56 | ||
57 | fullimage.s19: $(OBJ) $(OBJFAST) $(OBJCOMMON) $(OBJFAST) $(OBJFPGA) | |
58 | @echo fullimage.s19 | |
59 | $(LD) -g -Tldscript-full -o $(OBJDIR)/fullimage.elf $^ $(LIB)/libgcc.a | |
60 | $(OBJCOPY) -Osrec --srec-forceS3 $(OBJDIR)/fullimage.elf fullimage.s19 | |
61 | ||
62 | # Directives to put the *.o in the OBJDIR directory: | |
63 | $(OBJ): $(OBJDIR)/%.o : %.c | |
64 | $(CC) $(CFLAGS) $< -o $@ | |
65 | ||
66 | $(OBJFPGA): $(OBJDIR)/%.o : %.c | |
67 | $(CC) $(CFLAGS) $< -o $@ | |
68 | ||
69 | $(OBJFAST): $(OBJDIR)/%.o : %.c | |
70 | $(CC) $(CFLAGS_COMMON) $< -o $@ | |
71 | ||
72 | $(OBJCOMMON): $(OBJDIR)/%.o : ../common/%.c | |
73 | $(CC) $(CFLAGS) $< -o $@ | |
74 | ||
75 | # Those do not work on the current firmware ! | |
76 | flash-fpga: fpgaimage.s19 | |
77 | ../linux/flasher fpga fpgaimage.s19 | |
78 | ||
79 | flash: osimage.s19 | |
80 | ../linux/flasher os osimage.s19 | |
81 | ||
82 | jtag-flash-full: fullimage.s19 | |
83 | ../../OpenOCD/openocd -c "halt; flash write_image fullimage.s19 0x00100000; halt; reset; resume; poll; exit" | |
84 | ||
85 | jtag-flash-fpga: fpgaimage.s19 | |
86 | ../../OpenOCD/openocd -c "halt; flash write_image fpgaimage.s19 0x00100000; halt; reset; resume; poll; exit" | |
87 | ||
88 | jtag-flash: osimage.s19 | |
89 | ../../OpenOCD/openocd -c "halt; flash write_image osimage.s19 0x00100000; halt; reset; resume; poll; exit" | |
90 | ||
91 | clean: | |
92 | rm -f $(OBJDIR)/*.o $(OBJDIR)/*.elf *.s19 | |
93 | ||
94 | .PHONY: all clean |