1 # This makefile needs to be edited to reflect the location
2 # of your own arm-elf-gcc toolchain (ARMLIB variable)
7 OBJCOPY = arm-elf-objcopy
9 # Indicate where your gnuarm toolchain libgcc.a interworking library is located
10 # or set $ARMLIB in your environment:
11 #ARMLIB = /usr/local/lib/gcc/arm-elf/4.3.3/interwork
14 # Add -DWITH_LCD to EXTRA_CFLAGS if you want support for LCD
15 # in your firmware (add OBJLCD to OBJ too!)
16 #EXTRA_CFLAGS = -DWITH_LCD
19 ### You should not need to edit below this line
21 INCLUDE = -I../include
22 INCLUDES = ../include/proxmark3.h ../include/at91sam7s128.h ../include/config_gpio.h ../include/usb_cmd.h apps.h
23 CFLAGS_COMMON = -O6 -c $(INCLUDE) -Wall -mthumb-interwork
24 CFLAGS = $(CFLAGS_COMMON) $(EXTRA_CFLAGS) -mthumb
29 OBJLCD = $(OBJDIR)/LCD.o\
32 OBJ = $(OBJDIR)/start.o \
36 $(OBJDIR)/iso15693.o \
39 # To be compiled in ARM mode, not thumb mode: larger but faster
40 # Alleviates the 'blew circular buffer' issues somehow...
41 OBJFAST = $(OBJDIR)/iso14443.o \
44 OBJFPGA = $(OBJDIR)/fpgaimg.o
46 OBJCOMMON = $(OBJDIR)/usb.o
48 all: osimage.s19 fpgaimage.s19 fullimage.s19
50 fpgaimage.s19: $(OBJFPGA)
52 $(LD) -g -Tldscript-fpga -o $(OBJDIR)/fpgaimage.elf $^
53 $(OBJCOPY) -Osrec --srec-forceS3 $(OBJDIR)/fpgaimage.elf fpgaimage.s19
55 osimage.s19: $(OBJ) $(OBJFAST) $(OBJCOMMON)
57 $(LD) -g -Tldscript -o $(OBJDIR)/osimage.elf $^ $(ARMLIB)/libgcc.a
58 $(OBJCOPY) -Osrec --srec-forceS3 $(OBJDIR)/osimage.elf osimage.s19
60 fullimage.s19: $(OBJ) $(OBJFAST) $(OBJCOMMON) $(OBJFAST) $(OBJFPGA)
62 $(LD) -g -Tldscript-full -o $(OBJDIR)/fullimage.elf $^ $(ARMLIB)/libgcc.a
63 $(OBJCOPY) -Osrec --srec-forceS3 $(OBJDIR)/fullimage.elf fullimage.s19
65 # Directives to put the *.o in the OBJDIR directory:
66 $(OBJ): $(OBJDIR)/%.o : %.c
67 $(CC) $(CFLAGS) $< -o $@
69 $(OBJFPGA): $(OBJDIR)/%.o : %.c
70 $(CC) $(CFLAGS) $< -o $@
72 $(OBJFAST): $(OBJDIR)/%.o : %.c
73 $(CC) $(CFLAGS_COMMON) $< -o $@
75 $(OBJCOMMON): $(OBJDIR)/%.o : ../common/%.c
76 $(CC) $(CFLAGS) $< -o $@
78 flash-both: flash flash-fpga
80 flash-fpga: fpgaimage.s19
81 ../linux/flasher fpga fpgaimage.s19
84 ../linux/flasher os osimage.s19
86 # Those do not work on the current firmware !
87 jtag-flash-full: fullimage.s19
88 ../../OpenOCD/openocd -c "halt; flash write_image fullimage.s19 0x00100000; halt; reset; resume; poll; exit"
90 jtag-flash-fpga: fpgaimage.s19
91 ../../OpenOCD/openocd -c "halt; flash write_image fpgaimage.s19 0x00100000; halt; reset; resume; poll; exit"
93 jtag-flash: osimage.s19
94 ../../OpenOCD/openocd -c "halt; flash write_image osimage.s19 0x00100000; halt; reset; resume; poll; exit"
97 rm -f $(OBJDIR)/*.o $(OBJDIR)/*.elf *.s19