Board: S32G-VNP-RDB2
SW version: S32 Design Studio 3.4.3, SW32G_RTD_4.4_3.0.2_HF01
Debugger: S32DebugProbe
Background: When we debugging the software of our controller, we found that the tasks stop schedulling, while the Systick and PendSV were both Pending but just can not enter the exception(if pause the program and step, it can enter the exception),
In order to demonstrate this problem concisely, now I will use the nxp provided example(Can_example_S32G274A_M7) to reproduce this situation.
now if we check ICSR, we can see the PendSV is pending(now if we click step, it can enter the PendSV exception),
So, why does the debugger do not enter exceptions any more if it ever stop at an breakpoint?
Hi,
Thanks for the detailed explanation. When the core is stopped under a debugging session, it cannot execute any other instruction until it is released again. For what you are explaining, the behavior is the expected.
We have used 2 EIRQ's and if we stop the executing core, even if we manually set both flags, it cannot execute the ISR until it is released or set to run.
Could be that we are misunderstanding your request, if so, we apologize.
Please, let us know.
Dear Daniel Aguirre,
Thank you for your reply, I think there are some misunderstanding. Yeah, of course, I know it cannot executes the ISR when it was in stop state, what I mean is, even I resume the program, it cannot execute the ISR too.
The situation is, I stopped at an breakpoint, the ISR was in pending state, and then I clicked resume, it ought to go to execute the ISR, but it wasn't.
Could you please try as I discribed in the pdf? If convenient.
Add the two lines of code(trigger PendSV, while(1);) to any provided examples which support ISR, add an breakpoint before the trigger, resume twice, you can reproduce the situation.
Thank you very much!
Hi,
Thanks for the clarification. Still, we are not seeing the behavior you are describing.
We have added the line you have requested to our program and put a breakpoint prior to its execution, once we resume from the breakpoint and pause the program we see that the counter inside PendSV_Handler has the value 1:
Also, we have configured ISR's in our program. We can pause the program then resume and the ISR is executed, there is no additional steps on this.
Again, let us know if we are misunderstanding your request.
Please, let us know.
Hi,
Thank you for the test, maybe there's something wrong with my debugger, I'll take another look.