mirror of
https://github.com/eclipse-threadx/threadx.git
synced 2025-11-16 04:24:48 +00:00
6.1.1 patch: add stack sealing to armv8-m, fix misra warning, fix stack check link error
This commit is contained in:
@@ -26,7 +26,7 @@
|
|||||||
/* APPLICATION INTERFACE DEFINITION RELEASE */
|
/* APPLICATION INTERFACE DEFINITION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* tx_api.h PORTABLE C */
|
/* tx_api.h PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.1 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* William E. Lamie, Microsoft Corporation */
|
/* William E. Lamie, Microsoft Corporation */
|
||||||
@@ -51,6 +51,9 @@
|
|||||||
/* added macros for casting */
|
/* added macros for casting */
|
||||||
/* pointers to ALIGN_TYPE, */
|
/* pointers to ALIGN_TYPE, */
|
||||||
/* resulting in version 6.1 */
|
/* resulting in version 6.1 */
|
||||||
|
/* 10-16-2020 William E. Lamie Modified comment(s), and */
|
||||||
|
/* increased patch version, */
|
||||||
|
/* resulting in version 6.1.1 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
|
|
||||||
@@ -83,7 +86,7 @@ extern "C" {
|
|||||||
#define AZURE_RTOS_THREADX
|
#define AZURE_RTOS_THREADX
|
||||||
#define THREADX_MAJOR_VERSION 6
|
#define THREADX_MAJOR_VERSION 6
|
||||||
#define THREADX_MINOR_VERSION 1
|
#define THREADX_MINOR_VERSION 1
|
||||||
#define THREADX_PATCH_VERSION 0
|
#define THREADX_PATCH_VERSION 1
|
||||||
|
|
||||||
/* Define the following symbol for backward compatibility */
|
/* Define the following symbol for backward compatibility */
|
||||||
#define EL_PRODUCT_THREADX
|
#define EL_PRODUCT_THREADX
|
||||||
|
|||||||
@@ -26,7 +26,7 @@
|
|||||||
/* Include necessary system files. */
|
/* Include necessary system files. */
|
||||||
|
|
||||||
#include "tx_api.h"
|
#include "tx_api.h"
|
||||||
#ifdef TX_MISRA_ENABLE
|
#if defined(TX_MISRA_ENABLE) || defined(TX_ENABLE_STACK_CHECKING)
|
||||||
#include "tx_thread.h"
|
#include "tx_thread.h"
|
||||||
|
|
||||||
|
|
||||||
@@ -35,7 +35,7 @@
|
|||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _tx_thread_stack_error_handler PORTABLE C */
|
/* _tx_thread_stack_error_handler PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.1 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* William E. Lamie, Microsoft Corporation */
|
/* William E. Lamie, Microsoft Corporation */
|
||||||
@@ -69,6 +69,9 @@
|
|||||||
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
|
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
|
||||||
/* update misra support, */
|
/* update misra support, */
|
||||||
/* resulting in version 6.1 */
|
/* resulting in version 6.1 */
|
||||||
|
/* 10-16-2020 William E. Lamie Modified comment(s), */
|
||||||
|
/* fixed link issue, */
|
||||||
|
/* resulting in version 6.1.1 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
VOID _tx_thread_stack_error_handler(TX_THREAD *thread_ptr)
|
VOID _tx_thread_stack_error_handler(TX_THREAD *thread_ptr)
|
||||||
|
|||||||
@@ -35,7 +35,7 @@
|
|||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _tx_thread_suspend PORTABLE C */
|
/* _tx_thread_suspend PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.1 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* William E. Lamie, Microsoft Corporation */
|
/* William E. Lamie, Microsoft Corporation */
|
||||||
@@ -70,6 +70,10 @@
|
|||||||
/* 05-19-2020 William E. Lamie Initial Version 6.0 */
|
/* 05-19-2020 William E. Lamie Initial Version 6.0 */
|
||||||
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
|
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
|
||||||
/* resulting in version 6.1 */
|
/* resulting in version 6.1 */
|
||||||
|
/* 10-16-2020 Yuxin Zhou Modified comment(s), and */
|
||||||
|
/* added type cast to address */
|
||||||
|
/* a MISRA compliance issue, */
|
||||||
|
/* resulting in version 6.1.1 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
UINT _tx_thread_suspend(TX_THREAD *thread_ptr)
|
UINT _tx_thread_suspend(TX_THREAD *thread_ptr)
|
||||||
@@ -103,7 +107,7 @@ UINT status;
|
|||||||
status = TX_SUCCESS;
|
status = TX_SUCCESS;
|
||||||
|
|
||||||
/* Determine if we are in a thread context. */
|
/* Determine if we are in a thread context. */
|
||||||
if (TX_THREAD_GET_SYSTEM_STATE() == 0)
|
if (TX_THREAD_GET_SYSTEM_STATE() == ((ULONG) 0))
|
||||||
{
|
{
|
||||||
|
|
||||||
/* Yes, we are in a thread context. */
|
/* Yes, we are in a thread context. */
|
||||||
@@ -264,7 +268,7 @@ ULONG time_stamp = ((ULONG) 0);
|
|||||||
status = TX_SUCCESS;
|
status = TX_SUCCESS;
|
||||||
|
|
||||||
/* Determine if we are in a thread context. */
|
/* Determine if we are in a thread context. */
|
||||||
if (TX_THREAD_GET_SYSTEM_STATE() == 0)
|
if (TX_THREAD_GET_SYSTEM_STATE() == ((ULONG) 0))
|
||||||
{
|
{
|
||||||
|
|
||||||
/* Yes, we are in a thread context. */
|
/* Yes, we are in a thread context. */
|
||||||
|
|||||||
@@ -26,7 +26,7 @@
|
|||||||
/* APPLICATION INTERFACE DEFINITION RELEASE */
|
/* APPLICATION INTERFACE DEFINITION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* tx_api.h PORTABLE SMP */
|
/* tx_api.h PORTABLE SMP */
|
||||||
/* 6.1 */
|
/* 6.1.1 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* William E. Lamie, Microsoft Corporation */
|
/* William E. Lamie, Microsoft Corporation */
|
||||||
@@ -44,6 +44,9 @@
|
|||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 William E. Lamie Initial Version 6.1 */
|
/* 09-30-2020 William E. Lamie Initial Version 6.1 */
|
||||||
|
/* 10-16-2020 William E. Lamie Modified comment(s), and */
|
||||||
|
/* increased patch version, */
|
||||||
|
/* resulting in version 6.1.1 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
|
|
||||||
@@ -83,7 +86,7 @@ extern "C" {
|
|||||||
#define AZURE_RTOS_THREADX
|
#define AZURE_RTOS_THREADX
|
||||||
#define THREADX_MAJOR_VERSION 6
|
#define THREADX_MAJOR_VERSION 6
|
||||||
#define THREADX_MINOR_VERSION 1
|
#define THREADX_MINOR_VERSION 1
|
||||||
#define THREADX_PATCH_VERSION 0
|
#define THREADX_PATCH_VERSION 1
|
||||||
|
|
||||||
/* Define the following symbol for backward compatibility */
|
/* Define the following symbol for backward compatibility */
|
||||||
#define EL_PRODUCT_THREADX
|
#define EL_PRODUCT_THREADX
|
||||||
|
|||||||
@@ -26,7 +26,7 @@
|
|||||||
/* Include necessary system files. */
|
/* Include necessary system files. */
|
||||||
|
|
||||||
#include "tx_api.h"
|
#include "tx_api.h"
|
||||||
#ifdef TX_MISRA_ENABLE
|
#if defined(TX_MISRA_ENABLE) || defined(TX_ENABLE_STACK_CHECKING)
|
||||||
#include "tx_thread.h"
|
#include "tx_thread.h"
|
||||||
|
|
||||||
|
|
||||||
@@ -35,7 +35,7 @@
|
|||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _tx_thread_stack_error_handler PORTABLE C */
|
/* _tx_thread_stack_error_handler PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.1 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* William E. Lamie, Microsoft Corporation */
|
/* William E. Lamie, Microsoft Corporation */
|
||||||
@@ -66,6 +66,9 @@
|
|||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 William E. Lamie Initial Version 6.1 */
|
/* 09-30-2020 William E. Lamie Initial Version 6.1 */
|
||||||
|
/* 10-16-2020 William E. Lamie Modified comment(s), */
|
||||||
|
/* fixed link issue, */
|
||||||
|
/* resulting in version 6.1.1 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
VOID _tx_thread_stack_error_handler(TX_THREAD *thread_ptr)
|
VOID _tx_thread_stack_error_handler(TX_THREAD *thread_ptr)
|
||||||
|
|||||||
@@ -71,4 +71,8 @@ LR_ROM __RO_BASE __RO_SIZE { ; load region size_region
|
|||||||
|
|
||||||
ARM_LIB_STACK __STACK_TOP EMPTY -__STACK_SIZE { ; Reserve empty region for stack
|
ARM_LIB_STACK __STACK_TOP EMPTY -__STACK_SIZE { ; Reserve empty region for stack
|
||||||
}
|
}
|
||||||
|
SEAL +0
|
||||||
|
{
|
||||||
|
*.o(.seal+FIRST)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -117,6 +117,9 @@ extern const pFunc __VECTOR_TABLE[240];
|
|||||||
#pragma GCC diagnostic pop
|
#pragma GCC diagnostic pop
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* The linker will place this value at the bottom of the stack to seal the secure main stack. */
|
||||||
|
const int stack_seal __attribute__((section (".seal"))) = 0xFEF5EDA5;
|
||||||
|
|
||||||
/*----------------------------------------------------------------------------
|
/*----------------------------------------------------------------------------
|
||||||
Reset Handler called on controller reset
|
Reset Handler called on controller reset
|
||||||
*----------------------------------------------------------------------------*/
|
*----------------------------------------------------------------------------*/
|
||||||
|
|||||||
@@ -41,6 +41,10 @@
|
|||||||
#define TX_THREAD_SECURE_STACK_MAXIMUM 1024
|
#define TX_THREAD_SECURE_STACK_MAXIMUM 1024
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* 8 bytes added to stack size to "seal" stack. */
|
||||||
|
#define TX_THREAD_STACK_SEAL_SIZE 8
|
||||||
|
#define TX_THREAD_STACK_SEAL_VALUE 0xFEF5EDA5
|
||||||
|
|
||||||
/* Secure stack info struct to hold stack start, stack limit,
|
/* Secure stack info struct to hold stack start, stack limit,
|
||||||
current stack pointer, and pointer to owning thread.
|
current stack pointer, and pointer to owning thread.
|
||||||
This will be allocated for each thread with a secure stack. */
|
This will be allocated for each thread with a secure stack. */
|
||||||
@@ -59,7 +63,7 @@ typedef struct TX_THREAD_SECURE_STACK_INFO_STRUCT
|
|||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _tx_thread_secure_stack_initialize Cortex-M23/AC5 */
|
/* _tx_thread_secure_stack_initialize Cortex-M23/AC5 */
|
||||||
/* 6.1 */
|
/* 6.1.1 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
@@ -91,7 +95,9 @@ typedef struct TX_THREAD_SECURE_STACK_INFO_STRUCT
|
|||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 10-16-2020 Scott Larson Modified comment(s), */
|
||||||
|
/* resulting in version 6.1.1 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
__attribute__((cmse_nonsecure_entry))
|
__attribute__((cmse_nonsecure_entry))
|
||||||
@@ -116,7 +122,7 @@ void _tx_thread_secure_stack_initialize(void)
|
|||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _tx_thread_secure_mode_stack_allocate Cortex-M23/AC5 */
|
/* _tx_thread_secure_mode_stack_allocate Cortex-M23/AC5 */
|
||||||
/* 6.1 */
|
/* 6.1.1 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
@@ -155,7 +161,10 @@ void _tx_thread_secure_stack_initialize(void)
|
|||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 10-16-2020 Scott Larson Modified comment(s), */
|
||||||
|
/* added stack sealing, */
|
||||||
|
/* resulting in version 6.1.1 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
__attribute__((cmse_nonsecure_entry))
|
__attribute__((cmse_nonsecure_entry))
|
||||||
@@ -191,8 +200,8 @@ ULONG sp;
|
|||||||
|
|
||||||
if(info_ptr != TX_NULL)
|
if(info_ptr != TX_NULL)
|
||||||
{
|
{
|
||||||
/* If stack info allocated, allocate a stack. */
|
/* If stack info allocated, allocate a stack & seal. */
|
||||||
stack_mem = malloc(stack_size);
|
stack_mem = malloc(stack_size + TX_THREAD_STACK_SEAL_SIZE);
|
||||||
|
|
||||||
if(stack_mem != TX_NULL)
|
if(stack_mem != TX_NULL)
|
||||||
{
|
{
|
||||||
@@ -202,6 +211,9 @@ ULONG sp;
|
|||||||
info_ptr -> tx_thread_secure_stack_ptr = info_ptr -> tx_thread_secure_stack_start;
|
info_ptr -> tx_thread_secure_stack_ptr = info_ptr -> tx_thread_secure_stack_start;
|
||||||
info_ptr -> tx_thread_ptr = thread_ptr;
|
info_ptr -> tx_thread_ptr = thread_ptr;
|
||||||
|
|
||||||
|
/* Seal bottom of stack. */
|
||||||
|
*(ULONG*)info_ptr -> tx_thread_secure_stack_start = TX_THREAD_STACK_SEAL_VALUE;
|
||||||
|
|
||||||
/* Save info pointer in thread. */
|
/* Save info pointer in thread. */
|
||||||
thread_ptr -> tx_thread_secure_stack_context = info_ptr;
|
thread_ptr -> tx_thread_secure_stack_context = info_ptr;
|
||||||
|
|
||||||
@@ -240,7 +252,7 @@ ULONG sp;
|
|||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _tx_thread_secure_mode_stack_free Cortex-M23/AC5 */
|
/* _tx_thread_secure_mode_stack_free Cortex-M23/AC5 */
|
||||||
/* 6.1 */
|
/* 6.1.1 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
@@ -272,7 +284,9 @@ ULONG sp;
|
|||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 10-16-2020 Scott Larson Modified comment(s), */
|
||||||
|
/* resulting in version 6.1.1 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
__attribute__((cmse_nonsecure_entry))
|
__attribute__((cmse_nonsecure_entry))
|
||||||
@@ -321,7 +335,7 @@ TX_THREAD_SECURE_STACK_INFO *info_ptr;
|
|||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _tx_thread_secure_stack_context_save Cortex-M23/AC5 */
|
/* _tx_thread_secure_stack_context_save Cortex-M23/AC5 */
|
||||||
/* 6.1 */
|
/* 6.1.1 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
@@ -353,7 +367,9 @@ TX_THREAD_SECURE_STACK_INFO *info_ptr;
|
|||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 10-16-2020 Scott Larson Modified comment(s), */
|
||||||
|
/* resulting in version 6.1.1 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
__attribute__((cmse_nonsecure_entry))
|
__attribute__((cmse_nonsecure_entry))
|
||||||
@@ -403,7 +419,7 @@ ULONG sp;
|
|||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _tx_thread_secure_stack_context_restore Cortex-M23/AC5 */
|
/* _tx_thread_secure_stack_context_restore Cortex-M23/AC5 */
|
||||||
/* 6.1 */
|
/* 6.1.1 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
@@ -434,7 +450,9 @@ ULONG sp;
|
|||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 10-16-2020 Scott Larson Modified comment(s), */
|
||||||
|
/* resulting in version 6.1.1 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
__attribute__((cmse_nonsecure_entry))
|
__attribute__((cmse_nonsecure_entry))
|
||||||
|
|||||||
@@ -71,4 +71,8 @@ LR_ROM __RO_BASE __RO_SIZE { ; load region size_region
|
|||||||
|
|
||||||
ARM_LIB_STACK __STACK_TOP EMPTY -__STACK_SIZE { ; Reserve empty region for stack
|
ARM_LIB_STACK __STACK_TOP EMPTY -__STACK_SIZE { ; Reserve empty region for stack
|
||||||
}
|
}
|
||||||
|
SEAL +0
|
||||||
|
{
|
||||||
|
*.o(.seal+FIRST)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -117,6 +117,9 @@ extern const pFunc __VECTOR_TABLE[240];
|
|||||||
#pragma GCC diagnostic pop
|
#pragma GCC diagnostic pop
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* The linker will place this value at the bottom of the stack to seal the secure main stack. */
|
||||||
|
const int stack_seal __attribute__((section (".seal"))) = 0xFEF5EDA5;
|
||||||
|
|
||||||
/*----------------------------------------------------------------------------
|
/*----------------------------------------------------------------------------
|
||||||
Reset Handler called on controller reset
|
Reset Handler called on controller reset
|
||||||
*----------------------------------------------------------------------------*/
|
*----------------------------------------------------------------------------*/
|
||||||
|
|||||||
@@ -41,6 +41,10 @@
|
|||||||
#define TX_THREAD_SECURE_STACK_MAXIMUM 1024
|
#define TX_THREAD_SECURE_STACK_MAXIMUM 1024
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* 8 bytes added to stack size to "seal" stack. */
|
||||||
|
#define TX_THREAD_STACK_SEAL_SIZE 8
|
||||||
|
#define TX_THREAD_STACK_SEAL_VALUE 0xFEF5EDA5
|
||||||
|
|
||||||
/* Secure stack info struct to hold stack start, stack limit,
|
/* Secure stack info struct to hold stack start, stack limit,
|
||||||
current stack pointer, and pointer to owning thread.
|
current stack pointer, and pointer to owning thread.
|
||||||
This will be allocated for each thread with a secure stack. */
|
This will be allocated for each thread with a secure stack. */
|
||||||
@@ -59,7 +63,7 @@ typedef struct TX_THREAD_SECURE_STACK_INFO_STRUCT
|
|||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _tx_thread_secure_stack_initialize Cortex-M23/AC6 */
|
/* _tx_thread_secure_stack_initialize Cortex-M23/AC6 */
|
||||||
/* 6.1 */
|
/* 6.1.1 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
@@ -91,7 +95,9 @@ typedef struct TX_THREAD_SECURE_STACK_INFO_STRUCT
|
|||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 10-16-2020 Scott Larson Modified comment(s), */
|
||||||
|
/* resulting in version 6.1.1 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
__attribute__((cmse_nonsecure_entry))
|
__attribute__((cmse_nonsecure_entry))
|
||||||
@@ -116,7 +122,7 @@ void _tx_thread_secure_stack_initialize(void)
|
|||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _tx_thread_secure_mode_stack_allocate Cortex-M23/AC6 */
|
/* _tx_thread_secure_mode_stack_allocate Cortex-M23/AC6 */
|
||||||
/* 6.1 */
|
/* 6.1.1 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
@@ -155,7 +161,10 @@ void _tx_thread_secure_stack_initialize(void)
|
|||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 10-16-2020 Scott Larson Modified comment(s), */
|
||||||
|
/* added stack sealing, */
|
||||||
|
/* resulting in version 6.1.1 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
__attribute__((cmse_nonsecure_entry))
|
__attribute__((cmse_nonsecure_entry))
|
||||||
@@ -165,7 +174,7 @@ UINT status;
|
|||||||
TX_THREAD_SECURE_STACK_INFO *info_ptr;
|
TX_THREAD_SECURE_STACK_INFO *info_ptr;
|
||||||
UCHAR *stack_mem;
|
UCHAR *stack_mem;
|
||||||
ULONG sp;
|
ULONG sp;
|
||||||
|
|
||||||
status = TX_SUCCESS;
|
status = TX_SUCCESS;
|
||||||
|
|
||||||
/* Make sure function is called from interrupt (threads should not call). */
|
/* Make sure function is called from interrupt (threads should not call). */
|
||||||
@@ -191,8 +200,8 @@ ULONG sp;
|
|||||||
|
|
||||||
if(info_ptr != TX_NULL)
|
if(info_ptr != TX_NULL)
|
||||||
{
|
{
|
||||||
/* If stack info allocated, allocate a stack. */
|
/* If stack info allocated, allocate a stack & seal. */
|
||||||
stack_mem = malloc(stack_size);
|
stack_mem = malloc(stack_size + TX_THREAD_STACK_SEAL_SIZE);
|
||||||
|
|
||||||
if(stack_mem != TX_NULL)
|
if(stack_mem != TX_NULL)
|
||||||
{
|
{
|
||||||
@@ -202,6 +211,9 @@ ULONG sp;
|
|||||||
info_ptr -> tx_thread_secure_stack_ptr = info_ptr -> tx_thread_secure_stack_start;
|
info_ptr -> tx_thread_secure_stack_ptr = info_ptr -> tx_thread_secure_stack_start;
|
||||||
info_ptr -> tx_thread_ptr = thread_ptr;
|
info_ptr -> tx_thread_ptr = thread_ptr;
|
||||||
|
|
||||||
|
/* Seal bottom of stack. */
|
||||||
|
*(ULONG*)info_ptr -> tx_thread_secure_stack_start = TX_THREAD_STACK_SEAL_VALUE;
|
||||||
|
|
||||||
/* Save info pointer in thread. */
|
/* Save info pointer in thread. */
|
||||||
thread_ptr -> tx_thread_secure_stack_context = info_ptr;
|
thread_ptr -> tx_thread_secure_stack_context = info_ptr;
|
||||||
|
|
||||||
@@ -240,7 +252,7 @@ ULONG sp;
|
|||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _tx_thread_secure_mode_stack_free Cortex-M23/AC6 */
|
/* _tx_thread_secure_mode_stack_free Cortex-M23/AC6 */
|
||||||
/* 6.1 */
|
/* 6.1.1 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
@@ -272,7 +284,9 @@ ULONG sp;
|
|||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 10-16-2020 Scott Larson Modified comment(s), */
|
||||||
|
/* resulting in version 6.1.1 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
__attribute__((cmse_nonsecure_entry))
|
__attribute__((cmse_nonsecure_entry))
|
||||||
@@ -321,7 +335,7 @@ TX_THREAD_SECURE_STACK_INFO *info_ptr;
|
|||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _tx_thread_secure_stack_context_save Cortex-M23/AC6 */
|
/* _tx_thread_secure_stack_context_save Cortex-M23/AC6 */
|
||||||
/* 6.1 */
|
/* 6.1.1 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
@@ -353,7 +367,9 @@ TX_THREAD_SECURE_STACK_INFO *info_ptr;
|
|||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 10-16-2020 Scott Larson Modified comment(s), */
|
||||||
|
/* resulting in version 6.1.1 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
__attribute__((cmse_nonsecure_entry))
|
__attribute__((cmse_nonsecure_entry))
|
||||||
@@ -403,7 +419,7 @@ ULONG sp;
|
|||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _tx_thread_secure_stack_context_restore Cortex-M23/AC6 */
|
/* _tx_thread_secure_stack_context_restore Cortex-M23/AC6 */
|
||||||
/* 6.1 */
|
/* 6.1.1 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
@@ -434,7 +450,9 @@ ULONG sp;
|
|||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 10-16-2020 Scott Larson Modified comment(s), */
|
||||||
|
/* resulting in version 6.1.1 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
__attribute__((cmse_nonsecure_entry))
|
__attribute__((cmse_nonsecure_entry))
|
||||||
|
|||||||
@@ -41,6 +41,10 @@
|
|||||||
#define TX_THREAD_SECURE_STACK_MAXIMUM 1024
|
#define TX_THREAD_SECURE_STACK_MAXIMUM 1024
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* 8 bytes added to stack size to "seal" stack. */
|
||||||
|
#define TX_THREAD_STACK_SEAL_SIZE 8
|
||||||
|
#define TX_THREAD_STACK_SEAL_VALUE 0xFEF5EDA5
|
||||||
|
|
||||||
/* Secure stack info struct to hold stack start, stack limit,
|
/* Secure stack info struct to hold stack start, stack limit,
|
||||||
current stack pointer, and pointer to owning thread.
|
current stack pointer, and pointer to owning thread.
|
||||||
This will be allocated for each thread with a secure stack. */
|
This will be allocated for each thread with a secure stack. */
|
||||||
@@ -59,7 +63,7 @@ typedef struct TX_THREAD_SECURE_STACK_INFO_STRUCT
|
|||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _tx_thread_secure_stack_initialize Cortex-M23/GNU */
|
/* _tx_thread_secure_stack_initialize Cortex-M23/GNU */
|
||||||
/* 6.1 */
|
/* 6.1.1 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
@@ -91,7 +95,9 @@ typedef struct TX_THREAD_SECURE_STACK_INFO_STRUCT
|
|||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 10-16-2020 Scott Larson Modified comment(s), */
|
||||||
|
/* resulting in version 6.1.1 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
__attribute__((cmse_nonsecure_entry))
|
__attribute__((cmse_nonsecure_entry))
|
||||||
@@ -116,7 +122,7 @@ void _tx_thread_secure_stack_initialize(void)
|
|||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _tx_thread_secure_mode_stack_allocate Cortex-M23/GNU */
|
/* _tx_thread_secure_mode_stack_allocate Cortex-M23/GNU */
|
||||||
/* 6.1 */
|
/* 6.1.1 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
@@ -155,7 +161,10 @@ void _tx_thread_secure_stack_initialize(void)
|
|||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 10-16-2020 Scott Larson Modified comment(s), */
|
||||||
|
/* added stack sealing, */
|
||||||
|
/* resulting in version 6.1.1 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
__attribute__((cmse_nonsecure_entry))
|
__attribute__((cmse_nonsecure_entry))
|
||||||
@@ -191,8 +200,8 @@ ULONG sp;
|
|||||||
|
|
||||||
if(info_ptr != TX_NULL)
|
if(info_ptr != TX_NULL)
|
||||||
{
|
{
|
||||||
/* If stack info allocated, allocate a stack. */
|
/* If stack info allocated, allocate a stack & seal. */
|
||||||
stack_mem = malloc(stack_size);
|
stack_mem = malloc(stack_size + TX_THREAD_STACK_SEAL_SIZE);
|
||||||
|
|
||||||
if(stack_mem != TX_NULL)
|
if(stack_mem != TX_NULL)
|
||||||
{
|
{
|
||||||
@@ -202,6 +211,9 @@ ULONG sp;
|
|||||||
info_ptr -> tx_thread_secure_stack_ptr = info_ptr -> tx_thread_secure_stack_start;
|
info_ptr -> tx_thread_secure_stack_ptr = info_ptr -> tx_thread_secure_stack_start;
|
||||||
info_ptr -> tx_thread_ptr = thread_ptr;
|
info_ptr -> tx_thread_ptr = thread_ptr;
|
||||||
|
|
||||||
|
/* Seal bottom of stack. */
|
||||||
|
*(ULONG*)info_ptr -> tx_thread_secure_stack_start = TX_THREAD_STACK_SEAL_VALUE;
|
||||||
|
|
||||||
/* Save info pointer in thread. */
|
/* Save info pointer in thread. */
|
||||||
thread_ptr -> tx_thread_secure_stack_context = info_ptr;
|
thread_ptr -> tx_thread_secure_stack_context = info_ptr;
|
||||||
|
|
||||||
@@ -240,7 +252,7 @@ ULONG sp;
|
|||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _tx_thread_secure_mode_stack_free Cortex-M23/GNU */
|
/* _tx_thread_secure_mode_stack_free Cortex-M23/GNU */
|
||||||
/* 6.1 */
|
/* 6.1.1 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
@@ -272,7 +284,9 @@ ULONG sp;
|
|||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 10-16-2020 Scott Larson Modified comment(s), */
|
||||||
|
/* resulting in version 6.1.1 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
__attribute__((cmse_nonsecure_entry))
|
__attribute__((cmse_nonsecure_entry))
|
||||||
@@ -321,7 +335,7 @@ TX_THREAD_SECURE_STACK_INFO *info_ptr;
|
|||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _tx_thread_secure_stack_context_save Cortex-M23/GNU */
|
/* _tx_thread_secure_stack_context_save Cortex-M23/GNU */
|
||||||
/* 6.1 */
|
/* 6.1.1 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
@@ -353,7 +367,9 @@ TX_THREAD_SECURE_STACK_INFO *info_ptr;
|
|||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 10-16-2020 Scott Larson Modified comment(s), */
|
||||||
|
/* resulting in version 6.1.1 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
__attribute__((cmse_nonsecure_entry))
|
__attribute__((cmse_nonsecure_entry))
|
||||||
@@ -403,7 +419,7 @@ ULONG sp;
|
|||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _tx_thread_secure_stack_context_restore Cortex-M23/GNU */
|
/* _tx_thread_secure_stack_context_restore Cortex-M23/GNU */
|
||||||
/* 6.1 */
|
/* 6.1.1 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
@@ -434,7 +450,9 @@ ULONG sp;
|
|||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 10-16-2020 Scott Larson Modified comment(s), */
|
||||||
|
/* resulting in version 6.1.1 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
__attribute__((cmse_nonsecure_entry))
|
__attribute__((cmse_nonsecure_entry))
|
||||||
|
|||||||
@@ -41,6 +41,10 @@
|
|||||||
#define TX_THREAD_SECURE_STACK_MAXIMUM 1024
|
#define TX_THREAD_SECURE_STACK_MAXIMUM 1024
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* 8 bytes added to stack size to "seal" stack. */
|
||||||
|
#define TX_THREAD_STACK_SEAL_SIZE 8
|
||||||
|
#define TX_THREAD_STACK_SEAL_VALUE 0xFEF5EDA5
|
||||||
|
|
||||||
/* Secure stack info struct to hold stack start, stack limit,
|
/* Secure stack info struct to hold stack start, stack limit,
|
||||||
current stack pointer, and pointer to owning thread.
|
current stack pointer, and pointer to owning thread.
|
||||||
This will be allocated for each thread with a secure stack. */
|
This will be allocated for each thread with a secure stack. */
|
||||||
@@ -59,7 +63,7 @@ typedef struct TX_THREAD_SECURE_STACK_INFO_STRUCT
|
|||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _tx_thread_secure_stack_initialize Cortex-M23/IAR */
|
/* _tx_thread_secure_stack_initialize Cortex-M23/IAR */
|
||||||
/* 6.1 */
|
/* 6.1.1 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
@@ -91,7 +95,9 @@ typedef struct TX_THREAD_SECURE_STACK_INFO_STRUCT
|
|||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 10-16-2020 Scott Larson Modified comment(s), */
|
||||||
|
/* resulting in version 6.1.1 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
__attribute__((cmse_nonsecure_entry))
|
__attribute__((cmse_nonsecure_entry))
|
||||||
@@ -116,7 +122,7 @@ void _tx_thread_secure_stack_initialize(void)
|
|||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _tx_thread_secure_mode_stack_allocate Cortex-M23/IAR */
|
/* _tx_thread_secure_mode_stack_allocate Cortex-M23/IAR */
|
||||||
/* 6.1 */
|
/* 6.1.1 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
@@ -155,7 +161,10 @@ void _tx_thread_secure_stack_initialize(void)
|
|||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 10-16-2020 Scott Larson Modified comment(s), */
|
||||||
|
/* added stack sealing, */
|
||||||
|
/* resulting in version 6.1.1 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
__attribute__((cmse_nonsecure_entry))
|
__attribute__((cmse_nonsecure_entry))
|
||||||
@@ -191,8 +200,8 @@ ULONG sp;
|
|||||||
|
|
||||||
if(info_ptr != TX_NULL)
|
if(info_ptr != TX_NULL)
|
||||||
{
|
{
|
||||||
/* If stack info allocated, allocate a stack. */
|
/* If stack info allocated, allocate a stack & seal. */
|
||||||
stack_mem = malloc(stack_size);
|
stack_mem = malloc(stack_size + TX_THREAD_STACK_SEAL_SIZE);
|
||||||
|
|
||||||
if(stack_mem != TX_NULL)
|
if(stack_mem != TX_NULL)
|
||||||
{
|
{
|
||||||
@@ -202,6 +211,9 @@ ULONG sp;
|
|||||||
info_ptr -> tx_thread_secure_stack_ptr = info_ptr -> tx_thread_secure_stack_start;
|
info_ptr -> tx_thread_secure_stack_ptr = info_ptr -> tx_thread_secure_stack_start;
|
||||||
info_ptr -> tx_thread_ptr = thread_ptr;
|
info_ptr -> tx_thread_ptr = thread_ptr;
|
||||||
|
|
||||||
|
/* Seal bottom of stack. */
|
||||||
|
*(ULONG*)info_ptr -> tx_thread_secure_stack_start = TX_THREAD_STACK_SEAL_VALUE;
|
||||||
|
|
||||||
/* Save info pointer in thread. */
|
/* Save info pointer in thread. */
|
||||||
thread_ptr -> tx_thread_secure_stack_context = info_ptr;
|
thread_ptr -> tx_thread_secure_stack_context = info_ptr;
|
||||||
|
|
||||||
@@ -240,7 +252,7 @@ ULONG sp;
|
|||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _tx_thread_secure_mode_stack_free Cortex-M23/IAR */
|
/* _tx_thread_secure_mode_stack_free Cortex-M23/IAR */
|
||||||
/* 6.1 */
|
/* 6.1.1 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
@@ -272,7 +284,9 @@ ULONG sp;
|
|||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 10-16-2020 Scott Larson Modified comment(s), */
|
||||||
|
/* resulting in version 6.1.1 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
__attribute__((cmse_nonsecure_entry))
|
__attribute__((cmse_nonsecure_entry))
|
||||||
@@ -321,7 +335,7 @@ TX_THREAD_SECURE_STACK_INFO *info_ptr;
|
|||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _tx_thread_secure_stack_context_save Cortex-M23/IAR */
|
/* _tx_thread_secure_stack_context_save Cortex-M23/IAR */
|
||||||
/* 6.1 */
|
/* 6.1.1 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
@@ -353,7 +367,9 @@ TX_THREAD_SECURE_STACK_INFO *info_ptr;
|
|||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 10-16-2020 Scott Larson Modified comment(s), */
|
||||||
|
/* resulting in version 6.1.1 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
__attribute__((cmse_nonsecure_entry))
|
__attribute__((cmse_nonsecure_entry))
|
||||||
@@ -403,7 +419,7 @@ ULONG sp;
|
|||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _tx_thread_secure_stack_context_restore Cortex-M23/IAR */
|
/* _tx_thread_secure_stack_context_restore Cortex-M23/IAR */
|
||||||
/* 6.1 */
|
/* 6.1.1 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
@@ -434,7 +450,9 @@ ULONG sp;
|
|||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 10-16-2020 Scott Larson Modified comment(s), */
|
||||||
|
/* resulting in version 6.1.1 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
__attribute__((cmse_nonsecure_entry))
|
__attribute__((cmse_nonsecure_entry))
|
||||||
|
|||||||
@@ -71,4 +71,8 @@ LR_ROM __RO_BASE __RO_SIZE { ; load region size_region
|
|||||||
|
|
||||||
ARM_LIB_STACK __STACK_TOP EMPTY -__STACK_SIZE { ; Reserve empty region for stack
|
ARM_LIB_STACK __STACK_TOP EMPTY -__STACK_SIZE { ; Reserve empty region for stack
|
||||||
}
|
}
|
||||||
|
SEAL +0
|
||||||
|
{
|
||||||
|
*.o(.seal+FIRST)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -116,6 +116,8 @@ extern const pFunc __VECTOR_TABLE[496];
|
|||||||
/* Interrupts 10 .. 480 are left out */
|
/* Interrupts 10 .. 480 are left out */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/* The linker will place this value at the bottom of the stack to seal the secure main stack. */
|
||||||
|
const int stack_seal __attribute__((section (".seal"))) = 0xFEF5EDA5;
|
||||||
|
|
||||||
/*----------------------------------------------------------------------------
|
/*----------------------------------------------------------------------------
|
||||||
Reset Handler called on controller reset
|
Reset Handler called on controller reset
|
||||||
|
|||||||
@@ -41,6 +41,10 @@
|
|||||||
#define TX_THREAD_SECURE_STACK_MAXIMUM 1024
|
#define TX_THREAD_SECURE_STACK_MAXIMUM 1024
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* 8 bytes added to stack size to "seal" stack. */
|
||||||
|
#define TX_THREAD_STACK_SEAL_SIZE 8
|
||||||
|
#define TX_THREAD_STACK_SEAL_VALUE 0xFEF5EDA5
|
||||||
|
|
||||||
/* Secure stack info struct to hold stack start, stack limit,
|
/* Secure stack info struct to hold stack start, stack limit,
|
||||||
current stack pointer, and pointer to owning thread.
|
current stack pointer, and pointer to owning thread.
|
||||||
This will be allocated for each thread with a secure stack. */
|
This will be allocated for each thread with a secure stack. */
|
||||||
@@ -59,7 +63,7 @@ typedef struct TX_THREAD_SECURE_STACK_INFO_STRUCT
|
|||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _tx_thread_secure_stack_initialize Cortex-M33/AC5 */
|
/* _tx_thread_secure_stack_initialize Cortex-M33/AC5 */
|
||||||
/* 6.1 */
|
/* 6.1.1 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
@@ -91,7 +95,9 @@ typedef struct TX_THREAD_SECURE_STACK_INFO_STRUCT
|
|||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 10-16-2020 Scott Larson Modified comment(s), */
|
||||||
|
/* resulting in version 6.1.1 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
__attribute__((cmse_nonsecure_entry))
|
__attribute__((cmse_nonsecure_entry))
|
||||||
@@ -116,7 +122,7 @@ void _tx_thread_secure_stack_initialize(void)
|
|||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _tx_thread_secure_mode_stack_allocate Cortex-M33/AC5 */
|
/* _tx_thread_secure_mode_stack_allocate Cortex-M33/AC5 */
|
||||||
/* 6.1 */
|
/* 6.1.1 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
@@ -155,7 +161,10 @@ void _tx_thread_secure_stack_initialize(void)
|
|||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 10-16-2020 Scott Larson Modified comment(s), */
|
||||||
|
/* added stack sealing, */
|
||||||
|
/* resulting in version 6.1.1 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
__attribute__((cmse_nonsecure_entry))
|
__attribute__((cmse_nonsecure_entry))
|
||||||
@@ -190,8 +199,8 @@ UCHAR *stack_mem;
|
|||||||
|
|
||||||
if(info_ptr != TX_NULL)
|
if(info_ptr != TX_NULL)
|
||||||
{
|
{
|
||||||
/* If stack info allocated, allocate a stack. */
|
/* If stack info allocated, allocate a stack & seal. */
|
||||||
stack_mem = malloc(stack_size);
|
stack_mem = malloc(stack_size + TX_THREAD_STACK_SEAL_SIZE);
|
||||||
|
|
||||||
if(stack_mem != TX_NULL)
|
if(stack_mem != TX_NULL)
|
||||||
{
|
{
|
||||||
@@ -201,6 +210,9 @@ UCHAR *stack_mem;
|
|||||||
info_ptr -> tx_thread_secure_stack_ptr = info_ptr -> tx_thread_secure_stack_start;
|
info_ptr -> tx_thread_secure_stack_ptr = info_ptr -> tx_thread_secure_stack_start;
|
||||||
info_ptr -> tx_thread_ptr = thread_ptr;
|
info_ptr -> tx_thread_ptr = thread_ptr;
|
||||||
|
|
||||||
|
/* Seal bottom of stack. */
|
||||||
|
*(ULONG*)info_ptr -> tx_thread_secure_stack_start = TX_THREAD_STACK_SEAL_VALUE;
|
||||||
|
|
||||||
/* Save info pointer in thread. */
|
/* Save info pointer in thread. */
|
||||||
thread_ptr -> tx_thread_secure_stack_context = info_ptr;
|
thread_ptr -> tx_thread_secure_stack_context = info_ptr;
|
||||||
|
|
||||||
@@ -237,7 +249,7 @@ UCHAR *stack_mem;
|
|||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _tx_thread_secure_mode_stack_free Cortex-M33/AC5 */
|
/* _tx_thread_secure_mode_stack_free Cortex-M33/AC5 */
|
||||||
/* 6.1 */
|
/* 6.1.1 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
@@ -269,7 +281,9 @@ UCHAR *stack_mem;
|
|||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 10-16-2020 Scott Larson Modified comment(s), */
|
||||||
|
/* resulting in version 6.1.1 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
__attribute__((cmse_nonsecure_entry))
|
__attribute__((cmse_nonsecure_entry))
|
||||||
@@ -318,7 +332,7 @@ TX_THREAD_SECURE_STACK_INFO *info_ptr;
|
|||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _tx_thread_secure_stack_context_save Cortex-M33/AC5 */
|
/* _tx_thread_secure_stack_context_save Cortex-M33/AC5 */
|
||||||
/* 6.1 */
|
/* 6.1.1 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
@@ -350,7 +364,9 @@ TX_THREAD_SECURE_STACK_INFO *info_ptr;
|
|||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 10-16-2020 Scott Larson Modified comment(s), */
|
||||||
|
/* resulting in version 6.1.1 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
__attribute__((cmse_nonsecure_entry))
|
__attribute__((cmse_nonsecure_entry))
|
||||||
@@ -400,7 +416,7 @@ ULONG sp;
|
|||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _tx_thread_secure_stack_context_restore Cortex-M33/AC5 */
|
/* _tx_thread_secure_stack_context_restore Cortex-M33/AC5 */
|
||||||
/* 6.1 */
|
/* 6.1.1 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
@@ -431,7 +447,9 @@ ULONG sp;
|
|||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 10-16-2020 Scott Larson Modified comment(s), */
|
||||||
|
/* resulting in version 6.1.1 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
__attribute__((cmse_nonsecure_entry))
|
__attribute__((cmse_nonsecure_entry))
|
||||||
|
|||||||
@@ -71,4 +71,8 @@ LR_ROM __RO_BASE __RO_SIZE { ; load region size_region
|
|||||||
|
|
||||||
ARM_LIB_STACK __STACK_TOP EMPTY -__STACK_SIZE { ; Reserve empty region for stack
|
ARM_LIB_STACK __STACK_TOP EMPTY -__STACK_SIZE { ; Reserve empty region for stack
|
||||||
}
|
}
|
||||||
|
SEAL +0
|
||||||
|
{
|
||||||
|
*.o(.seal+FIRST)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -116,6 +116,8 @@ extern const pFunc __VECTOR_TABLE[496];
|
|||||||
/* Interrupts 10 .. 480 are left out */
|
/* Interrupts 10 .. 480 are left out */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/* The linker will place this value at the bottom of the stack to seal the secure main stack. */
|
||||||
|
const int stack_seal __attribute__((section (".seal"))) = 0xFEF5EDA5;
|
||||||
|
|
||||||
/*----------------------------------------------------------------------------
|
/*----------------------------------------------------------------------------
|
||||||
Reset Handler called on controller reset
|
Reset Handler called on controller reset
|
||||||
@@ -128,7 +130,6 @@ void Reset_Handler(void)
|
|||||||
__PROGRAM_START(); /* Enter PreMain (C library entry point) */
|
__PROGRAM_START(); /* Enter PreMain (C library entry point) */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*----------------------------------------------------------------------------
|
/*----------------------------------------------------------------------------
|
||||||
Default Handler for Exceptions / Interrupts
|
Default Handler for Exceptions / Interrupts
|
||||||
*----------------------------------------------------------------------------*/
|
*----------------------------------------------------------------------------*/
|
||||||
|
|||||||
@@ -99,7 +99,6 @@ void SystemInit (void)
|
|||||||
|
|
||||||
*(uint32_t *)0xE000ED24 = 0x000F0000; /* S: enable secure, usage, bus, mem faults */
|
*(uint32_t *)0xE000ED24 = 0x000F0000; /* S: enable secure, usage, bus, mem faults */
|
||||||
*(uint32_t *)0xE002ED24 = 0x000F0000; /* NS: enable secure, usage, bus, mem faults */
|
*(uint32_t *)0xE002ED24 = 0x000F0000; /* NS: enable secure, usage, bus, mem faults */
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#if !defined(TX_SINGLE_MODE_SECURE) && !defined(TX_SINGLE_MODE_NON_SECURE)
|
#if !defined(TX_SINGLE_MODE_SECURE) && !defined(TX_SINGLE_MODE_NON_SECURE)
|
||||||
|
|||||||
@@ -41,6 +41,10 @@
|
|||||||
#define TX_THREAD_SECURE_STACK_MAXIMUM 1024
|
#define TX_THREAD_SECURE_STACK_MAXIMUM 1024
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* 8 bytes added to stack size to "seal" stack. */
|
||||||
|
#define TX_THREAD_STACK_SEAL_SIZE 8
|
||||||
|
#define TX_THREAD_STACK_SEAL_VALUE 0xFEF5EDA5
|
||||||
|
|
||||||
/* Secure stack info struct to hold stack start, stack limit,
|
/* Secure stack info struct to hold stack start, stack limit,
|
||||||
current stack pointer, and pointer to owning thread.
|
current stack pointer, and pointer to owning thread.
|
||||||
This will be allocated for each thread with a secure stack. */
|
This will be allocated for each thread with a secure stack. */
|
||||||
@@ -59,7 +63,7 @@ typedef struct TX_THREAD_SECURE_STACK_INFO_STRUCT
|
|||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _tx_thread_secure_stack_initialize Cortex-M33/AC6 */
|
/* _tx_thread_secure_stack_initialize Cortex-M33/AC6 */
|
||||||
/* 6.1 */
|
/* 6.1.1 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
@@ -91,7 +95,9 @@ typedef struct TX_THREAD_SECURE_STACK_INFO_STRUCT
|
|||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 10-16-2020 Scott Larson Modified comment(s), */
|
||||||
|
/* resulting in version 6.1.1 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
__attribute__((cmse_nonsecure_entry))
|
__attribute__((cmse_nonsecure_entry))
|
||||||
@@ -115,8 +121,8 @@ void _tx_thread_secure_stack_initialize(void)
|
|||||||
/* */
|
/* */
|
||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _tx_thread_secure_mode_stack_allocate PORTABLE C */
|
/* _tx_thread_secure_mode_stack_allocate Cortex-M33/AC6 */
|
||||||
/* 6.1 */
|
/* 6.1.1 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
@@ -155,7 +161,10 @@ void _tx_thread_secure_stack_initialize(void)
|
|||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 10-16-2020 Scott Larson Modified comment(s), */
|
||||||
|
/* added stack sealing, */
|
||||||
|
/* resulting in version 6.1.1 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
__attribute__((cmse_nonsecure_entry))
|
__attribute__((cmse_nonsecure_entry))
|
||||||
@@ -185,14 +194,13 @@ UCHAR *stack_mem;
|
|||||||
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
||||||
/* Allocate space for secure stack info. */
|
/* Allocate space for secure stack info. */
|
||||||
info_ptr = calloc(1, sizeof(TX_THREAD_SECURE_STACK_INFO));
|
info_ptr = calloc(1, sizeof(TX_THREAD_SECURE_STACK_INFO));
|
||||||
|
|
||||||
if(info_ptr != TX_NULL)
|
if(info_ptr != TX_NULL)
|
||||||
{
|
{
|
||||||
/* If stack info allocated, allocate a stack. */
|
/* If stack info allocated, allocate a stack & seal. */
|
||||||
stack_mem = malloc(stack_size);
|
stack_mem = malloc(stack_size + TX_THREAD_STACK_SEAL_SIZE);
|
||||||
|
|
||||||
if(stack_mem != TX_NULL)
|
if(stack_mem != TX_NULL)
|
||||||
{
|
{
|
||||||
@@ -202,6 +210,9 @@ UCHAR *stack_mem;
|
|||||||
info_ptr -> tx_thread_secure_stack_ptr = info_ptr -> tx_thread_secure_stack_start;
|
info_ptr -> tx_thread_secure_stack_ptr = info_ptr -> tx_thread_secure_stack_start;
|
||||||
info_ptr -> tx_thread_ptr = thread_ptr;
|
info_ptr -> tx_thread_ptr = thread_ptr;
|
||||||
|
|
||||||
|
/* Seal bottom of stack. */
|
||||||
|
*(ULONG*)info_ptr -> tx_thread_secure_stack_start = TX_THREAD_STACK_SEAL_VALUE;
|
||||||
|
|
||||||
/* Save info pointer in thread. */
|
/* Save info pointer in thread. */
|
||||||
thread_ptr -> tx_thread_secure_stack_context = info_ptr;
|
thread_ptr -> tx_thread_secure_stack_context = info_ptr;
|
||||||
|
|
||||||
@@ -237,8 +248,8 @@ UCHAR *stack_mem;
|
|||||||
/* */
|
/* */
|
||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _tx_thread_secure_mode_stack_free PORTABLE C */
|
/* _tx_thread_secure_mode_stack_free Cortex-M33/AC6 */
|
||||||
/* 6.1 */
|
/* 6.1.1 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
@@ -270,7 +281,9 @@ UCHAR *stack_mem;
|
|||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 10-16-2020 Scott Larson Modified comment(s), */
|
||||||
|
/* resulting in version 6.1.1 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
__attribute__((cmse_nonsecure_entry))
|
__attribute__((cmse_nonsecure_entry))
|
||||||
@@ -318,8 +331,8 @@ TX_THREAD_SECURE_STACK_INFO *info_ptr;
|
|||||||
/* */
|
/* */
|
||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _tx_thread_secure_stack_context_save PORTABLE C */
|
/* _tx_thread_secure_stack_context_save Cortex-M33/AC6 */
|
||||||
/* 6.1 */
|
/* 6.1.1 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
@@ -351,7 +364,9 @@ TX_THREAD_SECURE_STACK_INFO *info_ptr;
|
|||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 10-16-2020 Scott Larson Modified comment(s), */
|
||||||
|
/* resulting in version 6.1.1 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
__attribute__((cmse_nonsecure_entry))
|
__attribute__((cmse_nonsecure_entry))
|
||||||
@@ -400,8 +415,8 @@ ULONG sp;
|
|||||||
/* */
|
/* */
|
||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _tx_thread_secure_stack_context_restore PORTABLE C */
|
/* _tx_thread_secure_stack_context_restore Cortex-M33/AC6 */
|
||||||
/* 6.1 */
|
/* 6.1.1 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
@@ -432,7 +447,9 @@ ULONG sp;
|
|||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 10-16-2020 Scott Larson Modified comment(s), */
|
||||||
|
/* resulting in version 6.1.1 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
__attribute__((cmse_nonsecure_entry))
|
__attribute__((cmse_nonsecure_entry))
|
||||||
|
|||||||
@@ -40,6 +40,10 @@
|
|||||||
#define TX_THREAD_SECURE_STACK_MAXIMUM 1024
|
#define TX_THREAD_SECURE_STACK_MAXIMUM 1024
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* 8 bytes added to stack size to "seal" stack. */
|
||||||
|
#define TX_THREAD_STACK_SEAL_SIZE 8
|
||||||
|
#define TX_THREAD_STACK_SEAL_VALUE 0xFEF5EDA5
|
||||||
|
|
||||||
/* Secure stack info struct to hold stack start, stack limit,
|
/* Secure stack info struct to hold stack start, stack limit,
|
||||||
current stack pointer, and pointer to owning thread.
|
current stack pointer, and pointer to owning thread.
|
||||||
This will be allocated for each thread with a secure stack. */
|
This will be allocated for each thread with a secure stack. */
|
||||||
@@ -58,7 +62,7 @@ typedef struct TX_THREAD_SECURE_STACK_INFO_STRUCT
|
|||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _tx_thread_secure_stack_initialize Cortex-M33/GNU */
|
/* _tx_thread_secure_stack_initialize Cortex-M33/GNU */
|
||||||
/* 6.1 */
|
/* 6.1.1 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
@@ -90,7 +94,9 @@ typedef struct TX_THREAD_SECURE_STACK_INFO_STRUCT
|
|||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 10-16-2020 Scott Larson Modified comment(s), */
|
||||||
|
/* resulting in version 6.1.1 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
__attribute__((cmse_nonsecure_entry))
|
__attribute__((cmse_nonsecure_entry))
|
||||||
@@ -118,7 +124,7 @@ void _tx_thread_secure_stack_initialize(void)
|
|||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _tx_thread_secure_mode_stack_allocate Cortex-M33/GNU */
|
/* _tx_thread_secure_mode_stack_allocate Cortex-M33/GNU */
|
||||||
/* 6.1 */
|
/* 6.1.1 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
@@ -156,7 +162,10 @@ void _tx_thread_secure_stack_initialize(void)
|
|||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 10-16-2020 Scott Larson Modified comment(s), */
|
||||||
|
/* added stack sealing, */
|
||||||
|
/* resulting in version 6.1.1 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
__attribute__((cmse_nonsecure_entry))
|
__attribute__((cmse_nonsecure_entry))
|
||||||
@@ -194,8 +203,8 @@ ULONG psplim_ns;
|
|||||||
|
|
||||||
if(info_ptr != TX_NULL)
|
if(info_ptr != TX_NULL)
|
||||||
{
|
{
|
||||||
/* If stack info allocated, allocate a stack. */
|
/* If stack info allocated, allocate a stack & seal. */
|
||||||
stack_mem = malloc(stack_size);
|
stack_mem = malloc(stack_size + TX_THREAD_STACK_SEAL_SIZE);
|
||||||
|
|
||||||
if(stack_mem != TX_NULL)
|
if(stack_mem != TX_NULL)
|
||||||
{
|
{
|
||||||
@@ -205,6 +214,9 @@ ULONG psplim_ns;
|
|||||||
info_ptr -> tx_thread_secure_stack_ptr = info_ptr -> tx_thread_secure_stack_start;
|
info_ptr -> tx_thread_secure_stack_ptr = info_ptr -> tx_thread_secure_stack_start;
|
||||||
info_ptr -> tx_thread_ptr = thread_ptr;
|
info_ptr -> tx_thread_ptr = thread_ptr;
|
||||||
|
|
||||||
|
/* Seal bottom of stack. */
|
||||||
|
*(ULONG*)info_ptr -> tx_thread_secure_stack_start = TX_THREAD_STACK_SEAL_VALUE;
|
||||||
|
|
||||||
/* Save info pointer in thread. */
|
/* Save info pointer in thread. */
|
||||||
thread_ptr -> tx_thread_secure_stack_context = info_ptr;
|
thread_ptr -> tx_thread_secure_stack_context = info_ptr;
|
||||||
|
|
||||||
@@ -242,7 +254,7 @@ ULONG psplim_ns;
|
|||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _tx_thread_secure_mode_stack_free Cortex-M33/GNU */
|
/* _tx_thread_secure_mode_stack_free Cortex-M33/GNU */
|
||||||
/* 6.1 */
|
/* 6.1.1 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
@@ -274,7 +286,9 @@ ULONG psplim_ns;
|
|||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 10-16-2020 Scott Larson Modified comment(s), */
|
||||||
|
/* resulting in version 6.1.1 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
__attribute__((cmse_nonsecure_entry))
|
__attribute__((cmse_nonsecure_entry))
|
||||||
@@ -325,7 +339,7 @@ ULONG ipsr;
|
|||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _tx_thread_secure_stack_context_save Cortex-M33/GNU */
|
/* _tx_thread_secure_stack_context_save Cortex-M33/GNU */
|
||||||
/* 6.1 */
|
/* 6.1.1 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
@@ -357,7 +371,9 @@ ULONG ipsr;
|
|||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 10-16-2020 Scott Larson Modified comment(s), */
|
||||||
|
/* resulting in version 6.1.1 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
__attribute__((cmse_nonsecure_entry))
|
__attribute__((cmse_nonsecure_entry))
|
||||||
@@ -409,7 +425,7 @@ ULONG ipsr;
|
|||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _tx_thread_secure_stack_context_restore Cortex-M33/GNU */
|
/* _tx_thread_secure_stack_context_restore Cortex-M33/GNU */
|
||||||
/* 6.1 */
|
/* 6.1.1 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
@@ -440,7 +456,9 @@ ULONG ipsr;
|
|||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 10-16-2020 Scott Larson Modified comment(s), */
|
||||||
|
/* resulting in version 6.1.1 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
__attribute__((cmse_nonsecure_entry))
|
__attribute__((cmse_nonsecure_entry))
|
||||||
|
|||||||
@@ -20,6 +20,7 @@
|
|||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
|
|
||||||
|
|
||||||
#include "tx_api.h"
|
#include "tx_api.h"
|
||||||
|
|
||||||
/* If TX_SINGLE_MODE_SECURE or TX_SINGLE_MODE_NON_SECURE is defined,
|
/* If TX_SINGLE_MODE_SECURE or TX_SINGLE_MODE_NON_SECURE is defined,
|
||||||
@@ -40,6 +41,10 @@
|
|||||||
#define TX_THREAD_SECURE_STACK_MAXIMUM 1024
|
#define TX_THREAD_SECURE_STACK_MAXIMUM 1024
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* 8 bytes added to stack size to "seal" stack. */
|
||||||
|
#define TX_THREAD_STACK_SEAL_SIZE 8
|
||||||
|
#define TX_THREAD_STACK_SEAL_VALUE 0xFEF5EDA5
|
||||||
|
|
||||||
/* Secure stack info struct to hold stack start, stack limit,
|
/* Secure stack info struct to hold stack start, stack limit,
|
||||||
current stack pointer, and pointer to owning thread.
|
current stack pointer, and pointer to owning thread.
|
||||||
This will be allocated for each thread with a secure stack. */
|
This will be allocated for each thread with a secure stack. */
|
||||||
@@ -58,7 +63,7 @@ typedef struct TX_THREAD_SECURE_STACK_INFO_STRUCT
|
|||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _tx_thread_secure_stack_initialize Cortex-M33/IAR */
|
/* _tx_thread_secure_stack_initialize Cortex-M33/IAR */
|
||||||
/* 6.1 */
|
/* 6.1.1 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
@@ -90,7 +95,9 @@ typedef struct TX_THREAD_SECURE_STACK_INFO_STRUCT
|
|||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 10-16-2020 Scott Larson Modified comment(s), */
|
||||||
|
/* resulting in version 6.1.1 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
__attribute__((cmse_nonsecure_entry))
|
__attribute__((cmse_nonsecure_entry))
|
||||||
@@ -114,8 +121,8 @@ void _tx_thread_secure_stack_initialize(void)
|
|||||||
/* */
|
/* */
|
||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _tx_thread_secure_mode_stack_allocate PORTABLE C */
|
/* _tx_thread_secure_mode_stack_allocate Cortex-M33/IAR */
|
||||||
/* 6.1 */
|
/* 6.1.1 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
@@ -154,7 +161,10 @@ void _tx_thread_secure_stack_initialize(void)
|
|||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 10-16-2020 Scott Larson Modified comment(s), */
|
||||||
|
/* added stack sealing, */
|
||||||
|
/* resulting in version 6.1.1 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
__attribute__((cmse_nonsecure_entry))
|
__attribute__((cmse_nonsecure_entry))
|
||||||
@@ -184,14 +194,13 @@ UCHAR *stack_mem;
|
|||||||
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
||||||
/* Allocate space for secure stack info. */
|
/* Allocate space for secure stack info. */
|
||||||
info_ptr = calloc(1, sizeof(TX_THREAD_SECURE_STACK_INFO));
|
info_ptr = calloc(1, sizeof(TX_THREAD_SECURE_STACK_INFO));
|
||||||
|
|
||||||
if(info_ptr != TX_NULL)
|
if(info_ptr != TX_NULL)
|
||||||
{
|
{
|
||||||
/* If stack info allocated, allocate a stack. */
|
/* If stack info allocated, allocate a stack & seal. */
|
||||||
stack_mem = malloc(stack_size);
|
stack_mem = malloc(stack_size + TX_THREAD_STACK_SEAL_SIZE);
|
||||||
|
|
||||||
if(stack_mem != TX_NULL)
|
if(stack_mem != TX_NULL)
|
||||||
{
|
{
|
||||||
@@ -201,6 +210,9 @@ UCHAR *stack_mem;
|
|||||||
info_ptr -> tx_thread_secure_stack_ptr = info_ptr -> tx_thread_secure_stack_start;
|
info_ptr -> tx_thread_secure_stack_ptr = info_ptr -> tx_thread_secure_stack_start;
|
||||||
info_ptr -> tx_thread_ptr = thread_ptr;
|
info_ptr -> tx_thread_ptr = thread_ptr;
|
||||||
|
|
||||||
|
/* Seal bottom of stack. */
|
||||||
|
*(ULONG*)info_ptr -> tx_thread_secure_stack_start = TX_THREAD_STACK_SEAL_VALUE;
|
||||||
|
|
||||||
/* Save info pointer in thread. */
|
/* Save info pointer in thread. */
|
||||||
thread_ptr -> tx_thread_secure_stack_context = info_ptr;
|
thread_ptr -> tx_thread_secure_stack_context = info_ptr;
|
||||||
|
|
||||||
@@ -236,8 +248,8 @@ UCHAR *stack_mem;
|
|||||||
/* */
|
/* */
|
||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _tx_thread_secure_mode_stack_free PORTABLE C */
|
/* _tx_thread_secure_mode_stack_free Cortex-M33/IAR */
|
||||||
/* 6.1 */
|
/* 6.1.1 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
@@ -269,7 +281,9 @@ UCHAR *stack_mem;
|
|||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 10-16-2020 Scott Larson Modified comment(s), */
|
||||||
|
/* resulting in version 6.1.1 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
__attribute__((cmse_nonsecure_entry))
|
__attribute__((cmse_nonsecure_entry))
|
||||||
@@ -317,8 +331,8 @@ TX_THREAD_SECURE_STACK_INFO *info_ptr;
|
|||||||
/* */
|
/* */
|
||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _tx_thread_secure_stack_context_save PORTABLE C */
|
/* _tx_thread_secure_stack_context_save Cortex-M33/IAR */
|
||||||
/* 6.1 */
|
/* 6.1.1 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
@@ -350,7 +364,9 @@ TX_THREAD_SECURE_STACK_INFO *info_ptr;
|
|||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 10-16-2020 Scott Larson Modified comment(s), */
|
||||||
|
/* resulting in version 6.1.1 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
__attribute__((cmse_nonsecure_entry))
|
__attribute__((cmse_nonsecure_entry))
|
||||||
@@ -399,8 +415,8 @@ ULONG sp;
|
|||||||
/* */
|
/* */
|
||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _tx_thread_secure_stack_context_restore PORTABLE C */
|
/* _tx_thread_secure_stack_context_restore Cortex-M33/IAR */
|
||||||
/* 6.1 */
|
/* 6.1.1 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
@@ -431,7 +447,9 @@ ULONG sp;
|
|||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 10-16-2020 Scott Larson Modified comment(s), */
|
||||||
|
/* resulting in version 6.1.1 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
__attribute__((cmse_nonsecure_entry))
|
__attribute__((cmse_nonsecure_entry))
|
||||||
|
|||||||
Reference in New Issue
Block a user