Hello,
I have developed a bootloader with OTA update functionality on an nRF device. The partition switching code (bootloader jumping to the application after OTA) works perfectly in nRF NCS 3.1. However, when I move the same code to NCS 2.6.4, it stops working.
Here’s what I’ve tried so far:
-
Flashing the bootloader and application into separate flash sections using code (not manually).
-
Reading specific memory addresses in the application’s flash section. When I try this in 2.6.4, the system hangs.
I suspect the problem may be related to:
-
Differences in vector table relocation or startup code between NCS versions.
-
Flash alignment or partition size issues.
-
Bootloader → application handoff sequence not being compatible with NCS 2.6.4.
Questions:
-
Are there known differences in NCS 2.6.4 that could cause this handoff to fail?
-
Do I need to explicitly set the vector table (VTOR) when jumping to the application?
-
Could memory alignment or flash partition differences cause the system to hang when reading flash?
-
Any recommended approach to debug or verify the bootloader → application switching in NCS 2.6.4?
Thanks in advance for any guidance!