Hi, For some time, I've been developing code on the nRF51 with a U-lInk based debuggers and Keil. Things have worked well with that setup. One particularly nice feature (which I had not realized was a feature) is that the U-link can read and write certain things without halting the MCU. For example, the watch window generally updates without halting the CPU, and breakpoints can be set without halting the CPU. This has been particularly useful for early and quick debugging, especially when the BLE stack is running - as I can observe what's going on without crashing the stack.
Since switching to the nRF52, I've decided to switch over to a GCC/Eclipse for my development, in part to make things a bit more compatible with other MCUs I work with. I suddenly noticed that live viewing/breakpoints are no longer the case with the built-in Segger debugger on the nRF52 board - just the act of setting a breakpoint will cause an exception on the stack. I believe the feature is called background memory access - is it no longer available on the nRF52 chip, is this a limitation of the built-in on-board Segger debug chipset, or is it some sort of GDB limitation? I've followed to the tutorial to set up this toolchain.
Thanks! Samson
UPDATE
I'm inclined to believe that the limitation is in Eclipse/J-Link GDB server area. I'm interested in:
- Any plugins that would allow live trace to work properly in "vanilla" eclipse CDT (Looking back, I realize that I have seen other MCU-specific platforms which have been modified to have this work) or
- Any other development environments with better debug capabilities which work together with a makefile/GCC back-end (I'm pretty sure Keil or IAR can't without more hassle on the compile-end, but correct me if I'm wrong)