Hello,
I am trying to add DFU to an existing product that uses an nRF52832. I have gone through the tutorial here. I am using SDK v15.3.0. I am using the GNU Tools ARM Embedded 6 2017-q1-update toolchain. My process is to first erase the chip then program it with softdevice v6.1.1 then flash the bootloader. The device will advertise "dfuTarg" for a second then triggers a fault and resets. Here is a snippet of the RTT output:
00> <debug> nrf_dfu_ble: Advertising...
00>
00> <debug> nrf_dfu_ble: BLE DFU transport initialized.
00>
00> <debug> nrf_dfu_flash: Initializing nrf_fstorage_sd backend.
00>
00> <debug> app: Enter main loop
00>
00> <error> app: Received a fault! id: 0x00000001, pc: 0x0001479E, info: 0x00000000
I have also run the debugger and noticed it gets to the "loop_forever()" function then at some point it fails in the softdevice. I can flash one of the precompiled bootloaders such as: "bootloader_secure_ble_debug_without_bonds_s132.hex" and it will advertise ok and not enter a fault. I have also tried flashing the bootloader I compiled onto a nRF52840-DK and it advertises normally without throwing a fault. I have tried compiling both the pca10040_ble_debug and the pca10040_ble version, but the result is the same. I tried disabling the button to enter DFU mode in the config file since I don't have a button, but this didn't seem to change anything. Any idea what could cause this fault or why it would work on the development kit and not my hardware?
Thanks,
Scott