mirror of
https://github.com/FreeRTOS/FreeRTOS-Kernel.git
synced 2025-12-06 13:15:19 -05:00
Add ARM Cortex-M52 port support
Fixes #1305 - Add ARM_CM52 and ARM_CM52_NTZ port implementations for GCC and IAR compilers
This commit is contained in:
parent
439af33c52
commit
f8091f70ba
48 changed files with 24103 additions and 19 deletions
|
|
@ -182,6 +182,25 @@ add_library(freertos_kernel_port OBJECT
|
|||
GCC/ARM_CM55_NTZ/non_secure/mpu_wrappers_v2_asm.c
|
||||
ThirdParty/GCC/ARM_TFM/os_wrapper_freertos.c>
|
||||
|
||||
$<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM52_NONSECURE>:
|
||||
GCC/ARM_CM52/non_secure/port.c
|
||||
GCC/ARM_CM52/non_secure/portasm.c
|
||||
GCC/ARM_CM52/non_secure/mpu_wrappers_v2_asm.c>
|
||||
$<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM52_SECURE>:
|
||||
GCC/ARM_CM52/secure/secure_context_port.c
|
||||
GCC/ARM_CM52/secure/secure_context.c
|
||||
GCC/ARM_CM52/secure/secure_heap.c
|
||||
GCC/ARM_CM52/secure/secure_init.c>
|
||||
$<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM52_NTZ_NONSECURE>:
|
||||
GCC/ARM_CM52_NTZ/non_secure/port.c
|
||||
GCC/ARM_CM52_NTZ/non_secure/portasm.c
|
||||
GCC/ARM_CM52_NTZ/non_secure/mpu_wrappers_v2_asm.c>
|
||||
$<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM52_TFM>:
|
||||
GCC/ARM_CM52_NTZ/non_secure/port.c
|
||||
GCC/ARM_CM52_NTZ/non_secure/portasm.c
|
||||
GCC/ARM_CM52_NTZ/non_secure/mpu_wrappers_v2_asm.c
|
||||
ThirdParty/GCC/ARM_TFM/os_wrapper_freertos.c>
|
||||
|
||||
$<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM85_NONSECURE>:
|
||||
GCC/ARM_CM85/non_secure/port.c
|
||||
GCC/ARM_CM85/non_secure/portasm.c
|
||||
|
|
@ -503,6 +522,28 @@ add_library(freertos_kernel_port OBJECT
|
|||
IAR/ARM_CM55_NTZ/non_secure/mpu_wrappers_v2_asm.S
|
||||
ThirdParty/GCC/ARM_TFM/os_wrapper_freertos.c>
|
||||
|
||||
$<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM52_NONSECURE>:
|
||||
IAR/ARM_CM52/non_secure/port.c
|
||||
IAR/ARM_CM52/non_secure/portasm.s
|
||||
IAR/ARM_CM52/non_secure/mpu_wrappers_v2_asm.S>
|
||||
|
||||
$<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM52_SECURE>:
|
||||
IAR/ARM_CM52/secure/secure_context_port_asm.s
|
||||
IAR/ARM_CM52/secure/secure_context.c
|
||||
IAR/ARM_CM52/secure/secure_heap.c
|
||||
IAR/ARM_CM52/secure/secure_init.c>
|
||||
|
||||
$<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM52_NTZ_NONSECURE>:
|
||||
IAR/ARM_CM52_NTZ/non_secure/port.c
|
||||
IAR/ARM_CM52_NTZ/non_secure/portasm.s
|
||||
IAR/ARM_CM52_NTZ/non_secure/mpu_wrappers_v2_asm.S>
|
||||
|
||||
$<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM52_TFM>:
|
||||
IAR/ARM_CM52_NTZ/non_secure/port.c
|
||||
IAR/ARM_CM52_NTZ/non_secure/portasm.s
|
||||
IAR/ARM_CM52_NTZ/non_secure/mpu_wrappers_v2_asm.S
|
||||
ThirdParty/GCC/ARM_TFM/os_wrapper_freertos.c>
|
||||
|
||||
$<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM85_NONSECURE>:
|
||||
IAR/ARM_CM85/non_secure/port.c
|
||||
IAR/ARM_CM85/non_secure/portasm.s
|
||||
|
|
@ -775,12 +816,12 @@ if( FREERTOS_PORT MATCHES "GCC_ARM_CM(3|4)_MPU" OR
|
|||
FREERTOS_PORT STREQUAL "IAR_ARM_CM4F_MPU" OR
|
||||
FREERTOS_PORT STREQUAL "RVDS_ARM_CM4_MPU" OR
|
||||
FREERTOS_PORT STREQUAL "GCC_ARM_CRX_MPU" OR
|
||||
FREERTOS_PORT MATCHES "GCC_ARM_CM(23|33|55|85)_NTZ_NONSECURE" OR
|
||||
FREERTOS_PORT MATCHES "GCC_ARM_CM(23|33|55|85)_NONSECURE" OR
|
||||
FREERTOS_PORT MATCHES "GCC_ARM_CM(33|55|85)_TFM" OR
|
||||
FREERTOS_PORT MATCHES "IAR_ARM_CM(23|33|55|85)_NTZ_NONSECURE" OR
|
||||
FREERTOS_PORT MATCHES "IAR_ARM_CM(23|33|55|85)_NONSECURE" OR
|
||||
FREERTOS_PORT MATCHES "IAR_ARM_CM(33|55|85)_TFM"
|
||||
FREERTOS_PORT MATCHES "GCC_ARM_CM(23|33|52|55|85)_NTZ_NONSECURE" OR
|
||||
FREERTOS_PORT MATCHES "GCC_ARM_CM(23|33|52|55|85)_NONSECURE" OR
|
||||
FREERTOS_PORT MATCHES "GCC_ARM_CM(33|52|55|85)_TFM" OR
|
||||
FREERTOS_PORT MATCHES "IAR_ARM_CM(23|33|52|55|85)_NTZ_NONSECURE" OR
|
||||
FREERTOS_PORT MATCHES "IAR_ARM_CM(23|33|52|55|85)_NONSECURE" OR
|
||||
FREERTOS_PORT MATCHES "IAR_ARM_CM(33|52|55|85)_TFM"
|
||||
)
|
||||
target_sources(freertos_kernel_port PRIVATE
|
||||
Common/mpu_wrappers.c
|
||||
|
|
@ -794,7 +835,7 @@ if (DEFINED FREERTOS_ARM_V_8_1_M_PACBTI_CONFIG )
|
|||
message(FATAL_ERROR "ARMv8.1-M PACBTI support in the kernel is not yet enabled for GNU toolchain due to known issues.")
|
||||
endif()
|
||||
|
||||
if(FREERTOS_PORT MATCHES ".*ARM_CM85")
|
||||
if(FREERTOS_PORT MATCHES ".*ARM_CM(52|85)")
|
||||
if(FREERTOS_ARM_V_8_1_M_PACBTI_CONFIG STREQUAL "ARM_V_8_1_M_PACBTI_CONFIG_STANDARD")
|
||||
target_compile_options(freertos_kernel_port PUBLIC $<$<STREQUAL:${CMAKE_C_COMPILER_ID},ARMClang>:-mbranch-protection=standard>)
|
||||
target_compile_options(freertos_kernel_port PUBLIC $<$<STREQUAL:${CMAKE_C_COMPILER_ID},IAR>:$<$<COMPILE_LANGUAGE:C,CXX>:--branch_protection=bti+pac-ret>>)
|
||||
|
|
@ -881,7 +922,7 @@ if (DEFINED FREERTOS_ARM_V_8_1_M_PACBTI_CONFIG )
|
|||
)
|
||||
endif()
|
||||
else()
|
||||
message(FATAL_ERROR "FREERTOS_ARM_V_8_1_M_PACBTI_CONFIG option is currently only supported on ARM Cortex-M85 FreeRTOS port.")
|
||||
message(FATAL_ERROR "FREERTOS_ARM_V_8_1_M_PACBTI_CONFIG option is currently only supported on ARM Cortex-M85|M52 FreeRTOS port.")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
|
|
@ -959,6 +1000,10 @@ target_include_directories(freertos_kernel_port_headers INTERFACE
|
|||
$<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM55_NTZ_NONSECURE>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CM55_NTZ/non_secure>
|
||||
$<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM55_TFM>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CM55_NTZ/non_secure>
|
||||
|
||||
$<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM52_NONSECURE>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CM52/non_secure>
|
||||
$<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM52_SECURE>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CM52/secure>
|
||||
$<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM52_NTZ_NONSECURE>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CM52_NTZ/non_secure>
|
||||
$<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM52_TFM>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CM52_NTZ/non_secure>
|
||||
$<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM85_NONSECURE>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CM85/non_secure>
|
||||
$<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM85_SECURE>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CM85/secure>
|
||||
$<$<STREQUAL:${FREERTOS_PORT},GCC_ARM_CM85_NTZ_NONSECURE>:${CMAKE_CURRENT_LIST_DIR}/GCC/ARM_CM85_NTZ/non_secure>
|
||||
|
|
@ -1094,6 +1139,10 @@ target_include_directories(freertos_kernel_port_headers INTERFACE
|
|||
$<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM55_NTZ_NONSECURE>:${CMAKE_CURRENT_LIST_DIR}/IAR/ARM_CM55_NTZ/non_secure>
|
||||
$<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM55_TFM>:${CMAKE_CURRENT_LIST_DIR}/IAR/ARM_CM55_NTZ/non_secure>
|
||||
|
||||
$<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM52_NONSECURE>:${CMAKE_CURRENT_LIST_DIR}/IAR/ARM_CM52/non_secure>
|
||||
$<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM52_SECURE>:${CMAKE_CURRENT_LIST_DIR}/IAR/ARM_CM52/secure>
|
||||
$<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM52_NTZ_NONSECURE>:${CMAKE_CURRENT_LIST_DIR}/IAR/ARM_CM52_NTZ/non_secure>
|
||||
$<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM52_TFM>:${CMAKE_CURRENT_LIST_DIR}/IAR/ARM_CM52_NTZ/non_secure>
|
||||
$<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM85_NONSECURE>:${CMAKE_CURRENT_LIST_DIR}/IAR/ARM_CM85/non_secure>
|
||||
$<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM85_SECURE>:${CMAKE_CURRENT_LIST_DIR}/IAR/ARM_CM85/secure>
|
||||
$<$<STREQUAL:${FREERTOS_PORT},IAR_ARM_CM85_NTZ_NONSECURE>:${CMAKE_CURRENT_LIST_DIR}/IAR/ARM_CM85_NTZ/non_secure>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue