Update the Makefile support for ARM

This commit is contained in:
dxl
2026-08-19 15:51:53 +02:00
committed by Philippe Teuwen
parent 0191fb78ec
commit d286946d0f
6 changed files with 264 additions and 26 deletions
+40
View File
@@ -0,0 +1,40 @@
#-----------------------------------------------------------------------------
# Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# See LICENSE.txt for the text of the license.
#-----------------------------------------------------------------------------
ifeq ($(PLATFORM),PM5)
ARMLIB_EXPORT_DEFS = -DCHIP_AT32F435_37 -DAT32F435RGT7 -DUSE_STDPERIPH_DRIVER -DAT_START_F435_V1 -DUSBD_SUPPORT_WINUSB=1
ARMLIB_EXPORT_DEFS += -DCRM_MODULE_ENABLED -DMISC_MODULE_ENABLED -DGPIO_MODULE_ENABLED
ARMLIB_EXPORT_DEFS += -DUSB_MODULE_ENABLED -DQSPI_MODULE_ENABLED -DTMR_MODULE_ENABLED
ARMLIB_EXPORT_DEFS += -DERTC_MODULE_ENABLED -DPWC_MODULE_ENABLED -DSPI_MODULE_ENABLED
ARMLIB_EXPORT_DEFS += -DI2C_MODULE_ENABLED -DDMA_MODULE_ENABLED -DADC_MODULE_ENABLED
ARMLIB_EXPORT_DEFS += -DUSART_MODULE_ENABLED -DEXINT_MODULE_ENABLED -DSCFG_MODULE_ENABLED
ARMLIB_EXPORT_DEFS += -DFLASH_MODULE_ENABLED -DCRC_MODULE_ENABLED -DWDT_MODULE_ENABLED
ARMLIB_EXPORT_DEFS += -DWWDT_MODULE_ENABLED -DCAN_MODULE_ENABLED -DDAC_MODULE_ENABLED
ARMLIB_EXPORT_DEFS += -DDEBUG_MODULE_ENABLED -DDVP_MODULE_ENABLED -DEDMA_MODULE_ENABLED
ARMLIB_EXPORT_DEFS += -DSDIO_MODULE_ENABLED -DACC_MODULE_ENABLED
ARMLIB_EXPORT_INCLUDES = -I.
ARMLIB_EXPORT_INCLUDES += -isystem ../armlib/at32_sys -isystem ../armlib/at32_sys/cmsis/cm4/core_support
ARMLIB_EXPORT_INCLUDES += -isystem ../armlib/at32_sys/cmsis/cm4/device_support -isystem ../armlib/at32_sys/drivers/inc
ARMLIB_EXPORT_INCLUDES += -isystem ../armlib/at32_usb -isystem ../armlib/at32_usb/usb_drivers/inc -isystem ../armlib/at32_usb/usbd_class/cdc
ARMLIB_EXPORT_INCLUDES += -isystem ../armlib/at32_i2c
ARMLIB_EXPORT_CFLAGS = $(ARMLIB_EXPORT_DEFS) $(ARMLIB_EXPORT_INCLUDES)
ARMLIB_EXPORT_LIBNAME = libarmlib.a
endif
+97
View File
@@ -0,0 +1,97 @@
#-----------------------------------------------------------------------------
# Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# See LICENSE.txt for the text of the license.
#-----------------------------------------------------------------------------
ifeq ($(PLATFORM),PM5)
# Flags + Inc
include ../armlib/Exports.mk
# Toolchain + dirs
include ../common_arm/Makefile.common
# Allow standalone invocation when parent make doesn't export toolchain vars.
CROSS ?= arm-none-eabi-
CROSS_CC ?= $(CROSS)gcc
CROSS_CFLAGS ?=
CROSS_AR ?= $(CROSS)ar
OBJDIR ?= obj
ARMLIBSRC = \
../armlib/at32_sys/cmsis/cm4/device_support/system_at32f435_437.c \
../armlib/at32_sys/drivers/src/at32f435_437_crm.c \
../armlib/at32_sys/drivers/src/at32f435_437_misc.c \
../armlib/at32_sys/drivers/src/at32f435_437_gpio.c \
../armlib/at32_sys/drivers/src/at32f435_437_usb.c \
../armlib/at32_sys/drivers/src/at32f435_437_qspi.c \
../armlib/at32_sys/drivers/src/at32f435_437_tmr.c \
../armlib/at32_sys/drivers/src/at32f435_437_ertc.c \
../armlib/at32_sys/drivers/src/at32f435_437_pwc.c \
../armlib/at32_sys/drivers/src/at32f435_437_spi.c \
../armlib/at32_sys/drivers/src/at32f435_437_i2c.c \
../armlib/at32_sys/drivers/src/at32f435_437_dma.c \
../armlib/at32_sys/drivers/src/at32f435_437_adc.c \
../armlib/at32_sys/drivers/src/at32f435_437_usart.c \
../armlib/at32_sys/drivers/src/at32f435_437_exint.c \
../armlib/at32_sys/drivers/src/at32f435_437_scfg.c \
../armlib/at32_sys/drivers/src/at32f435_437_flash.c \
../armlib/at32_sys/drivers/src/at32f435_437_crc.c \
../armlib/at32_sys/drivers/src/at32f435_437_wdt.c \
../armlib/at32_sys/drivers/src/at32f435_437_wwdt.c \
../armlib/at32_sys/drivers/src/at32f435_437_can.c \
../armlib/at32_sys/drivers/src/at32f435_437_dac.c \
../armlib/at32_sys/drivers/src/at32f435_437_debug.c \
../armlib/at32_sys/drivers/src/at32f435_437_dvp.c \
../armlib/at32_sys/drivers/src/at32f435_437_edma.c \
../armlib/at32_sys/drivers/src/at32f435_437_sdio.c \
../armlib/at32_sys/drivers/src/at32f435_437_acc.c \
../armlib/at32_usb/usb_drivers/src/usb_core.c \
../armlib/at32_usb/usb_drivers/src/usbd_core.c \
../armlib/at32_usb/usb_drivers/src/usbd_int.c \
../armlib/at32_usb/usb_drivers/src/usbd_sdr.c \
../armlib/at32_usb/usbd_class/cdc/cdc_class.c \
../armlib/at32_i2c/at32f435_437_i2c_app.c
ARMLIB = $(OBJDIR)/$(ARMLIB_EXPORT_LIBNAME)
ARMLIB_OBJ_FROM_SRC = $(OBJDIR)/armlib_$(subst /,_,$(patsubst ../armlib/%.c,%,$(1))).o
ARMLIB_OBJ = $(foreach src,$(ARMLIBSRC),$(call ARMLIB_OBJ_FROM_SRC,$(src)))
ARMLIB_DEP = $(ARMLIB_OBJ:.o=.d)
.DEFAULT_GOAL := $(ARMLIB)
# TODO Artery's library has many warnings, which we can only ignore for now, unfortunately.
ARMLIB_PRIVATE_CFLAGS = -mcpu=cortex-m4 -Wno-missing-prototypes -Wno-missing-declarations
ARMLIB_CFLAGS = $(ARMLIB_EXPORT_CFLAGS) $(ARMLIB_PRIVATE_CFLAGS)
define ARMLIB_COMPILE_RULE
$(2): $(1) $(INCLUDES) | $(OBJDIR)
$$(info [-] CC $$(notdir $(1)))
$$(Q)$$(CROSS_CC) $$(CROSS_CFLAGS) $$(ARMLIB_CFLAGS) -MMD -MP -MF $(2:.o=.d) -mthumb -c -o $(2) $(1)
endef
define ARMLIB_REGISTER_RULES
$(foreach src,$(ARMLIBSRC),$(eval $(call ARMLIB_COMPILE_RULE,$(src),$(call ARMLIB_OBJ_FROM_SRC,$(src)))))
endef
$(OBJDIR):
$(Q)mkdir -p $@
$(ARMLIB): $(ARMLIB_OBJ) | $(OBJDIR)
$(info [-] AR $@)
$(Q)$(CROSS_AR) rcs $@ $^
$(call ARMLIB_REGISTER_RULES)
-include $(ARMLIB_DEP)
endif
+65 -10
View File
@@ -29,10 +29,43 @@ ifeq ($(PLTNAME),)
endif
endif
# Proxmark5 requires armlib.
include ../armlib/Exports.mk
#remove one of the following defines and comment out the relevant line
#in the next section to remove that particular feature from compilation.
# NO space,TABs after the "\" sign.
APP_CFLAGS = $(PLATFORM_DEFS)
APP_CFLAGS += $(ARMLIB_EXPORT_CFLAGS)
# HAL for platform
ifeq ($(PLATFORM),PM5)
SRC_STARTUP = startup_at32f435_437.s
SRC_TICKS = ../common_arm/ticks/ticks_hw_at32.c i2c.c # TODO DXL: It always depends on I2C, so the compilation location of this source file needs to be optimized.
SRC_GPIO = ../common_arm/gpio/gpio_hw_at32.c
SRC_WDT = ../common_arm/wdt/wdt_hw_at32.c
SRC_RSSI = ../common_arm/rssi/rssi_hw_at32.c
SRC_SYS = ../common_arm/sys/sys_hw_at32.c
SRC_FPGA = ../common_arm/fpga/fpga_hw_at32.c ../common_arm/fpga/fpga_gw_jtag.c
SRC_USB_CDC = ../common_arm/usb/usb_cdc_at32.c
SRC_FLASH_DATA = ../common_arm/flash_data/flashmem_hw_at32.c
APP_CFLAGS += -mcpu=cortex-m4
CROSS_LDFLAGS += -mcpu=cortex-m4
LD_SCRIPT = ldscript.osimage.at32
ARMLIB_OBJ = $(OBJDIR)/$(ARMLIB_EXPORT_LIBNAME)
LIBS += $(ARMLIB_OBJ)
else
SRC_STARTUP =
SRC_TICKS = ../common_arm/ticks/ticks_hw_at91.c
SRC_GPIO = ../common_arm/gpio/gpio_hw_at91.c
SRC_WDT = ../common_arm/wdt/wdt_hw_at91.c
SRC_RSSI = ../common_arm/rssi/rssi_hw_at91.c
SRC_SYS = ../common_arm/sys/sys_hw_at91.c
SRC_FPGA = ../common_arm/fpga/fpga_hw_at91.c
SRC_USB_CDC = ../common_arm/usb/usb_cdc_at91.c
SRC_FLASH_DATA = ../common_arm/flash_data/flashmem_hw_at91.c
LD_SCRIPT = ldscript.osimage.at91
endif
SRC_LF = lfops.c lfsampling.c pcf7931.c lfdemod.c lfadc.c
SRC_HF = hfops.c
@@ -51,9 +84,9 @@ SRC_NFCBARCODE = thinfilm.c
# SRC_BEE = bee.c
# RDV40 related hardware support
# RDV40 or PM5 related hardware support
ifneq (,$(findstring WITH_FLASH,$(APP_CFLAGS)))
SRC_FLASH = flashmem.c
SRC_FLASH = flashmem_core.c $(SRC_FLASH_DATA)
SRC_SPIFFS = spiffs.c spiffs_cache.c spiffs_check.c spiffs_gc.c spiffs_nucleus.c spiffs_hydrogen.c
else
SRC_FLASH =
@@ -143,6 +176,11 @@ THUMBSRC = start.c \
$(SRC_FELICA) \
$(SRC_STANDALONE) \
$(SRC_ZX) \
$(SRC_RSSI) \
$(SRC_TICKS) \
$(SRC_GPIO) \
$(SRC_WDT) \
$(SRC_SYS) \
appmain.c \
printf.c \
dbprint.c \
@@ -150,8 +188,8 @@ THUMBSRC = start.c \
util.c \
string.c \
BigBuf.c \
ticks.c \
clocks.c \
ticks_core.c \
rssi_core.c \
hfsnoop.c \
generator.c \
cmac_calc.c \
@@ -159,10 +197,16 @@ THUMBSRC = start.c \
# These are to be compiled in ARM mode
ARMSRC = fpgaloader.c \
usb_cdc.c \
ARMSRC = fpga_loader.c \
fpga_core.c \
$(SRC_FPGA) \
usb_cdc_desc.c \
usb_read_ng.c \
$(SRC_USB_CDC) \
cmd.c
ASMSRC = $(SRC_STARTUP)
VERSIONSRC = version_pm3.c \
fpga_version_info.c
@@ -176,6 +220,11 @@ else
INSTALLFWTAG = $(notdir $(INSTALLFW))
endif
# On some platforms, the FPGA firmware does not need to be packaged into the ARM, because the FPGA has its own flash.
ifneq ($(strip $(SKIP_FPGA_EMBED)),true)
FPGA_ALL_O_DEP = $(OBJDIR)/fpga_all.o
endif
OBJS = $(OBJDIR)/fullimage.s19
FPGA_COMPRESSOR = ../tools/fpga_compress/fpga_compress
@@ -187,7 +236,7 @@ showinfo:
.DELETE_ON_ERROR:
# version_pm3.c should be checked on every time fullimage.stage1.elf should be remade
version_pm3.c: default_version_pm3.c $(OBJDIR)/fpga_version_info.o $(OBJDIR)/fpga_all.o $(THUMBOBJ) $(ARMOBJ) .FORCE
version_pm3.c: default_version_pm3.c $(OBJDIR)/fpga_version_info.o $(FPGA_ALL_O_DEP) $(THUMBOBJ) $(ARMOBJ) $(ASMOBJ) .FORCE
$(info [-] CHECK $@)
$(Q)$(SH) ../tools/mkversion.sh $@ || $(CP) $< $@
@@ -211,10 +260,16 @@ $(FPGA_COMPRESSOR):
$(error [!] MISSING $@ => To build it, go the root of the repo and do "make $(notdir $@)")
$(error [!] MISSING $@)
$(OBJDIR)/fullimage.stage1.elf: $(VERSIONOBJ) $(OBJDIR)/fpga_all.o $(THUMBOBJ) $(ARMOBJ)
ifeq ($(PLATFORM),PM5)
$(ARMLIB_OBJ):
$(info [=] MAKE $(notdir $@))
@$(MAKE) --no-print-directory -f ../armlib/Makefile
endif
$(OBJDIR)/fullimage.stage1.elf: $(VERSIONOBJ) $(FPGA_ALL_O_DEP) $(THUMBOBJ) $(ARMOBJ) $(ASMOBJ) $(ARMLIB_OBJ)
$(info [=] LD $@)
# Using -T instead of -Wl,-T is needed to prevent the linker from using the default ldscript when using picolibc instead of newlib
$(Q)$(CROSS_LD) $(CROSS_LDFLAGS) -T ldscript -Wl,-Map,$(patsubst %.elf,%.map,$@) -o $@ $^ $(LIBS)
$(Q)$(CROSS_LD) $(CROSS_LDFLAGS) -T $(LD_SCRIPT) -Wl,-Map,$(patsubst %.elf,%.map,$@) -o $@ $^ $(LIBS)
$(OBJDIR)/fullimage.data.bin: $(OBJDIR)/fullimage.stage1.elf
$(info [-] GEN $@)
@@ -243,6 +298,7 @@ tarbin: $(OBJS)
clean:
$(Q)$(RM) $(DEPENDENCY_FILES)
$(Q)$(RM) $(OBJDIR)$(PATHSEP)*.o
$(Q)$(RM) $(OBJDIR)$(PATHSEP)*.a
$(Q)$(RM) $(OBJDIR)$(PATHSEP)*.elf
$(Q)$(RM) $(OBJDIR)$(PATHSEP)*.s19
$(Q)$(RM) $(OBJDIR)$(PATHSEP)*.map
@@ -266,4 +322,3 @@ help:
@echo Possible targets:
@echo + all - Build the full image $(OBJDIR)/fullimage.s19
@echo + clean - Clean $(OBJDIR)
+42 -10
View File
@@ -17,13 +17,39 @@
# Makefile for bootrom, see ../common_arm/Makefile.common for common settings
#-----------------------------------------------------------------------------
# Proxmark5 requires armlib.
include ../armlib/Exports.mk
# HAL for platform
ifeq ($(PLATFORM),PM5)
SRC_SYS = sys_hw_at32.c
SRC_TICKS = ticks_hw_at32.c
SRC_GPIO = gpio_hw_at32.c
SRC_USB_CDC = usb_cdc_at32.c
SRC_FLASH_CODE = flash_code_hw_at32.c
SRC_FLASH_DATA = flashmem_hw_at32.c
SRC_STARTUP = flash-reset-at32.s ram-reset-at32.s
LD_SCRIPT = ldscript-flash-at32
APP_CFLAGS += -mcpu=cortex-m4 -DPM5
CROSS_LDFLAGS += -mcpu=cortex-m4
ARMLIB_OBJ = $(OBJDIR)/$(ARMLIB_EXPORT_LIBNAME)
LIBS += $(ARMLIB_OBJ)
else
SRC_SYS = sys_hw_at91.c
SRC_TICKS = ticks_hw_at91.c
SRC_GPIO = gpio_hw_at91.c
SRC_USB_CDC = usb_cdc_at91.c
SRC_FLASH_CODE = flash_code_hw_at91.c
SRC_FLASH_DATA = flashmem_hw_at91.c
SRC_STARTUP = flash-reset-at91.s ram-reset-at91.s
LD_SCRIPT = ldscript-flash-at91
endif
# DO NOT use thumb mode in the phase 1 bootloader since that generates a section with glue code
ARMSRC =
THUMBSRC = usb_cdc.c \
clocks.c \
bootrom.c
THUMBSRC = bootrom.c $(SRC_SYS) $(SRC_TICKS) $(SRC_GPIO) $(SRC_USB_CDC) $(SRC_FLASH_CODE) usb_cdc_desc.c
ASMSRC = ram-reset.s flash-reset.s
ASMSRC = $(SRC_STARTUP)
VERSIONSRC = version_pm3.c
## There is a strange bug with the linker: Sometimes it will not emit the glue to call
@@ -34,18 +60,18 @@ VERSIONSRC = version_pm3.c
# THUMBSRC :=
# stdint.h provided locally until GCC 4.5 becomes C99 compliant
APP_CFLAGS = -I. -DAS_BOOTROM
APP_CFLAGS += -I. -DAS_BOOTROM
# no-common makes sure uninitialized vars don't end up in COMMON area
APP_CFLAGS += -fno-common
# For PM5, armlib is required
APP_CFLAGS += $(ARMLIB_EXPORT_CFLAGS)
ifneq (,$(findstring WITH_FLASH,$(PLATFORM_DEFS)))
APP_CFLAGS += -DWITH_FLASH
APP_CFLAGS += -I../common_arm
THUMBSRC += flashmem.c ticks.c
THUMBSRC += ticks_core.c flashmem_core.c $(SRC_FLASH_DATA)
endif
# Do not move this inclusion before the definition of {THUMB,ASM,ARM}SRC
include ../common_arm/Makefile.common
@@ -67,10 +93,16 @@ tarbin: $(OBJS)
$(info [=] GEN $@)
$(Q)$(TAR) $(TARFLAGS) ../proxmark3-$(platform)-bin.tar $(OBJS:%=bootrom/%) $(OBJS:%.s19=bootrom/%.elf)
$(OBJDIR)/bootrom.elf: $(VERSIONOBJ) $(ASMOBJ) $(ARMOBJ) $(THUMBOBJ)
ifeq ($(PLATFORM),PM5)
$(ARMLIB_OBJ):
$(info [=] MAKE $(notdir $@))
@$(MAKE) --no-print-directory -f ../armlib/Makefile
endif
$(OBJDIR)/bootrom.elf: $(VERSIONOBJ) $(ASMOBJ) $(ARMOBJ) $(THUMBOBJ) $(ARMLIB_OBJ)
$(info [=] LD $@)
# Using -T instead of -Wl,-T is needed to prevent the linker from using the default ldscript when using picolibc instead of newlib
$(Q)$(CROSS_LD) $(CROSS_LDFLAGS) -T ldscript-flash -Wl,-Map,$(patsubst %.elf,%.map,$@) -o $@ $^ $(LIBS)
$(Q)$(CROSS_LD) $(CROSS_LDFLAGS) -T $(LD_SCRIPT) -Wl,-Map,$(patsubst %.elf,%.map,$@) -o $@ $^ $(LIBS)
clean:
$(Q)$(RM) $(OBJDIR)$(PATHSEP)*.o
+5 -1
View File
@@ -42,9 +42,13 @@ CROSS_OBJCOPY = $(CROSS)objcopy
OBJDIR = obj
INCLUDE = -I../include -I../common_arm -I../common_fpga -I../common -I.
INCLUDE += -I../common_arm/flash_code -I../common_arm/flash_data -I../common_arm/fpga -I../common_arm/gpio
INCLUDE += -I../common_arm/rssi -I../common_arm/sys -I../common_arm/ticks -I../common_arm/usb -I../common_arm/wdt
# Also search prerequisites in the common directory (for usb.c), the fpga directory (for fpga.bit), and the lz4 directory
VPATH = . ../common_arm ../common ../common/crapto1 ../common/mbedtls ../common/lz4 ../fpga ../armsrc/Standalone ../common/hitag2
VPATH += ../common_arm/flash_code ../common_arm/flash_data ../common_arm/fpga ../common_arm/gpio
VPATH += ../common_arm/rssi ../common_arm/sys ../common_arm/ticks ../common_arm/usb ../common_arm/wdt
INCLUDES = ../include/proxmark3_arm.h ../include/at91sam7s512.h ../include/config_gpio.h ../include/pm3_cmd.h
@@ -106,7 +110,7 @@ CROSS_CFLAGS += -DON_DEVICE $(INCLUDE) $(APP_CFLAGS)
CROSS_LDFLAGS += -nostartfiles -nodefaultlibs -Wl,--gc-sections -Wl,--build-id=none -Wl,--nmagic
#CROSS_LDFLAGS += -Wl,--print-gc-sections
LIBS = -lgcc
LIBS += -lgcc
# Flags to generate temporary dependency files
DEPFLAGS = -MT $@ -MMD -MP -MF $(OBJDIR)/$*.Td
+15 -5
View File
@@ -40,6 +40,8 @@ Known definitions:
+--------------------------------------------------+
| PM3ULTIMATE | Proxmark3 Ultimate with XC2S50 |
+--------------------------------------------------+
| PM5 | Proxmark5 ICEMAN Edition |
+--------------------------------------------------+
+============================================+
| PLATFORM_EXTRAS | DESCRIPTION |
@@ -111,7 +113,7 @@ ifeq ($(PLATFORM),PM3RDV4)
ifneq ($(SKIP_ISO15693),1)
FPGA_BITSTREAMS += fpga_pm3_hf_15.bit
endif
PLATFORM_DEFS = -DWITH_SMARTCARD -DWITH_FLASH -DRDV4
PLATFORM_DEFS = -DWITH_SMARTCARD -DWITH_FLASH -DRDV4 -DCHIP_AT91SAM7S
PLTNAME = Proxmark3 RDV4
PLATFORM_FPGA = xc2s30
RDV4 = yes
@@ -131,7 +133,7 @@ else ifeq ($(PLATFORM),PM3OTHER)
PLTNAME = Proxmark3 generic target
PLATFORM_FPGA = xc2s30
ifeq ($(LED_ORDER),PM3EASY)
PLATFORM_DEFS = -DLED_ORDER_PM3EASY
PLATFORM_DEFS = -DLED_ORDER_PM3EASY -DCHIP_AT91SAM7S
endif
else ifeq ($(PLATFORM),PM3GENERIC)
# FPGA bitstream files, the order doesn't matter anymore
@@ -148,12 +150,12 @@ else ifeq ($(PLATFORM),PM3GENERIC)
PLTNAME = Proxmark3 generic target
PLATFORM_FPGA = xc2s30
ifeq ($(LED_ORDER),PM3EASY)
PLATFORM_DEFS = -DLED_ORDER_PM3EASY
PLATFORM_DEFS = -DLED_ORDER_PM3EASY -DCHIP_AT91SAM7S
endif
else ifeq ($(PLATFORM),PM3ICOPYX)
# FPGA bitstream files, the order doesn't matter anymore - only hf has a bitstream
FPGA_BITSTREAMS = fpga_icopyx_hf.bit
PLATFORM_DEFS = -DWITH_FLASH -DICOPYX -DXC3
PLATFORM_DEFS = -DWITH_FLASH -DICOPYX -DXC3 -DCHIP_AT91SAM7S
PLTNAME = iCopy-X with XC3S100E
PLATFORM_FPGA = xc3s100e
else ifeq ($(PLATFORM),PM3ULTIMATE)
@@ -168,9 +170,17 @@ else ifeq ($(PLATFORM),PM3ULTIMATE)
ifneq ($(SKIP_ISO15693),1)
FPGA_BITSTREAMS += fpga_pm3_ult_hf_15.bit
endif
PLATFORM_DEFS = -DWITH_FLASH -DXC2S50
PLATFORM_DEFS = -DWITH_FLASH -DXC2S50 -DCHIP_AT91SAM7S
PLTNAME = Proxmark3 Ultimate with XC2S50
PLATFORM_FPGA = xc2s50
else ifeq ($(PLATFORM),PM5)
# TODO DXL 我们暂时不需要指定FPGA比特流文件,因为实际上我们大概率要做FPGA的静态烧录,而不是附加到ARM固件中动态下载
FPGA_BITSTREAMS = fpga_pm3_hf.bit # TODO DXL 虽然可以不把打包比特流,但是还是得把FPGA的版本信息给生成,让EXE依赖。
SKIP_FPGA_EMBED = true # important!!! disable the fpga bit files pack to arm!
SKIP_COMPRESSION = true # Skip data section compress. The new mcu has enough flash space.
PLATFORM_DEFS = -DWITH_FLASH -DPM5 -DCHIP_AT32F435_37 # TODO 暂时不要编译i2c -DWITH_SMARTCARD
PLTNAME = Proxmark5
PLATFORM_FPGA = GW1NR-LV2MG49GC6/i5
else
$(error Invalid or empty PLATFORM: $(PLATFORM). $(KNOWN_DEFINITIONS))
endif