Skip to content

Commit 3aeabbe

Browse files
authored
Merge branch 'main' into comment_revise
2 parents 6a73c99 + 850d294 commit 3aeabbe

51 files changed

Lines changed: 24187 additions & 96 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/scripts/kernel_checker.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,13 +112,15 @@
112112
r'.*portable/.*/ARM_CM23*',
113113
r'.*portable/.*/ARM_CM33*',
114114
r'.*portable/.*/ARM_CM35*',
115+
r'.*portable/.*/ARM_CM52*',
115116
r'.*portable/.*/ARM_CM55*',
116117
r'.*portable/.*/ARM_CM85*',
117118
r'.*portable/.*/ARM_CM0*',
118119
r'.*portable/.*/ARM_CM3_MPU*',
119120
r'.*portable/.*/ARM_CM4_MPU*',
120121
r'.*portable/.*/ARM_CM4F_MPU*',
121122
r'.*portable/.*/ARM_CR82*',
123+
r'.*portable/.*/ARM_STAR_MC3*',
122124
r'.*include/task\.h$',
123125
r'.*tasks\.c$',
124126
]

CMakeLists.txt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,10 @@ if(NOT FREERTOS_PORT)
8888
" GCC_ARM_CM85_SECURE - Compiler: GCC Target: ARM Cortex-M85 secure\n"
8989
" GCC_ARM_CM85_NTZ_NONSECURE - Compiler: GCC Target: ARM Cortex-M85 non-trustzone non-secure\n"
9090
" GCC_ARM_CM85_TFM - Compiler: GCC Target: ARM Cortex-M85 non-secure for TF-M\n"
91+
" GCC_ARM_STAR_MC3_NONSECURE - Compiler: GCC Target: Arm China STAR-MC3 non-secure\n"
92+
" GCC_ARM_STAR_MC3_SECURE - Compiler: GCC Target: Arm China STAR-MC3 secure\n"
93+
" GCC_ARM_STAR_MC3_NTZ_NONSECURE - Compiler: GCC Target: Arm China STAR-MC3 non-trustzone non-secure\n"
94+
" GCC_ARM_STAR_MC3_TFM - Compiler: GCC Target: Arm China STAR-MC3 non-secure for TF-M\n"
9195
" GCC_ARM_CR5 - Compiler: GCC Target: ARM Cortex-R5\n"
9296
" GCC_ARM_CRX_MPU - Compiler: GCC Target: ARM Cortex-Rx with MPU\n"
9397
" GCC_ARM_CRX_NOGIC - Compiler: GCC Target: ARM Cortex-Rx no GIC\n"
@@ -159,6 +163,10 @@ if(NOT FREERTOS_PORT)
159163
" IAR_ARM_CM85_SECURE - Compiler: IAR Target: ARM Cortex-M85 secure\n"
160164
" IAR_ARM_CM85_NTZ_NONSECURE - Compiler: IAR Target: ARM Cortex-M85 non-trustzone non-secure\n"
161165
" IAR_ARM_CM85_TFM - Compiler: IAR Target: ARM Cortex-M85 non-secure for TF-M\n"
166+
" IAR_ARM_STAR_MC3_NONSECURE - Compiler: IAR Target: Arm China STAR-MC3 non-secure\n"
167+
" IAR_ARM_STAR_MC3_SECURE - Compiler: IAR Target: Arm China STAR-MC3 secure\n"
168+
" IAR_ARM_STAR_MC3_NTZ_NONSECURE - Compiler: IAR Target: Arm China STAR-MC3 non-trustzone non-secure\n"
169+
" IAR_ARM_STAR_MC3_TFM - Compiler: IAR Target: Arm China STAR-MC3 non-secure for TF-M\n"
162170
" IAR_ARM_CRX_NOGIC - Compiler: IAR Target: ARM Cortex-Rx no GIC\n"
163171
" IAR_ATMEGA323 - Compiler: IAR Target: ATMega323\n"
164172
" IAR_ATMEL_SAM7S64 - Compiler: IAR Target: Atmel SAM7S64\n"

examples/template_configuration/FreeRTOSConfig.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -602,8 +602,8 @@
602602

603603
/* Set configENABLE_MVE to 1 to enable the M-Profile Vector Extension (MVE)
604604
* support, or 0 to leave the MVE support disabled. This option is only
605-
* applicable to Cortex-M52, Cortex-M55 and Cortex-M85 ports as M-Profile
606-
* Vector Extension (MVE) is available only on these architectures.
605+
* applicable to Cortex-M52, Cortex-M55, Cortex-M85 and STAR-MC3 ports as
606+
* M-Profile Vector Extension (MVE) is available only on these architectures.
607607
* configENABLE_MVE must be left undefined, or defined to 0 for the
608608
* Cortex-M23,Cortex-M33 and Cortex-M35P ports. */
609609
#define configENABLE_MVE 1

