Use latest upstream rboot, always build with OTA - use prebuilt rboot if
none is compiled locally.
This commit is contained in:
parent
1f1881a452
commit
d9202af2aa
20 changed files with 216 additions and 364 deletions
141
parameters.mk
Normal file
141
parameters.mk
Normal file
|
@ -0,0 +1,141 @@
|
|||
# Parameters for the esp-open-rtos make process
|
||||
#
|
||||
# You can edit this file to change parameters, but a better option is
|
||||
# to create a local.mk file and add overrides there. The local.mk file
|
||||
# can be in the root directory, or the program directory alongside the
|
||||
# Makefile, or both.
|
||||
#
|
||||
-include $(ROOT)local.mk
|
||||
-include local.mk
|
||||
|
||||
# Flash size in megabits
|
||||
# Valid values are same as for esptool.py - 2,4,8,16,32
|
||||
FLASH_SIZE ?= 16
|
||||
|
||||
# Flash mode, valid values are same as for esptool.py - qio,qout,dio.dout
|
||||
FLASH_MODE ?= qio
|
||||
|
||||
# Flash speed in MHz, valid values are same as for esptool.py - 80, 40, 26, 20
|
||||
FLASH_SPEED ?= 40
|
||||
|
||||
# Output directories to store intermediate compiled files
|
||||
# relative to the program directory
|
||||
BUILD_DIR ?= $(PROGRAM_DIR)build/
|
||||
FIRMWARE_DIR ?= $(PROGRAM_DIR)firmware/
|
||||
|
||||
# esptool.py from https://github.com/themadinventor/esptool
|
||||
ESPTOOL ?= esptool.py
|
||||
# serial port settings for esptool.py
|
||||
ESPPORT ?= /dev/ttyUSB0
|
||||
ESPBAUD ?= 115200
|
||||
|
||||
# firmware tool arguments
|
||||
ESPTOOL_ARGS=-fs $(FLASH_SIZE)m -fm $(FLASH_MODE) -ff $(FLASH_SPEED)m
|
||||
|
||||
|
||||
# set this to 0 if you don't need floating point support in printf/scanf
|
||||
# this will save approx 14.5KB flash space and 448 bytes of statically allocated
|
||||
# data RAM
|
||||
#
|
||||
# NB: Setting the value to 0 requires a recent esptool.py (Feb 2016 / commit ebf02c9)
|
||||
PRINTF_SCANF_FLOAT_SUPPORT ?= 1
|
||||
|
||||
FLAVOR ?= release # or debug
|
||||
|
||||
# Compiler names, etc. assume gdb
|
||||
CROSS ?= xtensa-lx106-elf-
|
||||
|
||||
# Path to the filteroutput.py tool
|
||||
FILTEROUTPUT ?= $(ROOT)/utils/filteroutput.py
|
||||
|
||||
AR = $(CROSS)ar
|
||||
CC = $(CROSS)gcc
|
||||
CPP = $(CROSS)cpp
|
||||
LD = $(CROSS)gcc
|
||||
NM = $(CROSS)nm
|
||||
C++ = $(CROSS)g++
|
||||
SIZE = $(CROSS)size
|
||||
OBJCOPY = $(CROSS)objcopy
|
||||
OBJDUMP = $(CROSS)objdump
|
||||
|
||||
# Source components to compile and link. Each of these are subdirectories
|
||||
# of the root, with a 'component.mk' file.
|
||||
COMPONENTS ?= $(EXTRA_COMPONENTS) FreeRTOS lwip core
|
||||
|
||||
# binary esp-iot-rtos SDK libraries to link. These are pre-processed prior to linking.
|
||||
SDK_LIBS ?= main net80211 phy pp wpa
|
||||
|
||||
# open source libraries linked in
|
||||
LIBS ?= hal gcc c
|
||||
|
||||
# set to 0 if you want to use the toolchain libc instead of esp-open-rtos newlib
|
||||
OWN_LIBC ?= 1
|
||||
|
||||
# Note: you will need a recent esp
|
||||
ENTRY_SYMBOL ?= call_user_start
|
||||
|
||||
# Set this to zero if you don't want individual function & data sections
|
||||
# (some code may be slightly slower, linking will be slighty slower,
|
||||
# but compiled code size will come down a small amount.)
|
||||
SPLIT_SECTIONS ?= 1
|
||||
|
||||
# Set this to 1 to have all compiler warnings treated as errors (and stop the
|
||||
# build). This is recommended whenever you are working on code which will be
|
||||
# submitted back to the main project, as all submitted code will be expected to
|
||||
# compile without warnings to be accepted.
|
||||
WARNINGS_AS_ERRORS ?= 0
|
||||
|
||||
# Common flags for both C & C++_
|
||||
C_CXX_FLAGS ?= -Wall -Wl,-EL -nostdlib $(EXTRA_C_CXX_FLAGS)
|
||||
# Flags for C only
|
||||
CFLAGS ?= $(C_CXX_FLAGS) -std=gnu99 $(EXTRA_CFLAGS)
|
||||
# Flags for C++ only
|
||||
CXXFLAGS ?= $(C_CXX_FLAGS) -fno-exceptions -fno-rtti $(EXTRA_CXXFLAGS)
|
||||
|
||||
# these aren't all technically preprocesor args, but used by all 3 of C, C++, assembler
|
||||
CPPFLAGS += -mlongcalls -mtext-section-literals
|
||||
|
||||
LDFLAGS = -nostdlib -Wl,--no-check-sections -L$(BUILD_DIR)sdklib -L$(ROOT)lib -u $(ENTRY_SYMBOL) -Wl,-static -Wl,-Map=$(BUILD_DIR)$(PROGRAM).map $(EXTRA_LDFLAGS)
|
||||
|
||||
ifeq ($(WARNINGS_AS_ERRORS),1)
|
||||
C_CXX_FLAGS += -Werror
|
||||
endif
|
||||
|
||||
ifeq ($(SPLIT_SECTIONS),1)
|
||||
C_CXX_FLAGS += -ffunction-sections -fdata-sections
|
||||
LDFLAGS += -Wl,-gc-sections
|
||||
endif
|
||||
|
||||
ifeq ($(FLAVOR),debug)
|
||||
C_CXX_FLAGS += -g -O0
|
||||
LDFLAGS += -g -O0
|
||||
else ifeq ($(FLAVOR),sdklike)
|
||||
# These are flags intended to produce object code as similar as possible to
|
||||
# the output of the compiler used to build the SDK libs (for comparison of
|
||||
# disassemblies when coding replacement routines). It is not normally
|
||||
# intended to be used otherwise.
|
||||
CFLAGS += -O2 -Os -fno-inline -fno-ipa-cp -fno-toplevel-reorder
|
||||
LDFLAGS += -O2
|
||||
else
|
||||
C_CXX_FLAGS += -g -O2
|
||||
LDFLAGS += -g -O2
|
||||
endif
|
||||
|
||||
GITSHORTREV=\"$(shell cd $(ROOT); git rev-parse --short -q HEAD 2> /dev/null)\"
|
||||
ifeq ($(GITSHORTREV),\"\")
|
||||
GITSHORTREV="\"(nogit)\"" # (same length as a short git hash)
|
||||
endif
|
||||
CPPFLAGS += -DGITSHORTREV=$(GITSHORTREV)
|
||||
|
||||
LINKER_SCRIPTS += $(ROOT)ld/program.ld $(ROOT)ld/rom.ld
|
||||
|
||||
# rboot firmware binary paths for flashing
|
||||
RBOOT_BIN = $(ROOT)bootloader/firmware/rboot.bin
|
||||
RBOOT_PREBUILT_BIN = $(ROOT)bootloader/firmware_prebuilt/rboot.bin
|
||||
RBOOT_CONF = $(ROOT)bootloader/firmware_prebuilt/blank_config.bin
|
||||
|
||||
# if a custom bootloader hasn't been compiled, use the
|
||||
# prebuilt binary from the source tree
|
||||
ifeq (,$(wildcard $(RBOOT_BIN)))
|
||||
RBOOT_BIN=$(RBOOT_PREBUILT_BIN)
|
||||
endif
|
Loading…
Add table
Add a link
Reference in a new issue