Hi, I'm using VS Code and v2.5.0 with a custom board based on an nRF52820. I'm using a Segger J-Link Base to flash the board.
I've managed to set up the DFU example with mcuBoot and a static partition map, can flash that onto our board successfully, and dfu-util can find the board and load code into it over USB, so that's all good.
I've also managed to write our actual application, which I can also configure using a static partition map, with mcuBoot, and I can flash that onto the board and it runs, and I can communicate with that over Bluetooth, so that's all good too!
What I need to do, though, is build our application to go into slot 1, so I can load that onto the board using dfu-util, and be able to update it using DFU, and it's that secondary image bit that I'm struggling with.
Because the DFU app is small and the application itself takes up over half the remaining flash, I need to use XIP, as mcuboot won't be able to copy the image, and I need to use the
CONFIG_BOOT_BUILD_DIRECT_XIP_VARIANT=y
in my prj.conf as DFU will write out application to slot 1.
My static_pm.yml file from the DFU project is:
app: address: 0x8200 end_address: 0x16000 region: flash_primary size: 0xde00 mcuboot: address: 0x0 end_address: 0x8000 placement: before: - mcuboot_primary region: flash_primary size: 0x8000 mcuboot_pad: address: 0x8000 end_address: 0x8200 placement: align: start: 0x1000 before: - mcuboot_primary_app region: flash_primary size: 0x200 mcuboot_primary: address: 0x8000 end_address: 0x16000 orig_span: &id001 - app - mcuboot_pad region: flash_primary sharers: 0x1 size: 0xe000 span: *id001 mcuboot_primary_app: address: 0x8200 end_address: 0x16000 orig_span: &id002 - app region: flash_primary size: 0xde00 span: *id002 mcuboot_secondary: address: 0x16000 end_address: 0x40000 placement: after: - mcuboot_primary align: start: 0x1000 align_next: 0x1000 region: flash_primary size: 0x2a000 sram_primary: address: 0x20000000 end_address: 0x20008000 region: sram_primary size: 0x8000
Traceback (most recent call last): File "/opt/nordic/ncs/v2.5.0/nrf/scripts/partition_manager_output.py", line 251, in <module> main() File "/opt/nordic/ncs/v2.5.0/nrf/scripts/partition_manager_output.py", line 247, in main write_gpm_config(gpm_config, greg_config, name, header_file) File "/opt/nordic/ncs/v2.5.0/nrf/scripts/partition_manager_output.py", line 142, in write_gpm_config if any('span' in x for x in gpm_config[domain][image]): KeyError: 'mcuboot_secondary_app' CMake Error at /opt/nordic/ncs/v2.5.0/nrf/cmake/partition_manager.cmake:665 (message): Partition Manager GLOBAL output generation failed,