diff options
author | patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> | 2013-03-21 23:37:11 +0000 |
---|---|---|
committer | patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> | 2013-03-21 23:37:11 +0000 |
commit | 7406abbc5ac56892524846c8a19d2aabfc34eef4 (patch) | |
tree | 407cb38c04306722a9e3fb6136fa4e3058e22e5c /nuttx/arch/mips/src | |
parent | 7fd81076443ca5685f38f02ecd926e8bda368c9b (diff) | |
download | px4-nuttx-7406abbc5ac56892524846c8a19d2aabfc34eef4.tar.gz px4-nuttx-7406abbc5ac56892524846c8a19d2aabfc34eef4.tar.bz2 px4-nuttx-7406abbc5ac56892524846c8a19d2aabfc34eef4.zip |
Corrections needed after further test of stack-based task arguments
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5771 42af7a65-404d-4744-a932-0658087f49c3
Diffstat (limited to 'nuttx/arch/mips/src')
-rw-r--r-- | nuttx/arch/mips/src/common/up_stackframe.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/nuttx/arch/mips/src/common/up_stackframe.c b/nuttx/arch/mips/src/common/up_stackframe.c index fd055d5e6..8f0fa66cd 100644 --- a/nuttx/arch/mips/src/common/up_stackframe.c +++ b/nuttx/arch/mips/src/common/up_stackframe.c @@ -128,9 +128,15 @@ FAR void *up_stack_frame(FAR struct tcb_s *tcb, size_t frame_size) /* Save the adjusted stack values in the struct tcb_s */ - topaddr = (uintptr_t)tcb->adj_stack_ptr - frame_size; - tcb->adj_stack_ptr = (FAR void *)topaddr; - tcb->adj_stack_size -= frame_size; + topaddr = (uintptr_t)tcb->adj_stack_ptr - frame_size; + tcb->adj_stack_ptr = (FAR void *)topaddr; + tcb->adj_stack_size -= frame_size; + + /* Reset the initial stack pointer */ + + tcb->xcp.regs[REG_SP] = (uint32_t)tcb->adj_stack_ptr; + + /* And return the pointer to the allocated region */ return (FAR void *)(topaddr + sizeof(uint32_t)); } |