mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2025-12-26 15:03:53 +01:00
For RISC-V and Cortex-M-not-3, triples are known and have worked in some configuration, but do not work at the moment and stay disabled until the reference platforms (native, M3) have been established well.
60 lines
1.7 KiB
Makefile
60 lines
1.7 KiB
Makefile
FEATURES_PROVIDED += arch_32bit
|
|
FEATURES_PROVIDED += arch_arm
|
|
FEATURES_PROVIDED += cortexm_svc
|
|
FEATURES_PROVIDED += cpp
|
|
FEATURES_PROVIDED += cpu_check_address
|
|
FEATURES_PROVIDED += cpu_core_cortexm
|
|
FEATURES_PROVIDED += dbgpin
|
|
FEATURES_PROVIDED += libstdcpp
|
|
FEATURES_PROVIDED += newlib
|
|
FEATURES_PROVIDED += periph_pm
|
|
FEATURES_PROVIDED += puf_sram
|
|
FEATURES_PROVIDED += picolibc
|
|
FEATURES_PROVIDED += ssp
|
|
|
|
# cortex-m4f and cortex-m7 provide FPU support
|
|
ifneq (,$(filter $(CPU_CORE),cortex-m4f cortex-m7))
|
|
FEATURES_PROVIDED += cortexm_fpu
|
|
endif
|
|
|
|
# Set CPU_ARCH depending on the CPU_CORE
|
|
#
|
|
# RUST_TARGET is only used when building Rust code; any users need to require
|
|
# the `rust_target` feature to esnure things are checked properly.
|
|
ifeq ($(CPU_CORE),cortex-m0)
|
|
CPU_ARCH := armv6m
|
|
#RUST_TARGET = thumbv6m-none-eabi
|
|
else ifeq ($(CPU_CORE),cortex-m0plus)
|
|
CPU_ARCH := armv6m
|
|
#RUST_TARGET = thumbv6m-none-eabi
|
|
else ifeq ($(CPU_CORE),cortex-m23)
|
|
CPU_ARCH := armv8m
|
|
else ifeq ($(CPU_CORE),cortex-m3)
|
|
CPU_ARCH := armv7m
|
|
RUST_TARGET = thumbv7m-none-eabi
|
|
else ifeq ($(CPU_CORE),cortex-m33)
|
|
CPU_ARCH := armv8m
|
|
else ifeq ($(CPU_CORE),cortex-m4)
|
|
CPU_ARCH := armv7m
|
|
RUST_TARGET = thumbv7em-none-eabi
|
|
else ifeq ($(CPU_CORE),cortex-m4f)
|
|
CPU_ARCH := armv7m
|
|
RUST_TARGET = thumbv7em-none-eabihf
|
|
else ifeq ($(CPU_CORE),cortex-m7)
|
|
CPU_ARCH := armv7m
|
|
else
|
|
$(error Unkwnown cortexm core: $(CPU_CORE))
|
|
endif
|
|
|
|
ifneq (,$(RUST_TARGET))
|
|
FEATURES_PROVIDED += rust_target
|
|
endif
|
|
|
|
FEATURES_PROVIDED += no_idle_thread
|
|
|
|
# This configuration enables modules that are only available when using Kconfig
|
|
# module modelling
|
|
ifeq (1, $(TEST_KCONFIG))
|
|
KCONFIG_CPU_CONFIG += $(RIOTCPU)/cortexm_common/cortexm_common.config
|
|
endif
|