2016-09-05 00:27:44 +02:00
|
|
|
##############################################################################
|
|
|
|
|
# Build global options
|
|
|
|
|
# NOTE: Can be overridden externally.
|
|
|
|
|
#
|
|
|
|
|
|
|
|
|
|
# Compiler options here.
|
|
|
|
|
ifeq ($(USE_OPT),)
|
2019-10-17 17:47:47 +02:00
|
|
|
USE_OPT = -O2 -fno-inline-small-functions -ggdb -fomit-frame-pointer -falign-functions=16 --specs=nano.specs -fstack-usage
|
2016-09-05 00:27:44 +02:00
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
# C specific options here (added to USE_OPT).
|
|
|
|
|
ifeq ($(USE_COPT),)
|
|
|
|
|
USE_COPT =
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
# C++ specific options here (added to USE_OPT).
|
|
|
|
|
ifeq ($(USE_CPPOPT),)
|
|
|
|
|
USE_CPPOPT = -fno-rtti
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
# Enable this if you want the linker to remove unused code and data
|
|
|
|
|
ifeq ($(USE_LINK_GC),)
|
|
|
|
|
USE_LINK_GC = yes
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
# Linker extra options here.
|
|
|
|
|
ifeq ($(USE_LDOPT),)
|
|
|
|
|
USE_LDOPT =
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
# Enable this if you want link time optimizations (LTO)
|
|
|
|
|
ifeq ($(USE_LTO),)
|
|
|
|
|
USE_LTO = no
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
# If enabled, this option allows to compile the application in THUMB mode.
|
|
|
|
|
ifeq ($(USE_THUMB),)
|
|
|
|
|
USE_THUMB = yes
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
# Enable this if you want to see the full log while compiling.
|
|
|
|
|
ifeq ($(USE_VERBOSE_COMPILE),)
|
|
|
|
|
USE_VERBOSE_COMPILE = no
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
# If enabled, this option makes the build process faster by not compiling
|
|
|
|
|
# modules not used in the current configuration.
|
|
|
|
|
ifeq ($(USE_SMART_BUILD),)
|
|
|
|
|
USE_SMART_BUILD = yes
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
#
|
|
|
|
|
# Build global options
|
|
|
|
|
##############################################################################
|
|
|
|
|
|
2019-08-18 01:19:17 +02:00
|
|
|
ifeq ($(VERSION),)
|
|
|
|
|
VERSION="$(shell git describe --tags)"
|
|
|
|
|
endif
|
|
|
|
|
|
2016-09-05 00:27:44 +02:00
|
|
|
##############################################################################
|
|
|
|
|
# Architecture or project specific options
|
|
|
|
|
#
|
|
|
|
|
|
|
|
|
|
# Stack size to be allocated to the Cortex-M process stack. This stack is
|
|
|
|
|
# the stack used by the main() thread.
|
|
|
|
|
ifeq ($(USE_PROCESS_STACKSIZE),)
|
2020-02-26 21:30:50 +01:00
|
|
|
USE_PROCESS_STACKSIZE = 0x200
|
2016-09-05 00:27:44 +02:00
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
# Stack size to the allocated to the Cortex-M main/exceptions stack. This
|
|
|
|
|
# stack is used for processing interrupts and exceptions.
|
|
|
|
|
ifeq ($(USE_EXCEPTIONS_STACKSIZE),)
|
Increase screen render (in some cases up to 2x speedup), decrease stack usage (code size less on 1500 bytes)
Write simple profiling definitions
START_PROFILE
STOP_PROFILE
Use it for detect sys tick amount and output to screen
main.c
Reduce VNA_SHELL_MAX_LENGTH to 48, and made shell_line as static (reduce stack usage)
Remove BaseSequentialStream *chp from command calls (use static shell_stream), it reduce code size and stack usage
Use VNA_SHELL_FUNCTION definition for all commands
Remove chMtxLock(&mutex);chMtxUnlock(&mutex); from commands, and define command flag for use it in calls
Apply default scale from trace_info on trace change
Led blink outside from main sweep cycle (better look, and less noise)
Some size fixes
chprintf.c
Implement small memory stream object, only put function and plot_printf(char *str, int size, const char *fmt, ...)
Use it in all code (little increase speed, and huge decrease size)
Restore USE_EXCEPTIONS_STACKSIZE = 0x180 (possible not need, but not good tested)
plot.c
Made huge screen render profile (add some comments)
Not use cell clipping on draw cell data (use constants increase speed, decrease stack usage (not need put it to stack))
Clip cell if need only on screen flush
Use new plot_printf, remove chsnprintf usage
Apply code style
============================================================================================================
Interesting fact
Usage memset(spi_buffer, DEFAULT_BG_COLOR, (h*CELLWIDTH)*sizeof(uint16_t)); dramatically decrease render speed
possibly it fill buffer by 8 bit data, so slow
Usage
uint32_t *p = (uint32_t *)spi_buffer;
while (count--) {
p[0] = DEFAULT_BG_COLOR|(DEFAULT_BG_COLOR<<16);
p[1] = DEFAULT_BG_COLOR|(DEFAULT_BG_COLOR<<16);
p[2] = DEFAULT_BG_COLOR|(DEFAULT_BG_COLOR<<16);
p[3] = DEFAULT_BG_COLOR|(DEFAULT_BG_COLOR<<16);
p+=4;
}
gives x10 speed perfomance
Draw polar and smit grid very slow (but i don`t know how increase it except use bitmaps, but it need about 5-8k flash size and file prepare)
On long lines render slow down, but clipping use more calculation, and not give good result
Need made stack usage check
2020-02-24 20:47:52 +01:00
|
|
|
USE_EXCEPTIONS_STACKSIZE = 0x200
|
2016-09-05 00:27:44 +02:00
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
#
|
|
|
|
|
# Architecture or project specific options
|
|
|
|
|
##############################################################################
|
|
|
|
|
|
|
|
|
|
##############################################################################
|
|
|
|
|
# Project, sources and paths
|
|
|
|
|
#
|
|
|
|
|
|
|
|
|
|
# Define project name here
|
|
|
|
|
PROJECT = ch
|
|
|
|
|
|
|
|
|
|
# Imported source files and paths
|
2017-01-14 02:05:08 +01:00
|
|
|
#CHIBIOS = ../ChibiOS-RT
|
|
|
|
|
CHIBIOS = ChibiOS
|
2016-09-05 00:27:44 +02:00
|
|
|
PROJ = .
|
|
|
|
|
# Startup files.
|
|
|
|
|
include $(CHIBIOS)/os/common/startup/ARMCMx/compilers/GCC/mk/startup_stm32f0xx.mk
|
|
|
|
|
# HAL-OSAL files (optional).
|
|
|
|
|
include $(CHIBIOS)/os/hal/hal.mk
|
|
|
|
|
include $(CHIBIOS)/os/hal/ports/STM32/STM32F0xx/platform.mk
|
|
|
|
|
#include $(CHIBIOS)/os/hal/boards/ST_STM32F072B_DISCOVERY/board.mk
|
|
|
|
|
include NANOVNA_STM32_F072/board.mk
|
|
|
|
|
include $(CHIBIOS)/os/hal/osal/rt/osal.mk
|
|
|
|
|
# RTOS files (optional).
|
|
|
|
|
include $(CHIBIOS)/os/rt/rt.mk
|
|
|
|
|
include $(CHIBIOS)/os/common/ports/ARMCMx/compilers/GCC/mk/port_v6m.mk
|
|
|
|
|
# Other files (optional).
|
2020-02-27 20:11:32 +01:00
|
|
|
#include $(CHIBIOS)/test/rt/test.mk
|
2016-09-05 00:27:44 +02:00
|
|
|
include $(CHIBIOS)/os/hal/lib/streams/streams.mk
|
2020-02-27 20:11:32 +01:00
|
|
|
#include $(CHIBIOS)/os/various/shell/shell.mk
|
2016-09-05 00:27:44 +02:00
|
|
|
|
|
|
|
|
# Define linker script file here
|
2016-10-16 13:02:38 +02:00
|
|
|
#LDSCRIPT= $(STARTUPLD)/STM32F072xB.ld
|
|
|
|
|
LDSCRIPT= STM32F072xB.ld
|
2016-09-05 00:27:44 +02:00
|
|
|
|
|
|
|
|
# C sources that can be compiled in ARM or THUMB mode depending on the global
|
|
|
|
|
# setting.
|
|
|
|
|
CSRC = $(STARTUPSRC) \
|
|
|
|
|
$(KERNSRC) \
|
|
|
|
|
$(PORTSRC) \
|
|
|
|
|
$(OSALSRC) \
|
|
|
|
|
$(HALSRC) \
|
|
|
|
|
$(PLATFORMSRC) \
|
|
|
|
|
$(BOARDSRC) \
|
|
|
|
|
$(STREAMSSRC) \
|
|
|
|
|
usbcfg.c \
|
2019-10-20 15:50:29 +02:00
|
|
|
main.c si5351.c tlv320aic3204.c dsp.c plot.c ui.c ili9341.c numfont20x22.c Font5x7.c flash.c adc.c
|
2016-09-05 00:27:44 +02:00
|
|
|
|
|
|
|
|
# C++ sources that can be compiled in ARM or THUMB mode depending on the global
|
|
|
|
|
# setting.
|
|
|
|
|
CPPSRC =
|
|
|
|
|
|
|
|
|
|
# C sources to be compiled in ARM mode regardless of the global setting.
|
|
|
|
|
# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler
|
|
|
|
|
# option that results in lower performance and larger code size.
|
|
|
|
|
ACSRC =
|
|
|
|
|
|
|
|
|
|
# C++ sources to be compiled in ARM mode regardless of the global setting.
|
|
|
|
|
# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler
|
|
|
|
|
# option that results in lower performance and larger code size.
|
|
|
|
|
ACPPSRC =
|
|
|
|
|
|
|
|
|
|
# C sources to be compiled in THUMB mode regardless of the global setting.
|
|
|
|
|
# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler
|
|
|
|
|
# option that results in lower performance and larger code size.
|
|
|
|
|
TCSRC =
|
|
|
|
|
|
|
|
|
|
# C sources to be compiled in THUMB mode regardless of the global setting.
|
|
|
|
|
# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler
|
|
|
|
|
# option that results in lower performance and larger code size.
|
|
|
|
|
TCPPSRC =
|
|
|
|
|
|
|
|
|
|
# List ASM source files here
|
|
|
|
|
ASMSRC = $(STARTUPASM) $(PORTASM) $(OSALASM)
|
|
|
|
|
|
|
|
|
|
INCDIR = $(STARTUPINC) $(KERNINC) $(PORTINC) $(OSALINC) \
|
|
|
|
|
$(HALINC) $(PLATFORMINC) $(BOARDINC) \
|
2020-03-08 12:03:54 +01:00
|
|
|
$(STREAMSINC)
|
2016-09-05 00:27:44 +02:00
|
|
|
|
|
|
|
|
#
|
|
|
|
|
# Project, sources and paths
|
|
|
|
|
##############################################################################
|
|
|
|
|
|
|
|
|
|
##############################################################################
|
|
|
|
|
# Compiler settings
|
|
|
|
|
#
|
|
|
|
|
|
|
|
|
|
MCU = cortex-m0
|
|
|
|
|
|
|
|
|
|
#TRGT = arm-elf-
|
|
|
|
|
TRGT = arm-none-eabi-
|
|
|
|
|
CC = $(TRGT)gcc
|
|
|
|
|
CPPC = $(TRGT)g++
|
|
|
|
|
# Enable loading with g++ only if you need C++ runtime support.
|
|
|
|
|
# NOTE: You can use C++ even without C++ support if you are careful. C++
|
|
|
|
|
# runtime support makes code size explode.
|
|
|
|
|
LD = $(TRGT)gcc
|
|
|
|
|
#LD = $(TRGT)g++
|
|
|
|
|
CP = $(TRGT)objcopy
|
2020-03-08 12:03:54 +01:00
|
|
|
AS = $(TRGT)gcc -x assembler-with-cpp -ggdb
|
2016-09-05 00:27:44 +02:00
|
|
|
AR = $(TRGT)ar
|
|
|
|
|
OD = $(TRGT)objdump
|
|
|
|
|
SZ = $(TRGT)size
|
|
|
|
|
HEX = $(CP) -O ihex
|
|
|
|
|
BIN = $(CP) -O binary
|
|
|
|
|
|
|
|
|
|
# ARM-specific options here
|
|
|
|
|
AOPT =
|
|
|
|
|
|
|
|
|
|
# THUMB-specific options here
|
|
|
|
|
TOPT = -mthumb -DTHUMB
|
|
|
|
|
|
|
|
|
|
# Define C warning options here
|
|
|
|
|
CWARN = -Wall -Wextra -Wundef -Wstrict-prototypes
|
|
|
|
|
|
|
|
|
|
# Define C++ warning options here
|
|
|
|
|
CPPWARN = -Wall -Wextra -Wundef
|
|
|
|
|
|
|
|
|
|
#
|
|
|
|
|
# Compiler settings
|
|
|
|
|
##############################################################################
|
|
|
|
|
|
|
|
|
|
##############################################################################
|
|
|
|
|
# Start of user section
|
|
|
|
|
#
|
|
|
|
|
|
|
|
|
|
# List all user C define here, like -D_DEBUG=1
|
2019-08-18 01:19:17 +02:00
|
|
|
UDEFS = -DSHELL_CMD_TEST_ENABLED=FALSE -DSHELL_CMD_MEM_ENABLED=FALSE -DARM_MATH_CM0 -DVERSION=\"$(VERSION)\"
|
2016-09-05 00:27:44 +02:00
|
|
|
|
|
|
|
|
# Define ASM defines here
|
|
|
|
|
UADEFS =
|
|
|
|
|
|
|
|
|
|
# List all user directories here
|
|
|
|
|
UINCDIR =
|
|
|
|
|
|
|
|
|
|
# List the user directory to look for the libraries here
|
|
|
|
|
ULIBDIR =
|
|
|
|
|
|
|
|
|
|
# List all user libraries here
|
|
|
|
|
ULIBS = -lm
|
|
|
|
|
|
|
|
|
|
#
|
|
|
|
|
# End of user defines
|
|
|
|
|
##############################################################################
|
|
|
|
|
|
|
|
|
|
RULESPATH = $(CHIBIOS)/os/common/startup/ARMCMx/compilers/GCC
|
|
|
|
|
include $(RULESPATH)/rules.mk
|
2017-01-14 06:32:28 +01:00
|
|
|
|
2019-08-25 16:08:42 +02:00
|
|
|
flash: build/ch.bin
|
|
|
|
|
dfu-util -d 0483:df11 -a 0 -s 0x08000000:leave -D build/ch.bin
|
|
|
|
|
|
2019-09-07 02:08:43 +02:00
|
|
|
dfu:
|
2019-09-28 06:07:08 +02:00
|
|
|
-@printf "reset dfu\r" >/dev/cu.usbmodem401
|
2019-09-07 02:08:43 +02:00
|
|
|
|
2017-01-14 06:32:28 +01:00
|
|
|
|