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

working without DFU, not working with DFU

Hi there,

I had the DFU already working very well for quite some time, but my luck has ended. When I program the application via JLink it works perfectly fine, also the download of the application via secure DFU itself doesnt cause any issues.

My application starts advertising, I can connect but always at the same moment (when I start up an SPI interface and want to start talking to an external ADC) the application resets. I checked the ROM/RAM settings a thousand times, the bootloader address is correct, the RAM settings of the application according to the requirements of the softdevice and also tried many different combinations (mainly different irom sizes of application) but still the same reboot issue which does not appear when downloading the application directly.

I use SDK13, Softdevice S132 4.0.2, nRF52832 with 512KB flash (168KB available when using dual bank dfu) and 65KB RAM (57KB left with Softdevice enabled) and my application is not that big: Program Size: Code=76740 RO-data=6620 RW-data=1688 ZI-data=21800

Any idea what I could be missing?

Thanks a lot, Josef

Parents
  • Great that you found the issue. One option you may consider is to write the application using programmer (e.g nrfjprog) and generate a bootloader setting to allow the bootloader to start your application so that you don't have to do OTA DFU on the first time. This way UICR will be written when you write your application. You then can merge the bootloader + application + bootloader setting and softdevice to be one hex and can use that in production. You can have a look at Appendix 1. Advanced features here.

Reply
  • Great that you found the issue. One option you may consider is to write the application using programmer (e.g nrfjprog) and generate a bootloader setting to allow the bootloader to start your application so that you don't have to do OTA DFU on the first time. This way UICR will be written when you write your application. You then can merge the bootloader + application + bootloader setting and softdevice to be one hex and can use that in production. You can have a look at Appendix 1. Advanced features here.

Children
No Data
Related