I am usinng the NXP KL43L256Z4 Cortex M0+, compiler MDK-ARM
When I am in a breakpoint, I change any register value (ex. R6 =
0xFFFFFF), in the next step the Stackpointer R13(SP), gets always the
0xFFFFFFFC value, does not matter where point in the program it
R13(SP) = 0x1FFFE460
R0 = 0X000000
Breakpoint CPSID I ; Mask interrupts
LDR R0, =SystemInit
Here I insert into R0, 0XFFFFFF
in this moment the SP become: R13(SP) = 0x1FFFFFFC
Somebody saw somthing like it? It is a KEIL error?
Can't you just apply usual debugging techniques?
Make sure your stack is adequately large. Check how much is used?
Check for other interrupt sources, and if the debugger can disable
Set R0 to 0x00FFFFFFF where? What would that point too? Executable
code? What code?
Getting any other faults? Hard Fault?
Hard to see much of the surrounding context for the issue.
Could you try a current version of Keil if you think it is a bug,
theses type of things get addressed over time, perhaps the release
notes mention the issue, or you can email your support contact?
Firstly thank you.
The point it is, when I change the value maunaly in any register
from R0 to R12 (it is part of my software tests...), the Stack
pointer change yours value to 0x00FFFFFFC.
The SP should never change its value when writing in another
register! The stack is adequately large, and I have only one break
No matter what point of the code I am, any line that I am
debugging when I write in a registry manualy, I get this error.
The code compile correcty, without other faults. Now I will try to
use the current Keil version for test, but the version that I have is
Any background tasks, or DMA occuring?
Not sufficiently familiar with the NXP part, but does it suspend timers, watchdogs, etc in debug state?
Using a uLink? J-LINK?
If you continue to have issues open a ticket with Keil, or with your NXP FAE.
View all questions in Keil forum