diff options
Diffstat (limited to 'controller/fw')
-rw-r--r-- | controller/fw/Makefile | 69 |
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 |