]> cvs.zerfleddert.de Git - proxmark3-svn/blobdiff - armsrc/Makefile.linux
Add checks in em4x50read to avoid segfaults in case loops go over the GraphTraceLen.
[proxmark3-svn] / armsrc / Makefile.linux
index 0f2d0d4eec7b07404667f2b52feea76bd370c2e8..3862b4f7db4e9c9ea77b032664c719956d4c7508 100644 (file)
@@ -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
Impressum, Datenschutz