2018-05-04 15:44:29 +02:00
|
|
|
FEATURES_PROVIDED += arch_32bit
|
|
|
|
FEATURES_PROVIDED += arch_arm
|
2020-04-06 21:03:31 +02:00
|
|
|
FEATURES_PROVIDED += cortexm_svc
|
2017-10-28 17:46:57 +02:00
|
|
|
FEATURES_PROVIDED += cpp
|
2018-10-11 17:10:03 +02:00
|
|
|
FEATURES_PROVIDED += cpu_check_address
|
2020-07-12 22:53:30 +02:00
|
|
|
FEATURES_PROVIDED += cpu_core_cortexm
|
2020-09-15 14:44:51 +02:00
|
|
|
FEATURES_PROVIDED += dbgpin
|
2020-07-12 22:53:30 +02:00
|
|
|
FEATURES_PROVIDED += libstdcpp
|
2021-01-26 14:55:40 +01:00
|
|
|
FEATURES_PROVIDED += newlib
|
2023-04-24 14:19:37 +02:00
|
|
|
FEATURES_PROVIDED += periph_flashpage_aux
|
2020-07-12 22:53:30 +02:00
|
|
|
FEATURES_PROVIDED += periph_pm
|
2020-09-03 18:56:21 +02:00
|
|
|
FEATURES_PROVIDED += puf_sram
|
2020-09-11 14:23:25 +02:00
|
|
|
FEATURES_PROVIDED += picolibc
|
2020-01-22 15:26:19 +01:00
|
|
|
FEATURES_PROVIDED += ssp
|
2020-03-27 13:17:52 +01:00
|
|
|
|
2022-05-05 21:14:53 +02:00
|
|
|
# cortex-m33, cortex-m4f and cortex-m7 provide FPU support
|
|
|
|
ifneq (,$(filter $(CPU_CORE),cortex-m33 cortex-m4f cortex-m7))
|
2020-03-27 13:17:52 +01:00
|
|
|
FEATURES_PROVIDED += cortexm_fpu
|
|
|
|
endif
|
2020-06-10 13:11:32 +02:00
|
|
|
|
|
|
|
# Set CPU_ARCH depending on the CPU_CORE
|
2021-04-02 18:42:34 +02:00
|
|
|
#
|
|
|
|
# RUST_TARGET is only used when building Rust code; any users need to require
|
|
|
|
# the `rust_target` feature to esnure things are checked properly.
|
2020-06-10 13:11:32 +02:00
|
|
|
ifeq ($(CPU_CORE),cortex-m0)
|
|
|
|
CPU_ARCH := armv6m
|
2021-11-18 15:03:14 +01:00
|
|
|
RUST_TARGET = thumbv6m-none-eabi
|
2020-06-10 13:11:32 +02:00
|
|
|
else ifeq ($(CPU_CORE),cortex-m0plus)
|
|
|
|
CPU_ARCH := armv6m
|
2021-11-18 15:03:14 +01:00
|
|
|
RUST_TARGET = thumbv6m-none-eabi
|
2020-06-22 00:23:21 +02:00
|
|
|
else ifeq ($(CPU_CORE),cortex-m23)
|
|
|
|
CPU_ARCH := armv8m
|
2021-11-24 09:16:07 +01:00
|
|
|
#RUST_TARGET = thumbv8m.base-none-eabi
|
2020-06-10 13:11:32 +02:00
|
|
|
else ifeq ($(CPU_CORE),cortex-m3)
|
|
|
|
CPU_ARCH := armv7m
|
2021-04-02 18:42:34 +02:00
|
|
|
RUST_TARGET = thumbv7m-none-eabi
|
2020-06-22 00:23:21 +02:00
|
|
|
else ifeq ($(CPU_CORE),cortex-m33)
|
|
|
|
CPU_ARCH := armv8m
|
2024-04-27 18:55:06 +02:00
|
|
|
FEATURES_PROVIDED += cortexm_stack_limit
|
2021-11-24 09:16:07 +01:00
|
|
|
#RUST_TARGET = thumbv8m.main-none-eabi
|
2020-06-10 13:11:32 +02:00
|
|
|
else ifeq ($(CPU_CORE),cortex-m4)
|
|
|
|
CPU_ARCH := armv7m
|
2021-04-02 18:42:34 +02:00
|
|
|
RUST_TARGET = thumbv7em-none-eabi
|
2020-06-10 13:11:32 +02:00
|
|
|
else ifeq ($(CPU_CORE),cortex-m4f)
|
|
|
|
CPU_ARCH := armv7m
|
2021-04-02 18:42:34 +02:00
|
|
|
RUST_TARGET = thumbv7em-none-eabihf
|
2020-06-10 13:11:32 +02:00
|
|
|
else ifeq ($(CPU_CORE),cortex-m7)
|
|
|
|
CPU_ARCH := armv7m
|
|
|
|
else
|
2024-10-16 16:04:10 +02:00
|
|
|
$(error Unknown cortexm core: $(CPU_CORE))
|
2020-06-10 13:11:32 +02:00
|
|
|
endif
|
2020-06-08 12:36:01 +02:00
|
|
|
|
2021-04-02 18:42:34 +02:00
|
|
|
ifneq (,$(RUST_TARGET))
|
|
|
|
FEATURES_PROVIDED += rust_target
|
|
|
|
endif
|
|
|
|
|
2020-07-20 11:07:25 +02:00
|
|
|
FEATURES_PROVIDED += no_idle_thread
|