portable/ARMv8M/ReadMe.txt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
This directory tree contains the master copy of the FreeRTOS Armv8-M and
22
Armv8.1-M ports.
33
Do not use the files located here! These file are copied into separate
4-
FreeRTOS/Source/portable/[compiler]/ARM_CM[23|33|52|55|85]_NNN directories prior to each
5-
FreeRTOS release.
4+
FreeRTOS/Source/portable/[compiler]/ARM_[CM23|CM33|CM52|CM55|CM85|STAR_MC3]_NNN directories
5+
prior to each FreeRTOS release.
66

77
If your Armv8-M and Armv8.1-M application uses TrustZone then use the files from the
8-
FreeRTOS/Source/portable/[compiler]/ARM_CM[23|33|52|55|85] directories.
8+
FreeRTOS/Source/portable/[compiler]/ARM_[CM23|CM33|CM52|CM55|CM85|STAR_MC3] directories.
99

1010
If your Armv8-M and Armv8.1-M application does not use TrustZone then use the files from
11-
the FreeRTOS/Source/portable/[compiler]/ARM_CM[23|33|52|55|85]_NTZ directories.
11+
the FreeRTOS/Source/portable/[compiler]/ARM_[CM23|CM33|CM52|CM55|CM85|STAR_MC3]_NTZ directories.

portable/ARMv8M/copy_files.py

Lines changed: 84 additions & 70 deletions
Large diffs are not rendered by default.
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
This directory tree contains the master copy of the FreeRTOS Armv8-M and
22
Armv8.1-M ports.
33
Do not use the files located here! These file are copied into separate
4-
FreeRTOS/Source/portable/[compiler]/ARM_CM[23|33|52|55|85]_NNN directories prior to
5-
each FreeRTOS release.
4+
FreeRTOS/Source/portable/[compiler]/ARM_[CM23|CM33|CM52|CM55|CM85|STAR_MC3]_NNN directories
5+
prior to each FreeRTOS release.
66

77
If your Armv8-M/Armv8.1-M application uses TrustZone then use the files from the
8-
FreeRTOS/Source/portable/[compiler]/ARM_CM[23|33|52|55|85] directories.
8+
FreeRTOS/Source/portable/[compiler]/ARM_[CM23|CM33|CM52|CM55|CM85|STAR_MC3] directories.
99

