RTX: Support stacks larger than 64k

Cherry pick commit d587474778 -
"RTX: Support stacks larger than 64k"

This allows the latest version of the RTOS to run mbed client over
ethernet without crashing.
pull/1702/head
Russ Butler 2016-04-14 16:55:41 -05:00 committed by 0xc0170
parent 007223c954
commit ab3c1e3a16
10 changed files with 12 additions and 11 deletions

View File

@ -35,7 +35,7 @@
.file "HAL_CM0.S"
.syntax unified
.equ TCB_TSTACK, 40
.equ TCB_TSTACK, 44
/*----------------------------------------------------------------------------

View File

@ -34,7 +34,7 @@
NAME HAL_CM0.S
#define TCB_TSTACK 40
#define TCB_TSTACK 44
EXTERN os_flags
EXTERN os_tsk

View File

@ -35,7 +35,7 @@
.file "HAL_CM0.S"
.syntax unified
.equ TCB_TSTACK, 40
.equ TCB_TSTACK, 44
/*----------------------------------------------------------------------------

View File

@ -34,7 +34,7 @@
NAME HAL_CM0.S
#define TCB_TSTACK 40
#define TCB_TSTACK 44
EXTERN os_flags
EXTERN os_tsk

View File

@ -35,7 +35,7 @@
.file "HAL_CM3.S"
.syntax unified
.equ TCB_TSTACK, 40
.equ TCB_TSTACK, 44
/*----------------------------------------------------------------------------

View File

@ -34,7 +34,7 @@
NAME HAL_CM3.S
#define TCB_TSTACK 40
#define TCB_TSTACK 44
EXTERN os_flags
EXTERN os_tsk

View File

@ -36,7 +36,7 @@
.syntax unified
.equ TCB_STACKF, 37
.equ TCB_TSTACK, 40
.equ TCB_TSTACK, 44
/*----------------------------------------------------------------------------

View File

@ -35,7 +35,7 @@
NAME HAL_CM4.S
#define TCB_STACKF 37
#define TCB_TSTACK 40
#define TCB_TSTACK 44
EXTERN os_flags
EXTERN os_tsk

View File

@ -233,7 +233,7 @@ OS_TID rt_tsk_create (FUNCP task, U32 prio_stksz, void *stk, void *argv) {
}
/* If "size != 0" use a private user provided stack. */
task_context->stack = stk;
task_context->priv_stack = (U16)(prio_stksz >> 8);
task_context->priv_stack = prio_stksz >> 8;
/* Pass parameter 'argv' to 'rt_init_context' */
task_context->msg = argv;
/* For 'size == 0' system allocates the user stack from the memory pool. */

View File

@ -71,8 +71,9 @@ typedef struct OS_TCB {
/* Hardware dependant part: specific for CM processor */
U8 stack_frame; /* Stack frame: 0=Basic, 1=Extended, */
U16 reserved; /* Two reserved bytes for alignment */
/* (2=VFP/D16 stacked, 4=NEON/D32 stacked) */
U16 priv_stack; /* Private stack size, 0= system assigned */
U32 priv_stack; /* Private stack size, 0= system assigned */
U32 tsk_stack; /* Current task Stack pointer (R13) */
U32 *stack; /* Pointer to Task Stack memory block */
@ -80,7 +81,7 @@ typedef struct OS_TCB {
FUNCP ptask; /* Task entry address */
} *P_TCB;
#define TCB_STACKF 37 /* 'stack_frame' offset */
#define TCB_TSTACK 40 /* 'tsk_stack' offset */
#define TCB_TSTACK 44 /* 'tsk_stack' offset */
typedef struct OS_PSFE { /* Post Service Fifo Entry */
void *id; /* Object Identification */