From 5d20374bc38551fb4b9c0a3e866d895c1640fc58 Mon Sep 17 00:00:00 2001 From: Jaeden Amero Date: Fri, 23 Apr 2021 14:59:47 +0100 Subject: [PATCH] Add v8.1-M architecture awareness Add v8.1-M architecture awareness to Mbed CRC, HAL, and Mbed Atomic. Fixes #14433 --- drivers/include/drivers/MbedCRC.h | 1 + hal/source/mpu/mbed_mpu_v8m.c | 2 +- hal/tests/TESTS/mbed_hal/mpu/main.cpp | 5 ++++- platform/include/platform/mbed_atomic.h | 3 ++- 4 files changed, 8 insertions(+), 3 deletions(-) diff --git a/drivers/include/drivers/MbedCRC.h b/drivers/include/drivers/MbedCRC.h index 80d1742f4b..d601fe0aa2 100644 --- a/drivers/include/drivers/MbedCRC.h +++ b/drivers/include/drivers/MbedCRC.h @@ -649,6 +649,7 @@ private: #if (__ARM_ARCH_7M__ == 1U) || \ (__ARM_ARCH_7EM__ == 1U) || \ (__ARM_ARCH_8M_MAIN__ == 1U) || \ + (__ARM_ARCH_8_1M_MAIN__ == 1U) || \ (__ARM_ARCH_7A__ == 1U) /* ARM that has Thumb-2 - same unified assembly is good for either ARM or Thumb state (LSRS; IT CS; EORCS reg/imm) */ #define MBED_CRC_ARM_THUMB2 1 diff --git a/hal/source/mpu/mbed_mpu_v8m.c b/hal/source/mpu/mbed_mpu_v8m.c index 4a1aafd551..79646b7d3a 100644 --- a/hal/source/mpu/mbed_mpu_v8m.c +++ b/hal/source/mpu/mbed_mpu_v8m.c @@ -18,7 +18,7 @@ #include "platform/mbed_assert.h" #include "cmsis.h" -#if ((__ARM_ARCH_8M_BASE__ == 1U) || (__ARM_ARCH_8M_MAIN__ == 1U)) && \ +#if ((__ARM_ARCH_8M_BASE__ == 1U) || (__ARM_ARCH_8M_MAIN__ == 1U) || (__ARM_ARCH_8_1M_MAIN__ == 1U)) && \ defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U) && \ !defined(MBED_MPU_CUSTOM) diff --git a/hal/tests/TESTS/mbed_hal/mpu/main.cpp b/hal/tests/TESTS/mbed_hal/mpu/main.cpp index fe79ccbaea..948a007080 100644 --- a/hal/tests/TESTS/mbed_hal/mpu/main.cpp +++ b/hal/tests/TESTS/mbed_hal/mpu/main.cpp @@ -177,7 +177,10 @@ utest::v1::status_t fault_override_teardown(const Case *const source, const size Case cases[] = { Case("MPU - init", fault_override_setup, mpu_init_test, fault_override_teardown), Case("MPU - free", fault_override_setup, mpu_free_test, fault_override_teardown), -#if !((__ARM_ARCH_8M_BASE__ == 1U) || (__ARM_ARCH_8M_MAIN__ == 1U)) +#if !((__ARM_ARCH_8M_BASE__ == 1U) || \ + (__ARM_ARCH_8M_MAIN__ == 1U) || \ + (__ARM_ARCH_8_1M_MAIN__ == 1U) \ + ) // Skip fault tests for ARMv8-M until a fault handler hook is provided Case("MPU - data fault", fault_override_setup, mpu_fault_test_data, fault_override_teardown), Case("MPU - bss fault", fault_override_setup, mpu_fault_test_bss, fault_override_teardown), diff --git a/platform/include/platform/mbed_atomic.h b/platform/include/platform/mbed_atomic.h index 94fa5aac3f..b0268a2628 100644 --- a/platform/include/platform/mbed_atomic.h +++ b/platform/include/platform/mbed_atomic.h @@ -69,7 +69,8 @@ typedef enum mbed_memory_order { #if ((__ARM_ARCH_7M__ == 1U) || \ (__ARM_ARCH_7EM__ == 1U) || \ (__ARM_ARCH_8M_BASE__ == 1U) || \ - (__ARM_ARCH_8M_MAIN__ == 1U)) || \ + (__ARM_ARCH_8M_MAIN__ == 1U) || \ + (__ARM_ARCH_8_1M_MAIN__ == 1U)) || \ (__ARM_ARCH_7A__ == 1U) #define MBED_EXCLUSIVE_ACCESS 1U #define MBED_EXCLUSIVE_ACCESS_THUMB1 (__ARM_ARCH_8M_BASE__ == 1U)