1010
If your Armv8-M/Armv8.1-M application does not use TrustZone then use the files from
11-
the FreeRTOS/Source/portable/[compiler]/ARM_CM[23|33|52|55|85]_NTZ directories.
11+
the FreeRTOS/Source/portable/[compiler]/ARM_[CM23|CM33|CM52|CM55|CM85|STAR_MC3]_NTZ directories.
Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
/*
2+
* FreeRTOS Kernel <DEVELOPMENT BRANCH>
3+
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
4+
* Copyright (c) 2026 Arm Technology (China) Co., Ltd.All Rights Reserved.
5+
*
6+
* SPDX-License-Identifier: MIT
7+
*
8+
* Permission is hereby granted, free of charge, to any person obtaining a copy of
9+
* this software and associated documentation files (the "Software"), to deal in
10+
* the Software without restriction, including without limitation the rights to
11+
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
12+
* the Software, and to permit persons to whom the Software is furnished to do so,
13+
* subject to the following conditions:
14+
*
15+
* The above copyright notice and this permission notice shall be included in all
16+
* copies or substantial portions of the Software.
17+
*
18+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
20+
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
21+
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
22+
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
23+
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
24+
*
25+
* https://www.FreeRTOS.org
26+
* https://github.com/FreeRTOS
27+
*
28+
*/
29+
30+
#ifndef PORTMACRO_H
31+
#define PORTMACRO_H
32+
33+
/* *INDENT-OFF* */
34+
#ifdef __cplusplus
35+
extern "C" {
36+
#endif
37+
/* *INDENT-ON* */
38+
39+
/*------------------------------------------------------------------------------
40+
* Port specific definitions.
41+
*
42+
* The settings in this file configure FreeRTOS correctly for the given hardware
43+
* and compiler.
44+
*
45+
* These settings should not be altered.
46+
*------------------------------------------------------------------------------
47+
*/
48+
49+
#ifndef configENABLE_MVE
50+
#error configENABLE_MVE must be defined in FreeRTOSConfig.h. Set configENABLE_MVE to 1 to enable the MVE or 0 to disable the MVE.
51+
#endif /* configENABLE_MVE */
52+
/*-----------------------------------------------------------*/
53+
54+
/**
55+
* Architecture specifics.
56+
*/
57+
#define portARCH_NAME "STAR-MC3"
58+
#define portHAS_ARMV8M_MAIN_EXTENSION 1
59+
#define portARMV8M_MINOR_VERSION 1
60+
#define portDONT_DISCARD __attribute__( ( used ) )
61+
/*-----------------------------------------------------------*/
62+
63+
/* ARMv8-M common port configurations. */
64+
#include "portmacrocommon.h"
65+
/*-----------------------------------------------------------*/
66+
67+
/**
68+
* @brief Critical section management.
69+
*/
70+
#define portDISABLE_INTERRUPTS() ulSetInterruptMask()
71+
#define portENABLE_INTERRUPTS() vClearInterruptMask( 0 )
72+
/*-----------------------------------------------------------*/
73+
74+
/* *INDENT-OFF* */
75+
#ifdef __cplusplus
76+
}
77+
#endif
78+
/* *INDENT-ON* */
79+
80+
#endif /* PORTMACRO_H */
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
/*
2+
* FreeRTOS Kernel <DEVELOPMENT BRANCH>
3+
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
4+
* Copyright (c) 2026 Arm Technology (China) Co., Ltd.All Rights Reserved.
5+
*
6+
* SPDX-License-Identifier: MIT
7+
*
8+
* Permission is hereby granted, free of charge, to any person obtaining a copy of
9+
* this software and associated documentation files (the "Software"), to deal in
10+
* the Software without restriction, including without limitation the rights to
11+
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
12+
* the Software, and to permit persons to whom the Software is furnished to do so,
13+
* subject to the following conditions:
14+
*
15+
* The above copyright notice and this permission notice shall be included in all
16+
* copies or substantial portions of the Software.
17+
*
18+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
20+
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
21+
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
22+
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
23+
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
24+
*
25+
* https://www.FreeRTOS.org
26+
* https://github.com/FreeRTOS
27+
*
28+
*/
29+
30+
#ifndef PORTMACRO_H
31+
#define PORTMACRO_H
32+
33+
/* *INDENT-OFF* */
34+
#ifdef __cplusplus
35+
extern "C" {
36+
#endif
37+
/* *INDENT-ON* */
38+
39+
/*------------------------------------------------------------------------------
40+
* Port specific definitions.
41+
*
42+
* The settings in this file configure FreeRTOS correctly for the given hardware
43+
* and compiler.
44+
*
45+
* These settings should not be altered.
46+
*------------------------------------------------------------------------------
47+
*/
48+
49+
#ifndef configENABLE_MVE
50+
#error configENABLE_MVE must be defined in FreeRTOSConfig.h. Set configENABLE_MVE to 1 to enable the MVE or 0 to disable the MVE.
51+
#endif /* configENABLE_MVE */
52+
/*-----------------------------------------------------------*/
53+
54+
/**
55+
* Architecture specifics.
56+
*/
57+
#define portARCH_NAME "STAR-MC3"
58+
#define portHAS_ARMV8M_MAIN_EXTENSION 1
59+
#define portARMV8M_MINOR_VERSION 1
60+
#define portDONT_DISCARD __root
61+
/*-----------------------------------------------------------*/
62+
63+
/* ARMv8-M common port configurations. */
64+
#include "portmacrocommon.h"
65+
/*-----------------------------------------------------------*/
66+
67+
/**
68+
* @brief Critical section management.
69+
*/
70+
#define portDISABLE_INTERRUPTS() ulSetInterruptMask()
71+
#define portENABLE_INTERRUPTS() vClearInterruptMask( 0 )
72+
/*-----------------------------------------------------------*/
73+
74+
/* Suppress warnings that are generated by the IAR tools, but cannot be fixed in
75+
* the source code because to do so would cause other compilers to generate
76+
* warnings. */
77+
#pragma diag_suppress=Be006
78+
#pragma diag_suppress=Pa082
79+
/*-----------------------------------------------------------*/
80+
81+
/* *INDENT-OFF* */
82+
#ifdef __cplusplus
83+
}
84+
#endif
85+
/* *INDENT-ON* */
86+
87+
#endif /* PORTMACRO_H */

portable/ARMv8M/secure/ReadMe.txt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
This directory tree contains the master copy of the FreeRTOS Armv8-M and
22
Armv8.1-M ports.
33
Do not use the files located here! These file are copied into separate
4-
FreeRTOS/Source/portable/[compiler]/ARM_CM[23|33|52|55|85]_NNN directories prior to
5-
each FreeRTOS release.
4+
FreeRTOS/Source/portable/[compiler]/ARM_[CM23|CM33|CM52|CM55|CM85|STAR_MC3]_NNN directories
5+
prior to each FreeRTOS release.
66

77
If your Armv8-M/Armv8.1-M application uses TrustZone then use the files from the
8-
FreeRTOS/Source/portable/[compiler]/ARM_CM[23|33|52|55|85] directories.
8+
FreeRTOS/Source/portable/[compiler]/ARM_[CM23|CM33|CM52|CM55|CM85|STAR_MC3] directories.
99

1010
If your Armv8-M/Armv8.1-M application does not use TrustZone then use the files from
11-
the FreeRTOS/Source/portable/[compiler]/ARM_CM[23|33|52|55|85]_NTZ directories.
11+
the FreeRTOS/Source/portable/[compiler]/ARM_[CM23|CM33|CM52|CM55|CM85|STAR_MC3]_NTZ directories.

portable/CMakeLists.txt

Lines changed: 62 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -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()
932976
endif()
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

Comments
 (0)