Hello, I am trying to set the value of SP as part of my small RTOS. However, I have a little problem: once I do this __asm { MOV SP, stkptr } the address stored in stkptr (its type is unsigned int* ) is converted. If the address of strptr is 0xE2D4, SP get 0xF2D4. My stack's top is at 0xFC00. I also disable the check for stack underflow/overflow (registers STKUN, STKOV in the A66 file). What is happening here? Are the DPP registers involved? Can I use memory mapping facilities to solve this issue? Kind regards, Tamir Michael
Hi Tamir, Good that you have a solution. I would comment that you stated that you disabled the stack checking but instead you did not trigger a stack trap because you used the MOV instruction. The system will still respond to the stack trap albeit to your new boundary conditions written to registers STKUN and STKOV. As a side note, the XC16x devices don't have this limitation. Best regards, Chris