mirror of
https://github.com/Proxmark/proxmark3.git
synced 2024-11-11 09:59:45 +08:00
e73e717239
Retire rbt2c.pl, instead use objcopy to directly convert the .bit file into an .o that can be linked with the flash image Rename armsrc/fpga.c to armsrc/fpgaloader.c (since there is now a new fpga.o, created from fpga.bit) Remove fpgaimg.c from subversion, add fpga.bit Instead of creating fpgaimage.elf and osimage.elf separately, now create a joined fullimage.elf first (obsoleting ldscript-full), then extract only the fpga and os sections with objcopy (This creates unspecific warnings about an empty segment, need to investigate) Implement a rudimentary .bit parser in the firmware, use that to locate the bitstream in the new fpgaimage (which is just a plain copy of the fpga.bit file) and send it to the FPGA The code will check the format that's in flash and fall back to the legacy format
55 lines
1.7 KiB
Makefile
55 lines
1.7 KiB
Makefile
# Makefile for armsrc, see ../common/Makefile.common for common settings
|
|
|
|
APP_INCLUDES = apps.h
|
|
|
|
# Add the "-DWITH_LCD" flag in APP_CLFAGS to add support for LCD
|
|
# and add SRC_LCD to THUMBSRC
|
|
APP_CFLAGS = -O6
|
|
|
|
SRC_LCD = fonts.c LCD.c
|
|
|
|
THUMBSRC = start.c \
|
|
appmain.c \
|
|
lfops.c \
|
|
iso15693.c \
|
|
util.c \
|
|
usb.c
|
|
|
|
# These are to be compiled in ARM mode
|
|
ARMSRC = iso14443.c \
|
|
iso14443a.c \
|
|
fpgaloader.c
|
|
|
|
# Do not move this inclusion before the definition of {THUMB,ASM,ARM}SRC
|
|
include ../common/Makefile.common
|
|
|
|
all: $(OBJDIR)/osimage.s19 $(OBJDIR)/fpgaimage.s19
|
|
|
|
$(OBJDIR)/fpga.o: fpga.bit
|
|
$(OBJCOPY) -O elf32-littlearm -I binary -B arm --redefine-sym _binary____fpga_fpga_bit_start=_binary_fpga_bit_start --redefine-sym _binary____fpga_fpga_bit_end=_binary_fpga_bit_end --prefix-sections=fpga_bit $^ $@
|
|
|
|
$(OBJDIR)/fullimage.elf: $(OBJDIR)/fpga.o $(THUMBOBJ) $(ARMOBJ) $(ARMLIB)/libgcc.a
|
|
$(LD) -g -Tldscript -Map=$(patsubst %.elf,%.map,$@) -o $@ $^
|
|
|
|
$(OBJDIR)/fpgaimage.elf: $(OBJDIR)/fullimage.elf
|
|
$(OBJCOPY) -F elf32-littlearm --only-section fpgaimage $^ $@
|
|
|
|
$(OBJDIR)/osimage.elf: $(OBJDIR)/fullimage.elf
|
|
$(OBJCOPY) -F elf32-littlearm --remove-section fpgaimage $^ $@
|
|
|
|
clean:
|
|
$(DELETE) $(OBJDIR)$(PATHSEP)*.o
|
|
$(DELETE) $(OBJDIR)$(PATHSEP)*.elf
|
|
$(DELETE) $(OBJDIR)$(PATHSEP)*.s19
|
|
$(DELETE) $(OBJDIR)$(PATHSEP)*.map
|
|
$(DELETE) $(OBJDIR)$(PATHSEP)*.d
|
|
|
|
.PHONY: all clean help
|
|
help:
|
|
@echo Multi-OS Makefile, you are running on $(DETECTED_OS)
|
|
@echo Possible targets:
|
|
@echo + all - Make both:
|
|
@echo + $(OBJDIR)/osimage.s19 - The OS image
|
|
@echo + $(OBJDIR)/fpgaimage.s19 - The FPGA image
|
|
@echo + clean - Clean $(OBJDIR)
|
|
|