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 += libstdcpp FEATURES_PROVIDED += periph_pm 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 ifeq ($(CPU_CORE),cortex-m0) CPU_ARCH := armv6m else ifeq ($(CPU_CORE),cortex-m0plus) CPU_ARCH := armv6m else ifeq ($(CPU_CORE),cortex-m3) CPU_ARCH := armv7m else ifeq ($(CPU_CORE),cortex-m4) CPU_ARCH := armv7m else ifeq ($(CPU_CORE),cortex-m4f) CPU_ARCH := armv7m else ifeq ($(CPU_CORE),cortex-m7) CPU_ARCH := armv7m else ifeq ($(CPU_CORE),cortex-m23) CPU_ARCH := armv8m else $(error Unkwnown cortexm core: $(CPU_CORE)) endif # cortex-m3 and higher don't need the idle thread ifneq (,$(filter armv7m armv8m,$(CPU_ARCH))) FEATURES_PROVIDED += no_idle_thread endif KCONFIG_ADD_CONFIG += $(RIOTCPU)/cortexm_common/cortexm_common.config