Skip to content
Snippets Groups Projects
Commit cd7a4f61 authored by Bernd-Christian Renner's avatar Bernd-Christian Renner
Browse files

added shared make config

parent 2dab81e9
No related branches found
No related tags found
No related merge requests found
src/config.mk
src/build
src/lut/*50000-87500*
1.) Build dependencies
$ sudo apt install make cmake libusb-1.0.0-dev build-essential
2.) Documentation tools (optional)
$ sudo apt install doxygen doxygen-doc doxygen-gui graphviz
3.) GNU Tools for Arm Embedded Processors
2.) GNU Tools for Arm Embedded Processors
We advice to use
GNU Arm Embedded Toolchain 7-2018-q2-update
from
https://developer.arm.com/open-source/gnu-toolchain/gnu-rm/downloads
due to issues with other versions.
4.) STlink tools
3.) STlink tools
$ git clone https://github.com/texane/stlink.git
$ cd stlink && make release && make debug && cd build/Release && sudo make install
5.) Modem firmware
4.) Modem firmware
$ git clone https://git.smp.tuhh.de/ahoi/firmware firmware
5.) configuration
In the src folder of the modem firmware, you must copy the file
"config.mk.dist" to "config.mk".
This will be your local configuration file. Apply changes if applicable.
The copy and modify procedure prevents pull-conflicts when updating your
repository.
6.) Building
$ cd firmware
$ make t=<hardware platform> [tx=<tx board>]
......
STM_MAKEFILE_PATH=hal/mcu/stm32f4/make/Makefile
SIM_MAKEFILE_PATH=hal/sim/make/Makefile
#ACI=./aci/aci-build.py
# ACI hack
#$(ACI)
export PROJECT = ahoi
export TXAMP=tx-bridge
ifeq ($(tx),single)
......@@ -21,16 +20,42 @@ endif
ifeq ($(t),stm)
-include hal/mcu/stm32f4/make/config.mk
-include $(STM_MAKEFILE_PATH)
#-include hal/mcu/stm32f4/make/config.mk
#-include $(STM_MAKEFILE_PATH)
export MAKEFILE_CONF=hal/mcu/stm32f4/make/config.mk
export MAKEFILE_PATH=hal/mcu/stm32f4/make/Makefile
endif
ifeq ($(t),stm-legacy)
-include hal/mcu/stm32f4-legacy/make/config.mk
-include $(STM_MAKEFILE_PATH)
#-include hal/mcu/stm32f4-legacy/make/config.mk
#-include $(STM_MAKEFILE_PATH)
export MAKEFILE_CONF=hal/mcu/stm32f4-legacy/make/config.mk
export MAKEFILE_PATH=hal/mcu/stm32f4/make/Makefile
endif
ifeq ($(t),sim)
-include hal/sim/make/config.mk
-include $(SIM_MAKEFILE_PATH)
#-include hal/sim/make/config.mk
#-include $(SIM_MAKEFILE_PATH)
export MAKEFILE_CONF=hal/sim/make/config.mk
export MAKEFILE_PATH=hal/sim/make/Makefile
endif
# set up build dir
export BUILD_DIR = build/$(t)
##
## MAKE PROCESS
##
# import platform specific make config
-include $(MAKEFILE_CONF)
# local make config
-include config.mk
# import platform specific makefile
-include $(MAKEFILE_PATH)
/**
* Copyright 2016-2018
* Copyright 2016-2020
*
* Bernd-Christian Renner, and
* Hamburg University of Technology (TUHH).
......@@ -108,7 +108,7 @@ aci_config_fillReply(uint8_t * payload)
#endif
// low freq
#ifdef LOW_FREQ_SETUP
#ifndef HIGHFREQ
strcat((char *)payload, "lf,");
#else
strcat((char *)payload, "hf,");
......
......@@ -143,9 +143,8 @@ aci_sample_processCmd(const mm_packet_t * pkt)
uint8_t
aci_sample_fillReply(uint8_t * payload)
aci_sample_fillReply(__attribute__ ((unused)) uint8_t * payload)
{
UNUSED(payload);
return 0;
}
......
##
## PLATFORM-INDEPENDENT files
##
CSRCS += \
aci/aci.c \
agc.c \
batvoltage.c \
channelquality.c \
crc.c \
fec.c \
freqsetup.c \
filterio.c \
hamming.c \
main.c \
packetpool.c \
receive.c \
id.c \
send.c \
packetqueue.c \
serializer.c \
spreader.c \
fixpoint.c \
interleaver.c \
ranging.c \
serial_enc.c \
sync.c
INC_PATH += \
hal/dev/ \
hal/interface/ \
hal/boards/${TXAMP} \
hal/boards/${RXAMP} \
hal/ \
aci \
aci/csrc
##
## FIRMWARE CONFIG
##
# enable debug pins
CFLAGS += -DPIN_DEBUG
# enable ACI sample command
CFLAGS += -DACI_SAMPLE_ENABLE
# enable TX gain compensation to equalize hydrophone levels
CFLAGS += -DTXGAIN_COMP
# set spreading/despreading method
# - best bit: only use best bit (ignore all others)
# - majority: make a majority vote (useful only for odd number)
# - magsum: calculate sum of bits
CFLAGS += -DSPREADER_DESPREAD_BESTBIT
# CFLAGS += -DSPREADER_DESPREAD_MAJORITY
# CFLAGS += -DSPREADER_DESPREAD_MAGSUM
# calculate and use noise floor for preamble detection rather than fixed
# absolute threshold
CFLAGS += -DSYNC_AUTO_NOISE
# use short symbols
# CFLAGS += -DHIGHSPEED
# use wide band
# CFLAGS += -DWIDEBAND
# use higher frequency band (EU regulations)
# CFLAGS += -DHIGHFREQ
##
## GIT REVISION
##
# add git branch, commit, and rev hash to software
GIT_BRANCH = $(shell git branch | grep "^\*" | sed -e 's/^..//')
GIT_COMMIT_COUNT = $(shell git rev-list ${GIT_BRANCH} --count --)
GIT_COMMIT_ID = $(shell git rev-parse --short ${GIT_BRANCH})
FIRMWARE_VERSION_STRING = "${GIT_BRANCH}-${GIT_COMMIT_COUNT}-${GIT_COMMIT_ID}"
CFLAGS += -DFIRMWARE_VERSION_STRING=\"${FIRMWARE_VERSION_STRING}\"
/**
* Copyright 2016-2019
* Copyright 2016-2020
*
* Bernd-Christian Renner, and
* Hamburg University of Technology (TUHH).
......@@ -88,7 +88,7 @@
#if SAMPLING_FREQ == 200000UL
# ifdef HIGHSPEED
# define SAMPLES_PER_SYMBOL 256 // must be power of 2
# ifdef LOW_FREQ_SETUP
# ifndef HIGHFREQ
# define FREQ_MSG "*** 200kHz, HIGHSPEED, LOWFREQ ***"
# define FREQ_RX_LUT_FILE "lut/freq-rx_25000-62500Hz_48x_256tap_200kHz.c"
# else
......@@ -97,7 +97,7 @@
# endif
# else
# define SAMPLES_PER_SYMBOL 512 // must be power of 2
# ifdef LOW_FREQ_SETUP
# ifndef HIGHFREQ
# define FREQ_MSG "*** 200kHz, LOWFREQ ***"
# define FREQ_RX_LUT_FILE "lut/freq-rx_25000-62500Hz_48x_512tap_200kHz.c"
# else
......@@ -111,13 +111,13 @@
#if TX_FACTOR * SAMPLING_FREQ == 200000UL
# ifdef HIGHSPEED
# ifdef LOW_FREQ_SETUP
# ifndef HIGHFREQ
# define FREQ_TX_LUT_FILE "lut/freq-tx_25000-62500Hz_48x_256tap_200kHz.c"
# else
# define FREQ_TX_LUT_FILE "lut/freq-tx_50000-87500Hz_48x_256tap_200kHz.c"
# endif
# else
# ifdef LOW_FREQ_SETUP
# ifndef HIGHFREQ
# define FREQ_TX_LUT_FILE "lut/freq-tx_25000-62500Hz_48x_512tap_200kHz.c"
# else
# define FREQ_TX_LUT_FILE "lut/freq-tx_50000-87500Hz_48x_512tap_200kHz.c"
......@@ -140,7 +140,7 @@ enum {
#define TRANSDUCER_DFLT TRANSDUCER_AS1
#ifdef LOW_FREQ_SETUP
#ifndef HIGHFREQ
# define GAIN_LUT_FILE "lut/gain-25000-62500kHz_48x.c"
#else
# define GAIN_LUT_FILE "lut/gain-50000-87500kHz_48x.c"
......
......@@ -38,12 +38,8 @@
PRJ_PATH = .
PROJECT = ahoi
TARGET = ahoi.elf
TARGET = ${PROJECT}.elf
MAKEFILE_PATH = hal/mcu/stm32f4/make/Makefile
MAKEFILE_CONF = hal/mcu/stm32f4-legacy/make/config.mk
BUILD_DIR = build/stm-legacy
FLASH=0x8000000
......@@ -85,29 +81,7 @@ hal/mcu/mcu_modem_config_flash.c \
hal/boards/${TXAMP}/txamp.c \
hal/boards/${RXAMP}/filterraw.c \
hal/boards/${RXAMP}/filter.c \
hal/boards/${RXAMP}/rxamp.c \
aci/aci.c \
agc.c \
batvoltage.c \
channelquality.c \
crc.c \
fec.c \
freqsetup.c \
filterio.c \
main.c \
packetpool.c \
receive.c \
id.c \
send.c \
hamming.c \
packetqueue.c \
serializer.c \
spreader.c \
fixpoint.c \
interleaver.c \
ranging.c \
serial_enc.c \
sync.c
hal/boards/${RXAMP}/rxamp.c
INC_PATH = \
hal/mcu/stm32f4/lib/include/stm32f4-hal/Legacy/ \
......@@ -120,17 +94,8 @@ hal/mcu/stm32f4/ \
hal/mcu/interface/ \
hal/mcu/ \
hal/dev/ \
hal/interface/ \
hal/boards/${TXAMP} \
hal/boards/${RXAMP} \
hal/ \
hal/mcu/board_headers/ \
aci \
aci/csrc
# debug flags and level
DBGFLAGS =
BUILD_DEBUG_LEVEL = 0
hal/mcu/board_headers/
# GCC optimization levels
OPTIMIZATION = -flto -funroll-loops -finline-functions -O2
......@@ -144,35 +109,10 @@ CFLAGS += -DHSE_VALUE=16000000U
CFLAGS += -mcpu=cortex-m4 -mthumb -mfloat-abi=hard -mfpu=fpv4-sp-d16
# extra constants used in firmware to decide options
CFLAGS += -DPIN_DEBUG
CFLAGS += -DACI_SAMPLE_ENABLE
CFLAGS += -DTXGAIN_COMP
#CFLAGS += -DSPREADER_DESPREAD_MAJORITY
CFLAGS += -DSPREADER_DESPREAD_BESTBIT
#CFLAGS += -DSPREADER_DESPREAD_MAGSUM
CFLAGS += -DSYNC_AUTO_NOISE
# setup sampling rate for receiving (SAMPLING_FREQ) and sending (TX_FACTOR)
# supported combinations
CFLAGS += -DSAMPLING_FREQ=200000 -DTX_FACTOR=1
# use short symbols
# CFLAGS += -DHIGHSPEED
# use wide band
# CFLAGS += -DWIDEBAND
# use lower frequency band (EU regulations)
# CFLAGS += -DLOW_FREQ_SETUP
# add git branch, commit, and rev hash to software
GIT_BRANCH = $(shell git branch | grep "^\*" | sed -e 's/^..//')
GIT_COMMIT_COUNT = $(shell git rev-list ${GIT_BRANCH} --count --)
GIT_COMMIT_ID = $(shell git rev-parse --short ${GIT_BRANCH})
FIRMWARE_VERSION_STRING = "${GIT_BRANCH}-${GIT_COMMIT_COUNT}-${GIT_COMMIT_ID}"
CFLAGS += -DFIRMWARE_VERSION_STRING=\"${FIRMWARE_VERSION_STRING}\"
# linker setup
LINKER_SCRIPT = $(PRJ_PATH)/hal/mcu/stm32f4/lib/linker_scripts
......@@ -181,7 +121,3 @@ LDFLAGS = -mcpu=cortex-m4 -mthumb -mfloat-abi=hard -mfpu=fpv4-sp-d16
#LDFLAGS += -T mem.ld -T libs.ld -T sections.ld -nostartfiles -Xlinker --gc-sections -L$(LINKER_SCRIPT) -Wl,-Map,"$(BUILD_DIR)/$(PROJ_NAME).map"
LDFLAGS += -T STM32F446RETx_FLASH.ld -nostartfiles -Xlinker --gc-sections -L$(LINKER_SCRIPT) -Wl,-Map,"$(BUILD_DIR)/$(PROJ_NAME).map"
# pre- and post-build commands
PREBUILD_CMD =
POSTBUILD_CMD =
......@@ -38,12 +38,8 @@
PRJ_PATH = .
PROJECT = ahoi
TARGET = ahoi.elf
TARGET = ${PROJECT}.elf
MAKEFILE_PATH = hal/mcu/stm32f4/make/Makefile
MAKEFILE_CONF = hal/mcu/stm32f4/make/config.mk
BUILD_DIR = build/stm
FLASH=0x8000000
......@@ -82,29 +78,7 @@ hal/mcu/mcu_modem_config.c \
hal/boards/${TXAMP}/txamp.c \
hal/boards/${RXAMP}/filterraw.c \
hal/boards/${RXAMP}/filter.c \
hal/boards/${RXAMP}/rxamp.c \
aci/aci.c \
agc.c \
batvoltage.c \
channelquality.c \
crc.c \
fec.c \
freqsetup.c \
filterio.c \
main.c \
packetpool.c \
receive.c \
id.c \
send.c \
hamming.c \
packetqueue.c \
serializer.c \
spreader.c \
fixpoint.c \
interleaver.c \
ranging.c \
serial_enc.c \
sync.c
hal/boards/${RXAMP}/rxamp.c
INC_PATH = \
hal/mcu/stm32f4/lib/include/stm32f4-hal/Legacy/ \
......@@ -116,13 +90,7 @@ hal/mcu/stm32f4/ \
hal/mcu/interface/ \
hal/mcu/ \
hal/dev/ \
hal/interface/ \
hal/boards/${TXAMP} \
hal/boards/${RXAMP} \
hal/ \
hal/mcu/board_headers/ \
aci \
aci/csrc
hal/mcu/board_headers/
# GCC optimization levels
......@@ -137,35 +105,10 @@ CFLAGS += -DHSE_VALUE=16000000U
CFLAGS += -mcpu=cortex-m4 -mthumb -mfloat-abi=hard -mfpu=fpv4-sp-d16
# extra constants used in firmware to decide options
CFLAGS += -DPIN_DEBUG
CFLAGS += -DACI_SAMPLE_ENABLE
CFLAGS += -DTXGAIN_COMP
#CFLAGS += -DSPREADER_DESPREAD_MAJORITY
CFLAGS += -DSPREADER_DESPREAD_BESTBIT
#CFLAGS += -DSPREADER_DESPREAD_MAGSUM
CFLAGS += -DSYNC_AUTO_NOISE
# setup sampling rate for receiving (SAMPLING_FREQ) and sending (TX_FACTOR)
# supported combinations
CFLAGS += -DSAMPLING_FREQ=200000 -DTX_FACTOR=1
# use short symbols
# CFLAGS += -DHIGHSPEED
# use wide band
# CFLAGS += -DWIDEBAND
# use lower frequency band (EU regulations)
# CFLAGS += -DLOW_FREQ_SETUP
# add git branch, commit, and rev hash to software
GIT_BRANCH = $(shell git branch | grep "^\*" | sed -e 's/^..//')
GIT_COMMIT_COUNT = $(shell git rev-list ${GIT_BRANCH} --count --)
GIT_COMMIT_ID = $(shell git rev-parse --short ${GIT_BRANCH})
FIRMWARE_VERSION_STRING = "${GIT_BRANCH}-${GIT_COMMIT_COUNT}-${GIT_COMMIT_ID}"
CFLAGS += -DFIRMWARE_VERSION_STRING=\"${FIRMWARE_VERSION_STRING}\"
# linker setup
LINKER_SCRIPT = $(PRJ_PATH)/hal/mcu/stm32f4/lib/linker_scripts
......
......@@ -40,4 +40,4 @@ incpath=$(foreach INC,$(addprefix $(PRJ_PATH)/,$(INC_PATH)),-I$(INC))
all:
mkdir -p $(BUILD_DIR)
gcc -Wall -o $(BUILD_DIR)/$(TARGET) -DDEBUG -DSIM -I. $(incpath) $(CFLAGS) $(OPTIMIZATION) $(FILES)
gcc -Wall -o $(BUILD_DIR)/$(TARGET) -DDEBUG -DSIM -I. $(incpath) $(CFLAGS) $(OPTIMIZATION) $(CSRCS)
......@@ -46,35 +46,14 @@ BUILD_DIR = build/sim
#PLATFORM=stm32f4
FILES=\
CSRCS = \
hal/sim/hal_adda.c \
hal/sim/hal_filterraw.c \
hal/sim/hal_host.c \
hal/sim/hal_init.c \
hal/sim/hal_modem_config.c \
hal/boards/${RXAMP}/filter.c \
aci/aci.c \
agc.c \
batvoltage.c \
channelquality.c \
crc.c \
fec.c \
freqsetup.c \
filterio.c \
hamming.c \
main.c \
packetpool.c \
receive.c \
id.c \
send.c \
packetqueue.c \
serializer.c \
spreader.c \
fixpoint.c \
interleaver.c \
ranging.c \
serial_enc.c \
sync.c
hal/boards/${RXAMP}/filter.c
INC_PATH = \
hal/boards/${RXAMP} \
......@@ -93,10 +72,6 @@ CFLAGS= -std=gnu99 -Wall
CFLAGS+= -DSPREADER_DESPREAD_BESTBIT
#CFLAGS+=-DSPREADER_DESPREAD_MAGSUM
#CFLAGS+= -DSYNC_SUM
CFLAGS+= -DSYNC_SYMBOLS_NUM_DFLT=12
#CFLAGS += -DSAMPLING_FREQ=50000 -DTX_FACTOR=3
CFLAGS += -DSAMPLING_FREQ=200000 -DTX_FACTOR=1
#CFLAGS+= -DTXGAIN_COMP
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment