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

Help understanding assertion in secure serial DFU

Hello,

I am porting the secure serial bootloader from the nRF52833 DK (PCA10100), in which it works fine, to my custom board. I press the button and turn my board on to enter into DFU mode... and nothing happens. However, using RTT (below) I get some information.

[Note: I am using SDK 17.0.2, I also have loaded Softdevice S140 even though it is not used]

I am seeing the following data (using RTT):

00> <info> app: Inside main
00>
00> <debug> app: In nrf_bootloader_init
00>
00> <error> app: Received a fault! id: 0x00004002, pc: 0x00000000, info: 0x20008298
00>

id=0x00004002 means I have a NRF_FAULT_ID_SDK_ASSERT

pc: 0x00000000 means this is not valid or useful data

info: 0x20008298 How do I interpret this?

In case it helps, I used J-Link Commander and typed:

J-Link> mem 0x20008298, 8

20008298 = EC 01 00 00 2C 6E 07 00

Thank you.

Parents
  • Hi Andres, 

    Is the secure DFU Bootloader over UART or USB? Does your board connect with UART or USB?

    If you define DEBUG in your preprocessor definitions, the app_error_handler() will be called instead of the app_error_handler_bare() in main.c whenever an APP_ERROR_CHECK(err_code) receives an err_code != 0. If you need more information, you can look at the __WEAK implementation of app_error_fault_handler() in app_error_weak.c to print more information. 

    -Amanda H.

  • Hi Amanda,

    I figured out  the source of one problem: I needed to remove the NRF52 define in the Keil's "Options for Target-C/C++" tab

    It was loading an include file for the nRF52832 instead of the corresponding include for the nRF52833. This last chip is the one I am using and it has two GPIO ports, P0 and P1. My custom board is using P1.03 for the reset button. And only with the correct include file, the P1 pins can be used.

    I do have another problem still, but I think it is better that I open a new ticket for it.

    Thank you.

Reply
  • Hi Amanda,

    I figured out  the source of one problem: I needed to remove the NRF52 define in the Keil's "Options for Target-C/C++" tab

    It was loading an include file for the nRF52832 instead of the corresponding include for the nRF52833. This last chip is the one I am using and it has two GPIO ports, P0 and P1. My custom board is using P1.03 for the reset button. And only with the correct include file, the P1 pins can be used.

    I do have another problem still, but I think it is better that I open a new ticket for it.

    Thank you.

Children
Related