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)) \ || ($(RM) $(WASP_WATCH_PY); false) 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: build-$(BOARD) $(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 build-$(BOARD)/bootloader.hex python3 tools/hex2c.py build-$(BOARD)/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 \ build-$(BOARD)/bootloader-daflasher.zip reloader: bootloader build-$(BOARD) $(MAKE) -C reloader/ BOARD=$(BOARD) mv reloader/build-$(BOARD)/reloader.zip build-$(BOARD)/ softdevice: micropython/ports/nrf/drivers/bluetooth/download_ble_stack.sh micropython: $(WASP_WATCH_PY) build-$(BOARD) $(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 \ build-$(BOARD)/micropython.zip build-$(BOARD): mkdir -p $@ 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