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

Application starts only with connected SWD / debugger after DFU

I have the following problem:

I want to update my application code via BLE with the secure bootloader. This works perfectly while the J-Link-RTT-viewer is connected.

When the J-Link-RTT-viewer is not connected, the bootloader starts, but the new application is never running.

When I set both bank 0 and bank 1 to INVALID (to make the bootloader advertise as DfuTarg), I notice the same behavior - The bootloader is only advertising, when J-Link_RTT-viewer is connected.

SEGGER_RTT_CONFIG_DEFAULT_MODE is set to 0 (SKIP  - Do not block, output nothing).

I am using:

  • nrf52832
  • SDK version 15.2.0
  • gcc / Eclipse
  • softdevice 132 / 6.1.0

I already tried to comment out every call to SEGGER_RTT_printf().

Parents Reply Children
  • Hi,

    You mention that you have removed all calls to SEGGER_RTT_printf(), but the fact that you use(d) directly in the first place is interesting. The RTT implementation may use semi hosting, but it is not used if you use nRF log (see line 82-84 in external\segger_rtt\SEGGER_RTT_Syscalls_KEIL.c). So if you use RTT, try using nrf_log instead of using it directly (this is the approach used by the SDK examples, including ble_app_template). What other modifications have you made? Any changes in your Makefile? You may also find relevant information in this and this thread.

Related