X-Git-Url: http://cvs.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/b1d0de0a0847eba673cfaa965fadc56556d6364a..3628c31882e371997087ecc0249710340bf170e6:/armsrc/Makefile.linux diff --git a/armsrc/Makefile.linux b/armsrc/Makefile.linux index 0f2d0d4e..3862b4f7 100644 --- a/armsrc/Makefile.linux +++ b/armsrc/Makefile.linux @@ -1,66 +1,81 @@ # This makefile needs to be edited to reflect the location -# of your own arm-elf-gcc installation (LIB variable) +# of your own arm-elf-gcc toolchain (ARMLIB variable) CC = arm-elf-gcc AS = arm-elf-as LD = arm-elf-ld OBJCOPY = arm-elf-objcopy -INCLUDE = -I../include +# Indicate where your gnuarm toolchain libgcc.a interworking library is located +# or set $ARMLIB in your environment: +#ARMLIB = /usr/local/lib/gcc/arm-elf/4.3.3/interwork -INCLUDES = ../include/proxmark3.h ../include/at91sam7s128.h ../include/config_gpio.h ../include/usb_cmd.h apps.h -LIB = /usr/local/new/gnuarm-4.3.0/lib/gcc/arm-elf/4.3.0/interwork +# Add -DWITH_LCD to EXTRA_CFLAGS if you want support for LCD +# in your firmware (add OBJLCD to OBJ too!) +#EXTRA_CFLAGS = -DWITH_LCD +EXTRA_CFLAGS = + +### You should not need to edit below this line + +INCLUDE = -I../include +INCLUDES = ../include/proxmark3.h ../include/at91sam7s128.h ../include/config_gpio.h ../include/usb_cmd.h apps.h CFLAGS_COMMON = -O6 -c $(INCLUDE) -Wall -mthumb-interwork -CFLAGS = $(CFLAGS_COMMON) -mthumb +CFLAGS = $(CFLAGS_COMMON) $(EXTRA_CFLAGS) -mthumb OBJDIR = obj -OBJ = start.o \ - appmain.o \ - fpga.o \ - iso15693.o \ - iso14443.o \ - util.o\ - LCD.o\ - fonts.o -OBJFAST = iso14443a.o +OBJLCD = $(OBJDIR)/LCD.o\ + $(OBJDIR)/fonts.o + +OBJ = $(OBJDIR)/start.o \ + $(OBJDIR)/appmain.o \ + $(OBJDIR)/fpga.o \ + $(OBJDIR)/lfops.o \ + $(OBJDIR)/iso15693.o \ + $(OBJDIR)/util.o -OBJFPGA = fpgaimg.o +# To be compiled in ARM mode, not thumb mode: larger but faster +# Alleviates the 'blew circular buffer' issues somehow... +OBJFAST = $(OBJDIR)/iso14443.o \ + $(OBJDIR)/iso14443a.o -OBJCOMMON = usb.o +OBJFPGA = $(OBJDIR)/fpgaimg.o +OBJCOMMON = $(OBJDIR)/usb.o all: osimage.s19 fpgaimage.s19 fullimage.s19 fpgaimage.s19: $(OBJFPGA) @echo fpgaimage.s19 - $(LD) -g -Tldscript-fpga -o fpgaimage.elf $(patsubst %.o, obj/%.o, $^) - $(OBJCOPY) -Osrec --srec-forceS3 fpgaimage.elf fpgaimage.s19 + $(LD) -g -Tldscript-fpga -o $(OBJDIR)/fpgaimage.elf $^ + $(OBJCOPY) -Osrec --srec-forceS3 $(OBJDIR)/fpgaimage.elf fpgaimage.s19 osimage.s19: $(OBJ) $(OBJFAST) $(OBJCOMMON) @echo osimage.s19 - $(LD) -g -Tldscript -o osimage.elf $(patsubst %.o, obj/%.o, $^) $(LIB)/libgcc.a - $(OBJCOPY) -Osrec --srec-forceS3 osimage.elf osimage.s19 + $(LD) -g -Tldscript -o $(OBJDIR)/osimage.elf -Map=osimage.map $^ $(ARMLIB)/libgcc.a + $(OBJCOPY) -Osrec --srec-forceS3 $(OBJDIR)/osimage.elf osimage.s19 fullimage.s19: $(OBJ) $(OBJFAST) $(OBJCOMMON) $(OBJFAST) $(OBJFPGA) @echo fullimage.s19 - $(LD) -g -Tldscript-full -o fullimage.elf $(patsubst %.o, obj/%.o, $^) $(LIB)/libgcc.a - $(OBJCOPY) -Osrec --srec-forceS3 fullimage.elf fullimage.s19 + $(LD) -g -Tldscript-full -o $(OBJDIR)/fullimage.elf $^ $(ARMLIB)/libgcc.a + $(OBJCOPY) -Osrec --srec-forceS3 $(OBJDIR)/fullimage.elf fullimage.s19 -$(OBJ): %.o : %.c - $(CC) $(CFLAGS) $< -o $(OBJDIR)/$@ +# Directives to put the *.o in the OBJDIR directory: +$(OBJ): $(OBJDIR)/%.o : %.c + $(CC) $(CFLAGS) $< -o $@ -$(OBJFPGA): %.o : %.c - $(CC) $(CFLAGS) $< -o $(OBJDIR)/$@ +$(OBJFPGA): $(OBJDIR)/%.o : %.c + $(CC) $(CFLAGS) $< -o $@ - -$(OBJFAST): %.o : %.c - $(CC) $(CFLAGS_COMMON) $< -o $(OBJDIR)/$@ +$(OBJFAST): $(OBJDIR)/%.o : %.c + $(CC) $(CFLAGS_COMMON) $< -o $@ -$(OBJCOMMON): ../common/usb.c - $(CC) $(CFLAGS) ../common/usb.c -o $(OBJDIR)/usb.o +$(OBJCOMMON): $(OBJDIR)/%.o : ../common/%.c + $(CC) $(CFLAGS) $< -o $@ + +flash-both: flash flash-fpga flash-fpga: fpgaimage.s19 ../linux/flasher fpga fpgaimage.s19 @@ -68,6 +83,7 @@ flash-fpga: fpgaimage.s19 flash: osimage.s19 ../linux/flasher os osimage.s19 +# Those do not work on the current firmware ! jtag-flash-full: fullimage.s19 ../../OpenOCD/openocd -c "halt; flash write_image fullimage.s19 0x00100000; halt; reset; resume; poll; exit" @@ -78,6 +94,6 @@ jtag-flash: osimage.s19 ../../OpenOCD/openocd -c "halt; flash write_image osimage.s19 0x00100000; halt; reset; resume; poll; exit" clean: - rm -f $(OBJDIR)/*.o *.elf *.s19 + rm -f $(OBJDIR)/*.o $(OBJDIR)/*.elf *.s19 osimage.map .PHONY: all clean