We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
From my code I need to figure out has my function been called from the ISR or just regular application code. I do know that application is running is the User Thread mode and ISR is in privileged handler mode. Could you anyone please provide me with the sources of C-function(s) or inline assembly which will let me efficiently solve this issue.
Thanks.
Are you sure that I can run this in user non-privileged mode? I need to check it because it doesn't match my understanding.
Sounds like you plan to do this on a Cortex-M3. I don't know - this code works well on an ARM7 chip. You may need to implement this in a SVC.
SVC from the user space does trigger hard fault, so your plan doesn't work.
Eric, take my request as given please. Explaining it will spark more issues then bring answers.
It is possible to perform read/write operations directly to the MSP and PSP provided that you are in privileged level, you can access MSP and PSP using the MRS and MSR instructions: MRS R0, MSP ; Read Main Stack Pointer to R0 MSR MSP, R0 ; Write R0 to Main Stack Pointer MRS R0, PSP ; Read Process Stack Pointer to R0 MSR PSP, R0 ; Write R0 to Process Stack Pointer
And I'm not!!! Actually not always to be exact.