2023-02-21 00:01:58 -05:00
|
|
|
# Select the board to build for:
|
|
|
|
ifdef BOARD_DIR
|
|
|
|
# Custom board path - remove trailing slash and get the final component of
|
|
|
|
# the path as the board name.
|
|
|
|
BOARD ?= $(notdir $(BOARD_DIR:/=))
|
|
|
|
else
|
2023-08-15 10:51:37 -04:00
|
|
|
# If not given on the command line, then default to ESP8266_GENERIC.
|
|
|
|
BOARD ?= ESP8266_GENERIC
|
2019-09-18 01:08:06 -04:00
|
|
|
BOARD_DIR ?= boards/$(BOARD)
|
2023-02-21 00:01:58 -05:00
|
|
|
endif
|
|
|
|
|
2019-09-18 01:08:06 -04:00
|
|
|
ifeq ($(wildcard $(BOARD_DIR)/.),)
|
2023-08-15 10:51:37 -04:00
|
|
|
ifeq ($(findstring boards/GENERIC,$(BOARD_DIR)),boards/GENERIC)
|
|
|
|
$(warning The GENERIC* boards have been renamed to ESP8266_GENERIC)
|
|
|
|
endif
|
2019-09-18 01:08:06 -04:00
|
|
|
$(error Invalid BOARD specified: $(BOARD_DIR))
|
|
|
|
endif
|
|
|
|
|
2023-08-15 10:51:37 -04:00
|
|
|
# If the build directory is not given, make it reflect the board name (and
|
|
|
|
# optionally the board variant).
|
|
|
|
ifneq ($(BOARD_VARIANT),)
|
|
|
|
BUILD ?= build-$(BOARD)-$(BOARD_VARIANT)
|
|
|
|
else
|
2023-02-21 00:01:58 -05:00
|
|
|
BUILD ?= build-$(BOARD)
|
2023-08-15 10:51:37 -04:00
|
|
|
endif
|
2023-02-21 00:01:58 -05:00
|
|
|
|
2017-09-06 00:09:13 -04:00
|
|
|
include ../../py/mkenv.mk
|
2014-11-27 15:30:33 -05:00
|
|
|
|
2019-09-18 01:08:06 -04:00
|
|
|
# Optional
|
|
|
|
-include $(BOARD_DIR)/mpconfigboard.mk
|
|
|
|
|
2014-11-27 15:30:33 -05:00
|
|
|
# qstr definitions (must come before including py.mk)
|
|
|
|
QSTR_DEFS = qstrdefsport.h #$(BUILD)/pins_qstr.h
|
2019-09-18 01:08:06 -04:00
|
|
|
QSTR_GLOBAL_DEPENDENCIES = $(BOARD_DIR)/mpconfigboard.h
|
2014-11-27 15:30:33 -05:00
|
|
|
|
ports: Enable error text compression for various ports, but not all.
Enabled on: bare-arm, minimal, unix coverage/dev/minimal, stm32, esp32,
esp8266, cc3200, teensy, qemu-arm, nrf. Not enabled on others to be able
to test the code when the feature is disabled (the default case).
Code size change for this commit:
bare-arm: -600 -0.906%
minimal x86: -308 -0.208%
unix x64: +0 +0.000%
unix nanbox: +0 +0.000%
stm32: -3368 -0.869% PYBV10
cc3200: -1024 -0.558%
esp8266: -2512 -0.368% GENERIC
esp32: -2876 -0.205% GENERIC[incl -3168(data)]
nrf: -1708 -1.173% pca10040
samd: +0 +0.000% ADAFRUIT_ITSYBITSY_M4_EXPRESS
2020-03-04 05:56:44 -05:00
|
|
|
# MicroPython feature configurations
|
|
|
|
MICROPY_ROM_TEXT_COMPRESSION ?= 1
|
2022-08-18 01:01:26 -04:00
|
|
|
MICROPY_PY_SSL = 1
|
2016-07-12 18:59:41 -04:00
|
|
|
MICROPY_SSL_AXTLS = 1
|
2018-10-22 21:18:25 -04:00
|
|
|
AXTLS_DEFS_EXTRA = -Dabort=abort_ -DRT_MAX_PLAIN_LENGTH=1024 -DRT_EXTRA=4096
|
2017-09-10 06:54:00 -04:00
|
|
|
BTREE_DEFS_EXTRA = -DDEFPSIZE=1024 -DMINCACHE=3
|
2016-04-27 17:46:51 -04:00
|
|
|
|
2019-10-10 08:01:29 -04:00
|
|
|
FROZEN_MANIFEST ?= boards/manifest.py
|
2016-10-20 18:08:43 -04:00
|
|
|
|
2014-11-27 15:30:33 -05:00
|
|
|
# include py core make definitions
|
2017-08-10 22:22:19 -04:00
|
|
|
include $(TOP)/py/py.mk
|
2022-06-17 12:11:30 -04:00
|
|
|
include $(TOP)/extmod/extmod.mk
|
2014-11-27 15:30:33 -05:00
|
|
|
|
2022-07-08 00:59:33 -04:00
|
|
|
GIT_SUBMODULES += lib/axtls lib/berkeley-db-1.xx
|
2019-10-13 21:09:06 -04:00
|
|
|
|
2023-08-15 10:51:37 -04:00
|
|
|
FWBIN = $(BUILD)/firmware.bin
|
2015-12-22 05:44:08 -05:00
|
|
|
PORT ?= /dev/ttyACM0
|
2015-12-30 13:37:58 -05:00
|
|
|
BAUD ?= 115200
|
2016-09-26 16:22:39 -04:00
|
|
|
FLASH_MODE ?= qio
|
2016-10-17 17:06:59 -04:00
|
|
|
FLASH_SIZE ?= detect
|
2019-12-21 15:22:26 -05:00
|
|
|
CROSS_COMPILE ?= xtensa-lx106-elf-
|
2014-11-28 13:05:25 -05:00
|
|
|
ESP_SDK = $(shell $(CC) -print-sysroot)/usr
|
2014-11-27 15:30:33 -05:00
|
|
|
|
2015-10-19 11:22:16 -04:00
|
|
|
INC += -I.
|
2017-08-10 22:22:19 -04:00
|
|
|
INC += -I$(TOP)
|
2014-11-27 15:30:33 -05:00
|
|
|
INC += -I$(BUILD)
|
|
|
|
INC += -I$(ESP_SDK)/include
|
|
|
|
|
2016-03-29 14:10:10 -04:00
|
|
|
# UART for "os" messages. 0 is normal UART as used by MicroPython REPL,
|
2016-05-26 17:44:05 -04:00
|
|
|
# 1 is debug UART (tx only), -1 to disable.
|
2020-09-11 02:47:29 -04:00
|
|
|
UART_OS = -1
|
2015-05-13 09:39:25 -04:00
|
|
|
|
2014-11-27 15:30:33 -05:00
|
|
|
CFLAGS_XTENSA = -fsingle-precision-constant -Wdouble-promotion \
|
|
|
|
-D__ets__ -DICACHE_FLASH \
|
|
|
|
-fno-inline-functions \
|
2016-04-26 17:35:13 -04:00
|
|
|
-Wl,-EL -mlongcalls -mtext-section-literals -mforce-l32 \
|
2016-03-07 22:29:05 -05:00
|
|
|
-DLWIP_OPEN_SRC
|
2014-11-27 15:30:33 -05:00
|
|
|
|
2022-10-08 08:08:53 -04:00
|
|
|
CFLAGS += $(INC) -Wall -Wpointer-arith -Werror -std=gnu99 -nostdlib -DUART_OS=$(UART_OS) \
|
extmod: Make extmod.mk self-contained.
This makes it so that all a port needs to do is set the relevant variables
and "include extmod.mk" and doesn't need to worry about adding anything to
OBJ, CFLAGS, SRC_QSTR, etc.
Make all extmod variables (src, flags, etc) private to extmod.mk.
Also move common/shared, extmod-related fragments (e.g. wiznet, cyw43,
bluetooth) into extmod.mk.
Now that SRC_MOD, CFLAGS_MOD, CXXFLAGS_MOD are unused by both extmod.mk
(and user-C-modules in a previous commit), remove all uses of them from
port makefiles.
Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
2022-10-08 08:59:08 -04:00
|
|
|
$(CFLAGS_XTENSA) $(COPT) $(CFLAGS_EXTRA) -I$(BOARD_DIR)
|
2014-11-27 15:30:33 -05:00
|
|
|
|
esp8266: Change from FAT to littlefs v2 as default filesystem.
This commit changes the esp8266 boards to use littlefs v2 as the
filesystem, rather than FAT. Since the esp8266 doesn't expose the
filesystem to the PC over USB there's no strong reason to keep it as FAT.
Littlefs is smaller in code size, is more efficient in use of flash to
store data, is resilient over power failure, and using it saves about 4k of
heap RAM, which can now be used for other things.
This is a backwards incompatible change because all existing esp8266 boards
will need to update their filesystem after installing new firmware (eg
backup old files, install firmware, restore files to new filesystem).
As part of this commit the memory layout of the default board (GENERIC) has
changed. It now allocates all 1M of memory-mapped flash to the firmware,
so the filesystem area starts at the 2M point. This is done to allow more
frozen bytecode to be stored in the 1M of memory-mapped flash. This
requires an esp8266 module with 2M or more of flash to work, so a new board
called GENERIC_1M is added which has the old memory-mapping (but still
changed to use littlefs for the filesystem).
In summary there are now 3 esp8266 board definitions:
- GENERIC_512K: for 512k modules, doesn't have a filesystem.
- GENERIC_1M: for 1M modules, 572k for firmware+frozen code, 396k for
filesystem (littlefs).
- GENERIC: for 2M (or greater) modules, 968k for firmware+frozen code,
1M+ for filesystem (littlefs), FAT driver also included in firmware for
use on, eg, external SD cards.
2020-03-26 07:35:32 -04:00
|
|
|
LD_FILES ?= boards/esp8266_2m.ld
|
2022-10-08 08:08:53 -04:00
|
|
|
LDFLAGS += -nostdlib -T $(LD_FILES) -Map=$(@:.elf=.map) --cref
|
extmod: Make extmod.mk self-contained.
This makes it so that all a port needs to do is set the relevant variables
and "include extmod.mk" and doesn't need to worry about adding anything to
OBJ, CFLAGS, SRC_QSTR, etc.
Make all extmod variables (src, flags, etc) private to extmod.mk.
Also move common/shared, extmod-related fragments (e.g. wiznet, cyw43,
bluetooth) into extmod.mk.
Now that SRC_MOD, CFLAGS_MOD, CXXFLAGS_MOD are unused by both extmod.mk
(and user-C-modules in a previous commit), remove all uses of them from
port makefiles.
Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
2022-10-08 08:59:08 -04:00
|
|
|
LIBS += -L$(ESP_SDK)/lib -lmain -ljson -llwip_open -lpp -lnet80211 -lwpa -lphy -lnet80211
|
2014-11-27 15:30:33 -05:00
|
|
|
|
esp32,esp8266: Add support for the Espressif ESP-NOW protocol.
ESP-NOW is a proprietary wireless communication protocol which supports
connectionless communication between ESP32 and ESP8266 devices, using
vendor specific WiFi frames. This commit adds support for this protocol
through a new `espnow` module.
This commit builds on original work done by @nickzoic, @shawwwn and with
contributions from @zoland. Features include:
- Use of (extended) ring buffers in py/ringbuf.[ch] for robust IO.
- Signal strength (RSSI) monitoring.
- Core support in `_espnow` C module, extended by `espnow.py` module.
- Asyncio support via `aioespnow.py` module (separate to this commit).
- Docs provided at `docs/library/espnow.rst`.
Methods available in espnow.ESPNow class are:
- active(True/False)
- config(): set rx buffer size, read timeout and tx rate
- recv()/irecv()/recvinto() to read incoming messages from peers
- send() to send messages to peer devices
- any() to test if a message is ready to read
- irq() to set callback for received messages
- stats() returns transfer stats:
(tx_pkts, tx_pkt_responses, tx_failures, rx_pkts, lost_rx_pkts)
- add_peer(mac, ...) registers a peer before sending messages
- get_peer(mac) returns peer info: (mac, lmk, channel, ifidx, encrypt)
- mod_peer(mac, ...) changes peer info parameters
- get_peers() returns all peer info tuples
- peers_table supports RSSI signal monitoring for received messages:
{peer1: [rssi, time_ms], peer2: [rssi, time_ms], ...}
ESP8266 is a pared down version of the ESP32 ESPNow support due to code
size restrictions and differences in the low-level API. See docs for
details.
Also included is a test suite in tests/multi_espnow. This tests basic
espnow data transfer, multiple transfers, various message sizes, encrypted
messages (pmk and lmk), and asyncio support.
Initial work is from https://github.com/micropython/micropython/pull/4115.
Initial import of code is from:
https://github.com/nickzoic/micropython/tree/espnow-4115.
2020-09-24 01:37:04 -04:00
|
|
|
ifeq ($(MICROPY_ESPNOW),1)
|
|
|
|
CFLAGS += -DMICROPY_ESPNOW=1
|
|
|
|
LIBS += -lespnow
|
|
|
|
endif
|
|
|
|
|
2014-11-27 15:30:33 -05:00
|
|
|
LIBGCC_FILE_NAME = $(shell $(CC) $(CFLAGS) -print-libgcc-file-name)
|
2014-11-28 09:58:25 -05:00
|
|
|
LIBS += -L$(dir $(LIBGCC_FILE_NAME)) -lgcc
|
2014-11-27 15:30:33 -05:00
|
|
|
|
|
|
|
# Debugging/Optimization
|
2022-07-28 03:56:27 -04:00
|
|
|
CFLAGS += -g # always include debug info in the ELF
|
2014-11-27 15:30:33 -05:00
|
|
|
ifeq ($(DEBUG), 1)
|
|
|
|
COPT = -O0
|
|
|
|
else
|
|
|
|
CFLAGS += -fdata-sections -ffunction-sections
|
2016-04-26 17:35:13 -04:00
|
|
|
COPT += -Os -DNDEBUG
|
2014-11-27 15:30:33 -05:00
|
|
|
LDFLAGS += --gc-sections
|
|
|
|
endif
|
|
|
|
|
2019-03-13 21:20:39 -04:00
|
|
|
# Options for mpy-cross
|
|
|
|
MPY_CROSS_FLAGS += -march=xtensa
|
|
|
|
|
2014-11-27 15:30:33 -05:00
|
|
|
SRC_C = \
|
2014-11-28 09:58:25 -05:00
|
|
|
strtoll.c \
|
2014-11-27 15:30:33 -05:00
|
|
|
main.c \
|
2016-04-28 17:17:11 -04:00
|
|
|
help.c \
|
2014-11-27 15:30:33 -05:00
|
|
|
esp_mphal.c \
|
2016-10-18 08:18:07 -04:00
|
|
|
esp_init_data.c \
|
2014-11-27 15:30:33 -05:00
|
|
|
gccollect.c \
|
2016-03-17 11:06:47 -04:00
|
|
|
lexerstr32.c \
|
2014-11-27 15:30:33 -05:00
|
|
|
uart.c \
|
2016-03-02 08:37:27 -05:00
|
|
|
esppwm.c \
|
2016-03-27 19:58:14 -04:00
|
|
|
espapa102.c \
|
2016-11-05 18:30:19 -04:00
|
|
|
modmachine.c \
|
2021-08-11 01:14:46 -04:00
|
|
|
machine_bitstream.c \
|
2016-11-05 18:30:19 -04:00
|
|
|
machine_pin.c \
|
|
|
|
machine_rtc.c \
|
|
|
|
machine_adc.c \
|
|
|
|
machine_uart.c \
|
|
|
|
machine_wdt.c \
|
|
|
|
machine_hspi.c \
|
2015-01-22 17:34:16 -05:00
|
|
|
modesp.c \
|
2023-01-31 22:21:23 -05:00
|
|
|
network_wlan.c \
|
2016-03-10 21:43:39 -05:00
|
|
|
ets_alt_task.c \
|
2016-04-16 07:47:17 -04:00
|
|
|
fatfs_port.c \
|
2017-09-10 02:47:20 -04:00
|
|
|
posix_helpers.c \
|
2016-06-07 15:40:56 -04:00
|
|
|
hspi.c \
|
2019-09-18 01:08:06 -04:00
|
|
|
$(wildcard $(BOARD_DIR)/*.c) \
|
2016-01-01 11:12:39 -05:00
|
|
|
|
esp32,esp8266: Add support for the Espressif ESP-NOW protocol.
ESP-NOW is a proprietary wireless communication protocol which supports
connectionless communication between ESP32 and ESP8266 devices, using
vendor specific WiFi frames. This commit adds support for this protocol
through a new `espnow` module.
This commit builds on original work done by @nickzoic, @shawwwn and with
contributions from @zoland. Features include:
- Use of (extended) ring buffers in py/ringbuf.[ch] for robust IO.
- Signal strength (RSSI) monitoring.
- Core support in `_espnow` C module, extended by `espnow.py` module.
- Asyncio support via `aioespnow.py` module (separate to this commit).
- Docs provided at `docs/library/espnow.rst`.
Methods available in espnow.ESPNow class are:
- active(True/False)
- config(): set rx buffer size, read timeout and tx rate
- recv()/irecv()/recvinto() to read incoming messages from peers
- send() to send messages to peer devices
- any() to test if a message is ready to read
- irq() to set callback for received messages
- stats() returns transfer stats:
(tx_pkts, tx_pkt_responses, tx_failures, rx_pkts, lost_rx_pkts)
- add_peer(mac, ...) registers a peer before sending messages
- get_peer(mac) returns peer info: (mac, lmk, channel, ifidx, encrypt)
- mod_peer(mac, ...) changes peer info parameters
- get_peers() returns all peer info tuples
- peers_table supports RSSI signal monitoring for received messages:
{peer1: [rssi, time_ms], peer2: [rssi, time_ms], ...}
ESP8266 is a pared down version of the ESP32 ESPNow support due to code
size restrictions and differences in the low-level API. See docs for
details.
Also included is a test suite in tests/multi_espnow. This tests basic
espnow data transfer, multiple transfers, various message sizes, encrypted
messages (pmk and lmk), and asyncio support.
Initial work is from https://github.com/micropython/micropython/pull/4115.
Initial import of code is from:
https://github.com/nickzoic/micropython/tree/espnow-4115.
2020-09-24 01:37:04 -04:00
|
|
|
ifeq ($(MICROPY_ESPNOW),1)
|
|
|
|
SRC_C += \
|
|
|
|
modespnow.c
|
|
|
|
endif
|
|
|
|
|
2015-01-11 21:21:58 -05:00
|
|
|
LIB_SRC_C = $(addprefix lib/,\
|
2015-12-18 16:07:58 -05:00
|
|
|
libm/math.c \
|
|
|
|
libm/fmodf.c \
|
2017-03-23 19:40:25 -04:00
|
|
|
libm/nearbyintf.c \
|
2015-12-18 16:07:58 -05:00
|
|
|
libm/ef_sqrt.c \
|
2020-07-24 03:13:05 -04:00
|
|
|
libm/erf_lgamma.c \
|
2015-12-18 16:43:01 -05:00
|
|
|
libm/kf_rem_pio2.c \
|
|
|
|
libm/kf_sin.c \
|
|
|
|
libm/kf_cos.c \
|
|
|
|
libm/kf_tan.c \
|
|
|
|
libm/ef_rem_pio2.c \
|
2020-07-24 03:13:05 -04:00
|
|
|
libm/sf_erf.c \
|
2015-12-18 16:43:01 -05:00
|
|
|
libm/sf_sin.c \
|
|
|
|
libm/sf_cos.c \
|
|
|
|
libm/sf_tan.c \
|
|
|
|
libm/sf_frexp.c \
|
|
|
|
libm/sf_modf.c \
|
|
|
|
libm/sf_ldexp.c \
|
2020-07-24 03:13:05 -04:00
|
|
|
libm/acoshf.c \
|
2015-12-18 16:43:01 -05:00
|
|
|
libm/asinfacosf.c \
|
2020-07-24 03:13:05 -04:00
|
|
|
libm/asinhf.c \
|
2015-12-18 16:43:01 -05:00
|
|
|
libm/atanf.c \
|
2020-07-24 03:13:05 -04:00
|
|
|
libm/atanhf.c \
|
2015-12-18 16:43:01 -05:00
|
|
|
libm/atan2f.c \
|
2020-07-24 03:13:05 -04:00
|
|
|
libm/log1pf.c \
|
2020-03-24 03:11:36 -04:00
|
|
|
libm/roundf.c \
|
2020-07-24 03:13:05 -04:00
|
|
|
libm/wf_lgamma.c \
|
|
|
|
libm/wf_tgamma.c \
|
2021-07-09 00:19:15 -04:00
|
|
|
)
|
|
|
|
|
|
|
|
SHARED_SRC_C = $(addprefix shared/,\
|
|
|
|
libc/__errno.c \
|
|
|
|
libc/string0.c \
|
2015-05-02 15:24:25 -04:00
|
|
|
netutils/netutils.c \
|
2021-07-09 00:19:15 -04:00
|
|
|
readline/readline.c \
|
|
|
|
runtime/interrupt_char.c \
|
|
|
|
runtime/pyexec.c \
|
|
|
|
runtime/stdout_helpers.c \
|
|
|
|
runtime/sys_stdio_mphal.c \
|
2015-05-11 15:11:37 -04:00
|
|
|
timeutils/timeutils.c \
|
2014-11-27 15:30:33 -05:00
|
|
|
)
|
|
|
|
|
2016-05-26 12:11:43 -04:00
|
|
|
DRIVERS_SRC_C = $(addprefix drivers/,\
|
2018-03-09 01:25:58 -05:00
|
|
|
bus/softspi.c \
|
2016-05-26 12:11:43 -04:00
|
|
|
dht/dht.c \
|
|
|
|
)
|
|
|
|
|
2014-11-27 15:30:33 -05:00
|
|
|
SRC_S = \
|
|
|
|
gchelper.s \
|
|
|
|
|
|
|
|
OBJ += $(PY_O)
|
|
|
|
OBJ += $(addprefix $(BUILD)/, $(SRC_C:.c=.o))
|
|
|
|
OBJ += $(addprefix $(BUILD)/, $(SRC_S:.s=.o))
|
2021-07-09 00:19:15 -04:00
|
|
|
OBJ += $(addprefix $(BUILD)/, $(SHARED_SRC_C:.c=.o))
|
2015-01-11 21:21:58 -05:00
|
|
|
OBJ += $(addprefix $(BUILD)/, $(LIB_SRC_C:.c=.o))
|
2016-05-26 12:11:43 -04:00
|
|
|
OBJ += $(addprefix $(BUILD)/, $(DRIVERS_SRC_C:.c=.o))
|
2014-11-27 15:30:33 -05:00
|
|
|
|
2016-04-16 07:47:17 -04:00
|
|
|
# List of sources for qstr extraction
|
extmod: Make extmod.mk self-contained.
This makes it so that all a port needs to do is set the relevant variables
and "include extmod.mk" and doesn't need to worry about adding anything to
OBJ, CFLAGS, SRC_QSTR, etc.
Make all extmod variables (src, flags, etc) private to extmod.mk.
Also move common/shared, extmod-related fragments (e.g. wiznet, cyw43,
bluetooth) into extmod.mk.
Now that SRC_MOD, CFLAGS_MOD, CXXFLAGS_MOD are unused by both extmod.mk
(and user-C-modules in a previous commit), remove all uses of them from
port makefiles.
Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
2022-10-08 08:59:08 -04:00
|
|
|
SRC_QSTR += $(SRC_C) $(SHARED_SRC_C)
|
2016-04-16 07:47:17 -04:00
|
|
|
# Append any auto-generated sources that are needed by sources listed in SRC_QSTR
|
|
|
|
SRC_QSTR_AUTO_DEPS +=
|
|
|
|
|
2018-09-05 00:11:55 -04:00
|
|
|
all: $(FWBIN)
|
2014-11-27 15:30:33 -05:00
|
|
|
|
2015-05-13 09:39:25 -04:00
|
|
|
CONFVARS_FILE = $(BUILD)/confvars
|
2015-05-05 18:19:26 -04:00
|
|
|
|
2015-05-13 09:39:25 -04:00
|
|
|
ifeq ($(wildcard $(CONFVARS_FILE)),)
|
2015-05-05 18:19:26 -04:00
|
|
|
$(shell $(MKDIR) -p $(BUILD))
|
2019-10-10 08:01:29 -04:00
|
|
|
$(shell echo $(FROZEN_MANIFEST) $(UART_OS) > $(CONFVARS_FILE))
|
|
|
|
else ifneq ($(shell cat $(CONFVARS_FILE)), $(FROZEN_MANIFEST) $(UART_OS))
|
|
|
|
$(shell echo $(FROZEN_MANIFEST) $(UART_OS) > $(CONFVARS_FILE))
|
2015-05-05 18:19:26 -04:00
|
|
|
endif
|
|
|
|
|
2015-05-13 09:39:25 -04:00
|
|
|
$(BUILD)/uart.o: $(CONFVARS_FILE)
|
|
|
|
|
2016-09-17 13:57:43 -04:00
|
|
|
FROZEN_EXTRA_DEPS = $(CONFVARS_FILE)
|
2015-05-05 18:19:26 -04:00
|
|
|
|
2014-11-27 15:30:33 -05:00
|
|
|
.PHONY: deploy
|
|
|
|
|
2023-08-15 10:51:37 -04:00
|
|
|
deploy: $(FWBIN)
|
2014-11-27 15:30:33 -05:00
|
|
|
$(ECHO) "Writing $< to the board"
|
2016-09-26 16:22:39 -04:00
|
|
|
$(Q)esptool.py --port $(PORT) --baud $(BAUD) write_flash --verify --flash_size=$(FLASH_SIZE) --flash_mode=$(FLASH_MODE) 0 $<
|
2014-11-27 15:30:33 -05:00
|
|
|
|
2016-12-14 08:34:40 -05:00
|
|
|
erase:
|
|
|
|
$(ECHO) "Erase flash"
|
|
|
|
$(Q)esptool.py --port $(PORT) --baud $(BAUD) erase_flash
|
|
|
|
|
2015-01-30 17:51:12 -05:00
|
|
|
reset:
|
2016-04-28 07:23:55 -04:00
|
|
|
echo -e "\r\nimport machine; machine.reset()\r\n" >$(PORT)
|
2015-01-30 17:51:12 -05:00
|
|
|
|
2023-08-15 10:51:37 -04:00
|
|
|
ifeq ($(BOARD_VARIANT),OTA)
|
|
|
|
$(FWBIN): $(BUILD)/firmware.elf
|
|
|
|
$(ECHO) "Create $@"
|
|
|
|
$(Q)esptool.py elf2image $^
|
|
|
|
$(Q)$(PYTHON) makeimg.py $(BUILD)/firmware.elf-0x00000.bin $(BUILD)/firmware.elf-0x[0-5][1-f]000.bin $(BUILD)/firmware-ota.bin
|
|
|
|
|
|
|
|
$(Q)cat $(YAOTA8266)/yaota8266.bin $(BUILD)/firmware-ota.bin > $@
|
|
|
|
$(Q)$(PYTHON) $(YAOTA8266)/ota-client/ota_client.py sign $@
|
|
|
|
else
|
2017-01-02 11:29:41 -05:00
|
|
|
$(FWBIN): $(BUILD)/firmware.elf
|
2014-11-27 15:30:33 -05:00
|
|
|
$(ECHO) "Create $@"
|
|
|
|
$(Q)esptool.py elf2image $^
|
2016-12-14 09:44:05 -05:00
|
|
|
$(Q)$(PYTHON) makeimg.py $(BUILD)/firmware.elf-0x00000.bin $(BUILD)/firmware.elf-0x[0-5][1-f]000.bin $@
|
2023-08-15 10:51:37 -04:00
|
|
|
endif
|
2014-11-27 15:30:33 -05:00
|
|
|
|
|
|
|
$(BUILD)/firmware.elf: $(OBJ)
|
|
|
|
$(ECHO) "LINK $@"
|
2015-10-23 19:26:10 -04:00
|
|
|
$(Q)$(LD) $(LDFLAGS) -o $@ $^ $(LIBS)
|
2014-11-27 15:30:33 -05:00
|
|
|
$(Q)$(SIZE) $@
|
|
|
|
|
2017-08-10 22:22:19 -04:00
|
|
|
include $(TOP)/py/mkrules.mk
|
2016-04-26 17:35:13 -04:00
|
|
|
|
2017-06-10 11:13:43 -04:00
|
|
|
clean-modules:
|
|
|
|
git clean -f -d modules
|
2019-09-18 01:08:06 -04:00
|
|
|
rm -f $(BUILD)/frozen*.c
|