This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Can an ANT bootloader start at a different address?

Hello, We would like to be able to load the s310 Softdevice via an ANT bootloader. I am using a slightly modified version of experimental_ant_bootloader from the 7.2.0 SDK. If the bootloader start address is at 0x38000, the bootloader is able to load and run the application without fail. The smallest that I can get this bootloader to build is with the start address set to 0x39000. With the 0x39000 address, the bootloader can be debugged, will connect to OTAUpdater, but gets hung on the second time pstorage call to sd_flash_page_erase(). The first call, erases bootloader settings at 0x3FC00. The second call attempts to erase code at 0x1D000. When the first call executes, the softdevice reports to sys_evt_handler() to indicate a successful operation. sys_evt_handler() is not called after the second erase. It also appears that a system reset occurs at about this time.

When changing start addresses, the Project->Options->Target->iROM1->Start is changed, and the BOOTLOADER_REGION_START define in dfu_types is set to match. UICR->BOOTLOADERADDR can be verified with "nrfjproj --readuicr my_file.hex". What am I missing?

Thank you for your input.

Related