Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
User9239
Level 1
Level 1
Hello at all. In my application i am using a XMC4500. The IDE i am using is Eclipse CDT with the gnu arm plugin together with the segger j-link.
My application is very time critial (interrupt driven system). When running the debugger within eclipse without break points the runtime performace of my application is influenced as much as my appliction does not longer work
properly. Switching off the debugger, the applicaiton behaves normal.

How is the debugger principally working? For my understanding the CoreSight domain is a independant part of the core wich acts as a separte bus user.
Is the CPU halted periodically when using the debugger?
0 Likes
3 Replies
User10215
Level 4
Level 4
First like received
Hi olnol,

it depends on how you debug. For instance if you have ITM_SendChar in your code there is a while loop in that function, that waits for the ITM-transmit-buffer to be empty.
Also there might be problems if you use conditional breakpoints...as far as I know the conditions aren't checked by the debug hardware but by your PC.

I only used the debugger included in DAVE (which is also segger j-link and DAVE is based on Eclipse) a few times and you can't really see anything until the cpu is halted...so how exactly do you debug your time-critical application without halting the cpu?

Regards,
Niclas
0 Likes
User9239
Level 1
Level 1
Hi Niclas, there is no ITM_SendChar() in my code. As i mentionend above also no breakpoints are active. Just flashing the application using the debugger and pressing run causes a influence on the runtine performance.
With a power on reset, the debug communication is terminated and my application runs normal. It seems that just the connection between the debuger and the pc causes the problemes. Besides i am using the SWD interface.
0 Likes
User9239
Level 1
Level 1
Can anyone confirm this behaviour? For me it is still unclear.
0 Likes