I'm looking to use a debugger with nRF Connect. So I'm starting with a build of the hello_world test for my nRF52 DK. I checked the box to "Enable debug options" and then create the build config:
Then, I use this config to do a pristine build of the hello_world app. But when I go back to look at the build configuration, the Enable debug box is unchecked!
It unchecked itself during the build!
Next, I opened the main and put a breakpoint there:
Then I hit the debug button to see if it would still work, despite the fact that the Debug options are off. And I get this - the debugger appears to choke in cpu_idle.s:
Here's the code, in case you want to search for fragments:
SECTION_SUBSEC_FUNC(TEXT,_reset_section,z_arm_reset) /* * The entry point is located at the z_arm_reset symbol, which * is fetched by a XIP image playing the role of a bootloader, which jumps to * it, not through the reset vector mechanism. Such bootloaders might want to * search for a __start symbol instead, so create that alias here. */ SECTION_SUBSEC_FUNC(TEXT,_reset_section,__start) #if defined(CONFIG_DEBUG_THREAD_INFO) /* Clear z_sys_post_kernel flag for RTOS aware debuggers */ movs.n r0, #0 ldr r1, =z_sys_post_kernel strb r0, [r1] #endif /* CONFIG_DEBUG_THREAD_INFO */ #if defined(CONFIG_INIT_ARCH_HW_AT_BOOT) /* Reset CONTROL register */ movs.n r0, #0 msr CONTROL, r0 isb
A little searching about debuggers for nRF Connect seems to indicate that there are several different tools. I'm just using whatever is there "out of the box". Should I be doing something else?
I'm not surprised that debugging is a little tricky with an RTOS. The main is probably not really the true execution entry point.
Are there any tutorials about debugging in nRF Connect?