Firmware updates via the serial port without loosing half the code space

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:

5165.hello-world.zip

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

Parents Reply Children
No Data
Related