RTC INT and SVC are not work when APP is not at offset 0x1C000 with S113

For study purpose, I try to change bootloader to move APP offset by

  • change APP start address to 0x20000
  • change start_addr in nrf_dfu_mbr_irq_forward_address_set() and nrf_bootloader_app_start() from MBR_SIZE to 0x20000, and I can see the main function is be executed. But the SW is not running correctly. After checked, I found two issues:

(1) After RTC initialized, no RTC INT handler be executed;

(2) When enable Soft device, it is not returned from SVC instruction;

The same APP if move back to 0x1C000, and change start_addr to MBR_SIZE, then it can work correctly.

Which means the issue is due to bootloader? Is anything I need to check?

Parents
  • nrf_bootloader_app_start sets the app_start address which seems to be working for your app as you confirmed that the main function is started in the app even after your moved the app_start offset.

    Did nrf_dfu_mbr_irq_forward_address_set  return without any errors? It does not look like this function has done what it is supposed to do after successful complettion.

  • Hi, 

    I can reproduce the same issue with S132 secure DFU bootloader w/o moving APP (NRF SDK example). 
    What I changed is only change "start_addr" in nrf_bootloader_app_start() and nrf_dfu_mbr_irq_forward_address_set() from MBR_SIZE to 0x26000  (which is the default APP offset if apply S132).

    The symptom is APP is stocked at 0x000263D2 (SVC_Handler) when call nrf_sdh_enable_request(), and never returned, and there is no error returned from nrf_dfu_mbr_irq_forward_address_set() in bootloader.

Reply
  • Hi, 

    I can reproduce the same issue with S132 secure DFU bootloader w/o moving APP (NRF SDK example). 
    What I changed is only change "start_addr" in nrf_bootloader_app_start() and nrf_dfu_mbr_irq_forward_address_set() from MBR_SIZE to 0x26000  (which is the default APP offset if apply S132).

    The symptom is APP is stocked at 0x000263D2 (SVC_Handler) when call nrf_sdh_enable_request(), and never returned, and there is no error returned from nrf_dfu_mbr_irq_forward_address_set() in bootloader.

Children
Related