FreeRTOS Support Archive
The FreeRTOS support forum is used to obtain active support directly from Real
Time Engineers Ltd. In return for using our top quality software and services for
free, we request you play fair and do your bit to help others too! Sign up
to receive notifications of new support topics then help where you can.
This is a read only archive of threads posted to the FreeRTOS support forum.
The archive is updated every week, so will not always contain the very latest posts.
Use these archive pages to search previous posts. Use the Live FreeRTOS Forum
link to reply to a post, or start a new support thread.
[FreeRTOS Home] [Live FreeRTOS Forum] [FAQ] [Archive Top] [September 2014 Threads] ARM-7 Stack pointer register in different modes during context switchesPosted by dcgirish16 on September 17, 2014 Hi,
I need a clarification regarding functions portSAVECONTEXT() & portRESTORECONTEXT() for ARM7 for example LPC-2129. These macros can be invoked from any where for example IRQ(timer interrupt) etc.. when the processor enters IRQ mode, stack pointer in use will be SPirq. What I could make out is, while saving the context or restoring, how is the SPsystem is accessed for saving or filling the stack pointer to or from TCB. in portRESTORE_CONTEXT() I could understand that the processor mode will be switched to system mode by "SUBS PC, LR, #4" but the stack pointer gets restored before that... could some one please clarify it?
Thanks,
Girish
ARM-7 Stack pointer register in different modes during context switchesPosted by rtel on September 17, 2014 The comments in the code tell you where it is done:
/* Set R0 to point to the task stack pointer. */
"STMDB SP,{SP}^ nt"
"NOP nt"
"SUB SP, SP, #4 nt"
"LDMIA SP!,{R0} nt"
If you don't understand the assembly code then please refer to the ARM instruction set documentation.
Regards.
ARM-7 Stack pointer register in different modes during context switchesPosted by dcgirish16 on September 17, 2014 Thanks.. Yes I gone through the comment and even the assembly code.. but I had missed the meaning of "^" in the code.. sorry for that thanks a lot
ARM-7 Stack pointer register in different modes during context switchesPosted by dcgirish16 on September 17, 2014 Thanks.. Yes I gone through the comment and even the assembly code.. but I had missed the meaning of "^" in the code.. sorry for that thanks a lot
Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.
|