@@ -226,6 +226,28 @@ add_library(freertos_kernel_port OBJECT
226226 GCC /ARM_CM85_NTZ /non_secure /mpu_wrappers_v2_asm .c
227227 ThirdParty /GCC /ARM_TFM /os_wrapper_freertos .c >
228228
229+ $<$<STREQUAL :${FREERTOS_PORT} ,GCC_ARM_STAR_MC3_NONSECURE >:
230+ GCC /ARM_STAR_MC3 /non_secure /port .c
231+ GCC /ARM_STAR_MC3 /non_secure /portasm .c
232+ GCC /ARM_STAR_MC3 /non_secure /mpu_wrappers_v2_asm .c >
233+
234+ $<$<STREQUAL :${FREERTOS_PORT} ,GCC_ARM_STAR_MC3_SECURE >:
235+ GCC /ARM_STAR_MC3 /secure /secure_context_port .c
236+ GCC /ARM_STAR_MC3 /secure /secure_context .c
237+ GCC /ARM_STAR_MC3 /secure /secure_heap .c
238+ GCC /ARM_STAR_MC3 /secure /secure_init .c >
239+
240+ $<$<STREQUAL :${FREERTOS_PORT} ,GCC_ARM_STAR_MC3_NTZ_NONSECURE >:
241+ GCC /ARM_STAR_MC3_NTZ /non_secure /port .c
242+ GCC /ARM_STAR_MC3_NTZ /non_secure /portasm .c
243+ GCC /ARM_STAR_MC3_NTZ /non_secure /mpu_wrappers_v2_asm .c >
244+
245+ $<$<STREQUAL :${FREERTOS_PORT} ,GCC_ARM_STAR_MC3_TFM >:
246+ GCC /ARM_STAR_MC3_NTZ /non_secure /port .c
247+ GCC /ARM_STAR_MC3_NTZ /non_secure /portasm .c
248+ GCC /ARM_STAR_MC3_NTZ /non_secure /mpu_wrappers_v2_asm .c
249+ ThirdParty /GCC /ARM_TFM /os_wrapper_freertos .c >
250+
229251 # ARMv7-R ports for GCC
230252 $<$<STREQUAL :${FREERTOS_PORT} ,GCC_ARM_CR5 >:
231253 GCC /ARM_CR5 /port .c
@@ -570,6 +592,28 @@ add_library(freertos_kernel_port OBJECT
570592 IAR /ARM_CM85_NTZ /non_secure /mpu_wrappers_v2_asm .S
571593 ThirdParty /GCC /ARM_TFM /os_wrapper_freertos .c >
572594
595+ $<$<STREQUAL :${FREERTOS_PORT} ,IAR_ARM_STAR_MC3_NONSECURE >:
596+ IAR /ARM_STAR_MC3 /non_secure /port .c
597+ IAR /ARM_STAR_MC3 /non_secure /portasm .s
598+ IAR /ARM_STAR_MC3 /non_secure /mpu_wrappers_v2_asm .S >
599+
600+ $<$<STREQUAL :${FREERTOS_PORT} ,IAR_ARM_STAR_MC3_SECURE >:
601+ IAR /ARM_STAR_MC3 /secure /secure_context_port_asm .s
602+ IAR /ARM_STAR_MC3 /secure /secure_context .c
603+ IAR /ARM_STAR_MC3 /secure /secure_heap .c
604+ IAR /ARM_STAR_MC3 /secure /secure_init .c >
605+
606+ $<$<STREQUAL :${FREERTOS_PORT} ,IAR_ARM_STAR_MC3_NTZ_NONSECURE >:
607+ IAR /ARM_STAR_MC3_NTZ /non_secure /port .c
608+ IAR /ARM_STAR_MC3_NTZ /non_secure /portasm .s
609+ IAR /ARM_STAR_MC3_NTZ /non_secure /mpu_wrappers_v2_asm .S >
610+
611+ $<$<STREQUAL :${FREERTOS_PORT} ,IAR_ARM_STAR_MC3_TFM >:
612+ IAR /ARM_STAR_MC3_NTZ /non_secure /port .c
613+ IAR /ARM_STAR_MC3_NTZ /non_secure /portasm .s
614+ IAR /ARM_STAR_MC3_NTZ /non_secure /mpu_wrappers_v2_asm .S
615+ ThirdParty /GCC /ARM_TFM /os_wrapper_freertos .c >
616+
573617 # ARMv7-R Ports for IAR EWARM
574618 $<$<STREQUAL :${FREERTOS_PORT} ,IAR_ARM_CRX_NOGIC >:
575619 IAR /ARM_CRx_No_GIC /port .c
@@ -820,13 +864,13 @@ if( FREERTOS_PORT MATCHES "GCC_ARM_CM(3|4)_MPU" OR
820864 FREERTOS_PORT STREQUAL "IAR_ARM_CM4F_MPU" OR
821865 FREERTOS_PORT STREQUAL "RVDS_ARM_CM4_MPU" OR
822866 FREERTOS_PORT STREQUAL "GCC_ARM_CRX_MPU" OR
823- FREERTOS_PORT MATCHES "GCC_ARM_CM(23|33|52|55|85 )_NTZ_NONSECURE" OR
824- FREERTOS_PORT MATCHES "GCC_ARM_CM(23|33|52|55|85 )_NONSECURE" OR
825- FREERTOS_PORT MATCHES "GCC_ARM_CM(33|52|55|85 )_TFM" OR
867+ FREERTOS_PORT MATCHES "GCC_ARM_(CM23|CM33|CM52|CM55|CM85|STAR_MC3 )_NTZ_NONSECURE" OR
868+ FREERTOS_PORT MATCHES "GCC_ARM_(CM23|CM33|CM52|CM55|CM85|STAR_MC3 )_NONSECURE" OR
869+ FREERTOS_PORT MATCHES "GCC_ARM_(CM33|CM52|CM55|CM85|STAR_MC3 )_TFM" OR
826870 FREERTOS_PORT MATCHES "GCC_ARM_CR82" OR
827- FREERTOS_PORT MATCHES "IAR_ARM_CM(23|33|52|55|85 )_NTZ_NONSECURE" OR
828- FREERTOS_PORT MATCHES "IAR_ARM_CM(23|33|52|55|85 )_NONSECURE" OR
829- FREERTOS_PORT MATCHES "IAR_ARM_CM(33|52|55|85 )_TFM"
871+ FREERTOS_PORT MATCHES "IAR_ARM_(CM23|CM33|CM52|CM55|CM85|STAR_MC3 )_NTZ_NONSECURE" OR
872+ FREERTOS_PORT MATCHES "IAR_ARM_(CM23|CM33|CM52|CM55|CM85|STAR_MC3 )_NONSECURE" OR
873+ FREERTOS_PORT MATCHES "IAR_ARM_(CM33|CM52|CM55|CM85|STAR_MC3 )_TFM"
830874)
831875 target_sources (freertos_kernel_port PRIVATE
832876 Common/mpu_wrappers.c
@@ -840,7 +884,7 @@ if (DEFINED FREERTOS_ARM_V_8_1_M_PACBTI_CONFIG )
840884 message (FATAL_ERROR "ARMv8.1-M PACBTI support in the kernel is not yet enabled for GNU toolchain due to known issues." )
841885 endif ()
842886
843- if (FREERTOS_PORT MATCHES ".*ARM_CM(52|85 )" )
887+ if (FREERTOS_PORT MATCHES ".*ARM_(CM52|CM85|STAR_MC3 )" )
844888 if (FREERTOS_ARM_V_8_1_M_PACBTI_CONFIG STREQUAL "ARM_V_8_1_M_PACBTI_CONFIG_STANDARD" )
845889 target_compile_options (freertos_kernel_port PUBLIC $<$<STREQUAL :${CMAKE_C_COMPILER_ID} ,ARMClang >:-mbranch -protection =standard >)
846890 target_compile_options (freertos_kernel_port PUBLIC $<$<STREQUAL :${CMAKE_C_COMPILER_ID} ,IAR >:$<$<COMPILE_LANGUAGE :C ,CXX >:--branch_protection =bti +pac -ret >>)
@@ -927,7 +971,7 @@ if (DEFINED FREERTOS_ARM_V_8_1_M_PACBTI_CONFIG )
927971 )
928972 endif ()
929973 else ()
930- message (FATAL_ERROR "FREERTOS_ARM_V_8_1_M_PACBTI_CONFIG option is currently only supported on ARM Cortex-M85|M52 FreeRTOS port ." )
974+ message (FATAL_ERROR "FREERTOS_ARM_V_8_1_M_PACBTI_CONFIG option is currently only supported on ARM Cortex-M85|M52 and Arm China STAR-MC3 FreeRTOS ports ." )
931975 endif ()
932976endif ()
933977
@@ -1015,6 +1059,11 @@ target_include_directories(freertos_kernel_port_headers INTERFACE
10151059 $<$<STREQUAL :${FREERTOS_PORT} ,GCC_ARM_CM85_NTZ_NONSECURE >:${CMAKE_CURRENT_LIST_DIR} /GCC /ARM_CM85_NTZ /non_secure >
10161060 $<$<STREQUAL :${FREERTOS_PORT} ,GCC_ARM_CM85_TFM >:${CMAKE_CURRENT_LIST_DIR} /GCC /ARM_CM85_NTZ /non_secure >
10171061
1062+ $<$<STREQUAL :${FREERTOS_PORT} ,GCC_ARM_STAR_MC3_NONSECURE >:${CMAKE_CURRENT_LIST_DIR} /GCC /ARM_STAR_MC3 /non_secure >
1063+ $<$<STREQUAL :${FREERTOS_PORT} ,GCC_ARM_STAR_MC3_SECURE >:${CMAKE_CURRENT_LIST_DIR} /GCC /ARM_STAR_MC3 /secure >
1064+ $<$<STREQUAL :${FREERTOS_PORT} ,GCC_ARM_STAR_MC3_NTZ_NONSECURE >:${CMAKE_CURRENT_LIST_DIR} /GCC /ARM_STAR_MC3_NTZ /non_secure >
1065+ $<$<STREQUAL :${FREERTOS_PORT} ,GCC_ARM_STAR_MC3_TFM >:${CMAKE_CURRENT_LIST_DIR} /GCC /ARM_STAR_MC3_NTZ /non_secure >
1066+
10181067 # ARMv7-R ports for GCC
10191068 $<$<STREQUAL :${FREERTOS_PORT} ,GCC_ARM_CR5 >:${CMAKE_CURRENT_LIST_DIR} /GCC /ARM_CR5 >
10201069 $<$<STREQUAL :${FREERTOS_PORT} ,GCC_ARM_CRX_MPU >:${CMAKE_CURRENT_LIST_DIR} /GCC /ARM_CRx_MPU >
@@ -1155,6 +1204,11 @@ target_include_directories(freertos_kernel_port_headers INTERFACE
11551204 $<$<STREQUAL :${FREERTOS_PORT} ,IAR_ARM_CM85_NTZ_NONSECURE >:${CMAKE_CURRENT_LIST_DIR} /IAR /ARM_CM85_NTZ /non_secure >
11561205 $<$<STREQUAL :${FREERTOS_PORT} ,IAR_ARM_CM85_TFM >:${CMAKE_CURRENT_LIST_DIR} /IAR /ARM_CM85_NTZ /non_secure >
11571206
1207+ $<$<STREQUAL :${FREERTOS_PORT} ,IAR_ARM_STAR_MC3_NONSECURE >:${CMAKE_CURRENT_LIST_DIR} /IAR /ARM_STAR_MC3 /non_secure >
1208+ $<$<STREQUAL :${FREERTOS_PORT} ,IAR_ARM_STAR_MC3_SECURE >:${CMAKE_CURRENT_LIST_DIR} /IAR /ARM_STAR_MC3 /secure >
1209+ $<$<STREQUAL :${FREERTOS_PORT} ,IAR_ARM_STAR_MC3_NTZ_NONSECURE >:${CMAKE_CURRENT_LIST_DIR} /IAR /ARM_STAR_MC3_NTZ /non_secure >
1210+ $<$<STREQUAL :${FREERTOS_PORT} ,IAR_ARM_STAR_MC3_TFM >:${CMAKE_CURRENT_LIST_DIR} /IAR /ARM_STAR_MC3_NTZ /non_secure >
1211+
11581212 # ARMv7-R Ports for IAR EWARM
11591213 $<$<STREQUAL :${FREERTOS_PORT} ,IAR_ARM_CRX_NOGIC >:${CMAKE_CURRENT_LIST_DIR} /IAR /ARM_CRx_No_GIC >
11601214
0 commit comments