a9ca9cfe13
Generate a .zip file that works with SoftDevice 2.0.1 (still looking for the recipe that works with 5.0), fix up the bootloader to work with DaFlasher and add an extra feature in micropython to cope better. Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
84 lines
2.5 KiB
Makefile
84 lines
2.5 KiB
Makefile
export PYTHONPATH := $(PWD)/tools/nrfutil:$(PWD)/tools/intelhex:$(PYTHONPATH)
|
|
|
|
all : bootloader reloader micropython
|
|
|
|
ifdef BOARD
|
|
WASP_WATCH_PY = wasp/boards/$(BOARD)/watch.py
|
|
$(WASP_WATCH_PY) : $(WASP_WATCH_PY).in
|
|
(cd wasp; ../tools/preprocess.py ../$(WASP_WATCH_PY).in > ../$(WASP_WATCH_PY))
|
|
else
|
|
BOARD ?= $(error Please set BOARD=)
|
|
endif
|
|
|
|
clean :
|
|
$(RM) -r \
|
|
bootloader/_build-$(BOARD)_nrf52832 \
|
|
reloader/build-$(BOARD) reloader/src/boards/$(BOARD)/bootloader.h \
|
|
micropython/mpy-cross/build \
|
|
micropython/ports/nrf/build-$(BOARD)-s132 \
|
|
$(WASP_WATCH_PY)
|
|
|
|
submodules :
|
|
git submodule update --init --recursive
|
|
|
|
bootloader:
|
|
$(RM) bootloader/_build-$(BOARD)_nrf52832//$(BOARD)_nrf52832_bootloader-*-nosd.hex
|
|
$(MAKE) -C bootloader/ BOARD=$(BOARD)_nrf52832 all genhex
|
|
python3 tools/hexmerge.py \
|
|
bootloader/_build-$(BOARD)_nrf52832/$(BOARD)_nrf52832_bootloader-*-nosd.hex \
|
|
bootloader/lib/softdevice/s132_nrf52_6.1.1/s132_nrf52_6.1.1_softdevice.hex \
|
|
-o bootloader.hex
|
|
python3 tools/hex2c.py bootloader.hex > \
|
|
reloader/src/boards/$(BOARD)/bootloader.h
|
|
python3 -m nordicsemi dfu genpkg \
|
|
--bootloader bootloader/_build-$(BOARD)_nrf52832//$(BOARD)_nrf52832_bootloader-*-nosd.hex \
|
|
--softdevice bootloader/lib/softdevice/s132_nrf52_6.1.1/s132_nrf52_6.1.1_softdevice.hex \
|
|
bootloader-daflasher.zip
|
|
|
|
reloader: bootloader
|
|
$(MAKE) -C reloader/ BOARD=$(BOARD)
|
|
mv reloader/build-$(BOARD)/reloader.zip .
|
|
|
|
softdevice:
|
|
micropython/ports/nrf/drivers/bluetooth/download_ble_stack.sh
|
|
|
|
micropython: $(WASP_WATCH_PY)
|
|
$(MAKE) -C micropython/mpy-cross
|
|
$(RM) micropython/ports/nrf/build-$(BOARD)-s132/frozen_content.c
|
|
$(MAKE) -C micropython/ports/nrf \
|
|
BOARD=$(BOARD) SD=s132 \
|
|
MICROPY_VFS_LFS2=1 \
|
|
FROZEN_MANIFEST=$(PWD)/wasp/boards/$(BOARD)/manifest.py \
|
|
USER_C_MODULES=$(PWD)/wasp/modules
|
|
python3 -m nordicsemi dfu genpkg \
|
|
--dev-type 0x0052 \
|
|
--application micropython/ports/nrf/build-$(BOARD)-s132/firmware.hex \
|
|
micropython.zip
|
|
|
|
dfu:
|
|
python3 -m nordicsemi dfu serial --package micropython.zip --port /dev/ttyACM0
|
|
|
|
flash:
|
|
pyocd erase -t nrf52 --mass
|
|
pyocd flash -t nrf52 bootloader.hex
|
|
|
|
debug:
|
|
arm-none-eabi-gdb \
|
|
bootloader/_build-$(BOARD)_nrf52832/$(BOARD)_nrf52832_bootloader-*-nosd.out \
|
|
-ex "target extended-remote /dev/ttyACM0" \
|
|
-ex "monitor swdp_scan" \
|
|
-ex "attach 1" \
|
|
-ex "load"
|
|
|
|
docs:
|
|
$(RM) -rf docs/build/html/*
|
|
$(MAKE) -C docs html
|
|
touch docs/build/html/.nojekyll
|
|
|
|
|
|
sim:
|
|
PYTHONDONTWRITEBYTECODE=1 PYTHONPATH=.:wasp/boards/simulator:wasp \
|
|
python3 -i wasp/boards/simulator/main.py
|
|
|
|
.PHONY: bootloader reloader docs micropython
|
|
|