summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--controller/fw/Makefile69
1 files changed, 44 insertions, 25 deletions
diff --git a/controller/fw/Makefile b/controller/fw/Makefile
index df39fe4..27fd9ba 100644
--- a/controller/fw/Makefile
+++ b/controller/fw/Makefile
@@ -1,4 +1,8 @@
+########################################################################################################################
+# Dependency directories
+########################################################################################################################
+
CUBE_DIR ?= STM32CubeF4
CMSIS_DIR ?= cmsis
MSPDEBUG_DIR ?= mspdebug
@@ -6,6 +10,38 @@ LIBSODIUM_DIR ?= libsodium
TINYAES_DIR ?= tinyaes
MUSL_DIR ?= musl
+########################################################################################################################
+# Algorithm parameters
+########################################################################################################################
+
+FMEAS_ADC_SAMPLING_RATE ?= 1000
+FMEAS_ADC_MAX ?= 4096
+FMEAS_FFT_LEN ?= 256
+FMEAS_FFT_WINDOW ?= gaussian
+FMEAS_FFT_WINDOW_SIGMA ?= 16.0
+# TODO: validate
+FMEAS_SAMPLING_RATE ?= $(shell echo $(FMEAS_ADC_SAMPLING_RATE) / \($(FMEAS_FFT_LEN)/2\) | bc -l)
+
+DSSS_GOLD_CODE_NBITS ?= 5
+DSSS_DECIMATION ?= 10
+# TODO maybe auto adjust this based on detection rate?
+DSSS_THESHOLD_FACTOR ?= 6.0f
+DSSS_WAVELET_WIDTH ?= 7.3
+DSSS_WAVELET_LUT_SIZE ?= 69
+DSSS_FILTER_FC ?= 3e-3
+DSSS_FILTER_ORDER ?= 12
+
+PAYLOAD_DATA_BIT ?= 64
+TRANSMISSION_SYMBOLS ?= 32
+PRESIG_STORE_SIZE ?= 3
+
+# will be generated if necessary
+PRESIG_KEYFILE ?= presig_test_key.secret
+
+########################################################################################################################
+# Sources
+########################################################################################################################
+
C_SOURCES := src/main.c src/mspdebug_wrapper.c src/spi_flash.c src/freq_meas.c src/dsss_demod.c src/adc.c \
src/protocol.c
C_SOURCES += $(MSPDEBUG_DIR)/drivers/jtaglib.c
@@ -42,32 +78,11 @@ BUILDDIR ?= build
BINARY := safetyreset.elf
LDSCRIPT := stm32f407.ld
-PREFIX ?= arm-none-eabi-
-
-
-FMEAS_ADC_SAMPLING_RATE ?= 1000
-FMEAS_ADC_MAX ?= 4096
-FMEAS_FFT_LEN ?= 256
-FMEAS_FFT_WINDOW ?= gaussian
-FMEAS_FFT_WINDOW_SIGMA ?= 16.0
-# TODO: validate
-FMEAS_SAMPLING_RATE ?= $(shell echo $(FMEAS_ADC_SAMPLING_RATE) / \($(FMEAS_FFT_LEN)/2\) | bc -l)
-
-DSSS_GOLD_CODE_NBITS ?= 5
-DSSS_DECIMATION ?= 10
-# TODO maybe auto adjust this based on detection rate?
-DSSS_THESHOLD_FACTOR ?= 6.0f
-DSSS_WAVELET_WIDTH ?= 7.3
-DSSS_WAVELET_LUT_SIZE ?= 69
-DSSS_FILTER_FC ?= 3e-3
-DSSS_FILTER_ORDER ?= 12
+########################################################################################################################
+# Build parameters
+########################################################################################################################
-PAYLOAD_DATA_BIT ?= 64
-TRANSMISSION_SYMBOLS ?= 32
-PRESIG_STORE_SIZE ?= 3
-
-PRESIG_KEYFILE ?= presig_test_key.secret
-PRESIG_DBFILE ?= presig_test_db.sqlite3
+PREFIX ?= arm-none-eabi-
CC := $(PREFIX)gcc
CXX := $(PREFIX)g++
@@ -147,6 +162,10 @@ LDFLAGS += --trace
LIBS += -lgcc
LDFLAGS += -Wl,--gc-sections -Wl,--trace-symbol=twiddleCoef_4096 -Wl,--trace-symbol=arm_cfft_sR_f32_len4096
+########################################################################################################################
+# Rules
+########################################################################################################################
+
all: binsize
.PHONY: binsize