7 #ifndef __TFM_ARCH_V6M_V7M_H__
8 #define __TFM_ARCH_V6M_V7M_H__
12 #include "cmsis_compiler.h"
15 #if !TFM_MULTI_CORE_TOPOLOGY
16 #error "Armv6-M/Armv7-M can only support multi-core TF-M now."
19 #if defined(__ARM_ARCH_7M__) || defined(__ARM_ARCH_7EM__)
20 #define EXC_RETURN_FPU_FRAME_BASIC (1 << 4)
24 #define EXC_RETURN_THREAD_S_PSP 0xFFFFFFFD
55 #if defined(__ARM_ARCH_7M__) || defined(__ARM_ARCH_7EM__)
69 #elif defined(__ARM_ARCH_6M__)
120 __set_PSP(p_actx->
sp);
__STATIC_INLINE void tfm_arch_set_psplim(uint32_t psplim)
Set PSP limit value.
__STATIC_INLINE bool is_stack_alloc_fp_space(uint32_t lr)
Check whether the stack frame for this exception has space allocated for Floating Point(FP) state inf...
#define EXC_RETURN_FPU_FRAME_BASIC
__STATIC_INLINE void tfm_arch_init_secure_msp(uint32_t msplim)
Secure the MSP.
__STATIC_INLINE void tfm_arch_update_ctx(struct tfm_arch_ctx_t *p_actx)
Update architecture context value into hardware.
#define TFM_CORE_ASSERT(cond)
__STATIC_INLINE bool is_return_secure_stack(uint32_t lr)
Check whether Secure or Non-secure stack is used to restore stack frame on exception return...
__STATIC_INLINE uintptr_t tfm_arch_seal_thread_stack(uintptr_t stk)
Seal the thread stack.