aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Wild <ewild@sysmocom.de>2020-04-03 21:33:30 +0200
committerEric Wild <ewild@sysmocom.de>2020-04-10 02:09:40 +0200
commitb59fb8fc92fc0e168be1b6cf3ea4f0ba447eed84 (patch)
tree0c573d2c5910ed06f5114870f0c1eb82968e57c3
parent70bd983e56586f0039cd7b9186dcfc91625bd1c0 (diff)
firmware: do not allow undefined symbols
For some reason undefined symbols were downgraded to warnings, which means building a firmware that calls missing functions (= address zero) was perfectly fine, which of course made development more exciting.... This applies to builtins, too, printf of one char gets downgraded to putchar, which we don't have, so disable builtins. Change-Id: I492f41ad4162b9d07b1881ae4aed019db2dff8b5
-rw-r--r--firmware/Makefile6
-rw-r--r--firmware/apps/cardem/Makefile2
-rw-r--r--firmware/libboard/common/source/board_lowlevel.c5
3 files changed, 9 insertions, 4 deletions
diff --git a/firmware/Makefile b/firmware/Makefile
index bdca6e5..373cfdf 100644
--- a/firmware/Makefile
+++ b/firmware/Makefile
@@ -100,7 +100,7 @@ C_LIBUSB = USBDescriptors.c USBRequests.c USBD.c USBDCallbacks.c USBDDriver.
C_LIBUSB_RT = dfu.c dfu_runtime.c
C_LIBUSB_DFU = dfu.c dfu_desc.c dfu_driver.c
C_LIBCOMMON = string.c stdio.c fputs.c usb_buf.c ringbuffer.c pseudo_talloc.c host_communication.c \
- main_common.c
+ main_common.c tc_etu.c
C_BOARD = $(notdir $(wildcard libboard/common/source/*.c))
C_BOARD += $(notdir $(wildcard libboard/$(BOARD)/source/*.c))
@@ -164,14 +164,14 @@ CFLAGS += -Wno-suggest-attribute=noreturn
# -mlong-calls -Wall
#CFLAGS += -save-temps -fverbose-asm
#CFLAGS += -Wa,-a,-ad
-CFLAGS += -D__ARM
+CFLAGS += -D__ARM -fno-builtin
CFLAGS += --param max-inline-insns-single=500 -mcpu=cortex-m3 -mthumb # -mfix-cortex-m3-ldrd
CFLAGS += -ffunction-sections -g $(OPTIMIZATION) $(INCLUDES) -D$(CHIP) -DTRACE_LEVEL=$(TRACE_LEVEL) -DALLOW_PEER_ERASE=$(ALLOW_PEER_ERASE)
CFLAGS += -DGIT_VERSION=\"$(GIT_VERSION)\"
CFLAGS += -DBOARD=\"$(BOARD)\" -DBOARD_$(BOARD)
CFLAGS += -DAPPLICATION=\"$(APP)\" -DAPPLICATION_$(APP)
ASFLAGS = -mcpu=cortex-m3 -mthumb -Wall -g $(OPTIMIZATION) $(INCLUDES) -D$(CHIP) -D__ASSEMBLY__
-LDFLAGS = -mcpu=cortex-m3 -mthumb -Wl,--cref -Wl,--check-sections -Wl,--gc-sections -Wl,--entry=ResetException -Wl,--unresolved-symbols=report-all -Wl,--warn-common -Wl,--warn-section-align -Wl,--warn-unresolved-symbols -Wl,--print-memory-usage $(LIB)
+LDFLAGS = -mcpu=cortex-m3 -mthumb -Wl,--cref -Wl,--check-sections -Wl,--gc-sections -Wl,--entry=ResetException -Wl,--unresolved-symbols=report-all -Wl,--warn-common -Wl,--warn-section-align -Wl,--print-memory-usage -Wl,--no-undefined $(LIB)
#LD_OPTIONAL=-Wl,--print-gc-sections -Wl,--stats
# Append BIN directories to output filename
diff --git a/firmware/apps/cardem/Makefile b/firmware/apps/cardem/Makefile
index 404e0ca..fd2331d 100644
--- a/firmware/apps/cardem/Makefile
+++ b/firmware/apps/cardem/Makefile
@@ -1,3 +1,3 @@
C_FILES += $(C_LIBUSB_RT)
-C_FILES += card_emu.c iso7816_3.c iso7816_4.c mode_cardemu.c simtrace_iso7816.c usb.c
+C_FILES += card_emu.c iso7816_fidi.c iso7816_3.c iso7816_4.c mode_cardemu.c simtrace_iso7816.c usb.c
diff --git a/firmware/libboard/common/source/board_lowlevel.c b/firmware/libboard/common/source/board_lowlevel.c
index b4d7d32..1ddbcba 100644
--- a/firmware/libboard/common/source/board_lowlevel.c
+++ b/firmware/libboard/common/source/board_lowlevel.c
@@ -218,3 +218,8 @@ void mdelay(unsigned int msecs)
do {
} while ((jiffies - jiffies_start) < msecs);
}
+
+void abort() {
+ NVIC_SystemReset();
+ while(1) {};
+}