SDK Environment: nRF Connect SDK v1.8.0
Target: Decawave DWM1001-DEV. This uses the nRF52832
My application uses more than half the flash size of the nRF52832.
Using mcuboot and smp it appears you need to have a working slot and a download slot for the firmware. I believe smp can not update the working slot. This means the firmware can only be a little less than half the size of the flash.
The only solution I have come up with so far, is to use mcuboot in serial recovery mode with CONFIG_SINGLE_APPLICATION_SLOT=y
. The issue with this is that mcuboot in serial recovery mode only supports a subset of commands. mcumgr.exe" --conntype=serial --connstring=COM8 image list
does not give the hash value, and so far I can't get version to display as anything other than "0.0.0.0".
Are there any better ways of implementing a serial boot loader for the nRF52832?
I have attached my current complete test project:
Note the file "CMakeLists.txt" contains a file link with an absolute path that includes the ncs version. See my other post here about that issue.
Key created using
python \ncs\v1.8.0\nrf\scripts\bootloader\keygen.py --private -o test-key.pem
Built using
west build -b decawave_dwm1001_dev2 --pristine -d build2
/ncs/myapps/bootloader/hello-world --
-DBOARD_ROOT=/ncs/myapps/bootloader/hello-world
Programmed to the device using
west flash --runner nrfjprog --bin-file build/zephyr/app_update.bin -d build2
Firmware updates via the serial port using
mcumgr.exe --conntype=serial --connstring=COM8 image upload build2\zephyr\app_update.bin