I’m working on a product that has been in the field and working for many years with nRF5 SDK v15.0.0 / softdevice 6.0.0. Now we want to add extended BLE advertisements and need to upgrade the SDK and softdevice. I have attemped to upgrade to v15.3.0 / SD 6.1.1, but when I do the firmware no longer runs.
If I step through the code with a debugger, it hangs after enabling the high-frequency clock (i.e. after calling hfclk_start()). If I break the code in the debugger, the PC is always at the clock IRQ handler (0x75A, from vector at 0x40). If I comment out the call to hfclk_start(), then I can continue to step through the code though of course things don’t run properly because I don’t have a clock. All of this same code works with SDK v15.3.0/SD 6.0.0.
I spent a good deal of time comparing changes to the sdk_config.h file examples from v15.0.0 to v15.3.0. The two changes I made were I had to change CLOCK_CONFIG_ENABLE to NRF_CLOCK_CONFIG_ENABLE and I changed the IRQ interrupt priorities from 7 to 6 to match the sample sdk_config.h changes. I also spent a good deal of time stepping through and comparing the nrfx_clock.c code that gets compiled for v15.0.0 and v15.3.0 and am convinced there are no differences once if added the NRF_CLOCK_CONFIG_ENABLE. I’ve kind of run out of ideas and looking for any help.
Thanks.