blob: 21a7d48772cf84c2cc079ef3aa83dca2884360cc (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
# Copyright (c) 2026 Eclipse ThreadX contributors
# SPDX-License-Identifier: MIT
# Portions of this file were generated with AI assistance.
#
# Toolchain file for Arm Cortex-M52 using GNU tools.
#
# The FPU and the MVE unit come with the core, so the hard float ABI
# is selected here rather than left to the caller. scripts/check_clang.sh
# builds this core the same way.
# Name of the target
set(CMAKE_SYSTEM_NAME Generic)
set(CMAKE_SYSTEM_PROCESSOR cortex-m52)
set(THREADX_ARCH "cortex_m52")
set(THREADX_TOOLCHAIN "gnu")
# The hard float ABI is not optional here: -mcpu=cortex-m52 implies Helium, and
# the soft-float variant has no matching library.
set(MCPU_FLAGS "-mthumb -mcpu=cortex-m52")
set(VFP_FLAGS "-mfloat-abi=hard")
set(SPEC_FLAGS "--specs=nosys.specs")
include(${CMAKE_CURRENT_LIST_DIR}/arm-none-eabi.cmake)
# Pin the reference cross toolchain, as cmake/cortex_r52.cmake does. This core
# needs it rather than merely preferring it: arm-none-eabi-gcc only learned
# -mcpu=cortex-m52 in GCC 14, so a distribution compiler on PATH is likely to
# reject the port outright. Override with -DARM_TOOLCHAIN_PATH=<dir containing
# arm-none-eabi-gcc> to build with a different compiler. The check leaves PATH
# alone when the pinned directory is absent.
#
# As in cortex_r52.cmake, the default below serves local builds and nothing
# else -- no CI job has that directory, so on a runner the EXISTS check falls
# through and the compiler comes from PATH. See the longer note there.
if(NOT DEFINED ARM_TOOLCHAIN_PATH)
set(ARM_TOOLCHAIN_PATH
"$ENV{HOME}/toolchains/arm-gnu-toolchain-14.3.rel1-x86_64-arm-none-eabi/bin")
endif()
if(EXISTS "${ARM_TOOLCHAIN_PATH}/arm-none-eabi-gcc")
set(CMAKE_C_COMPILER "${ARM_TOOLCHAIN_PATH}/arm-none-eabi-gcc")
set(CMAKE_CXX_COMPILER "${ARM_TOOLCHAIN_PATH}/arm-none-eabi-g++")
set(CMAKE_ASM_COMPILER "${ARM_TOOLCHAIN_PATH}/arm-none-eabi-gcc")
endif()
|