diff --git a/platform/mbed_critical.c b/platform/mbed_critical.c index 98f1478520..eb1f4c2593 100644 --- a/platform/mbed_critical.c +++ b/platform/mbed_critical.c @@ -119,26 +119,26 @@ void core_util_critical_section_exit(void) bool core_util_atomic_cas_u8(uint8_t *ptr, uint8_t *expectedCurrentValue, uint8_t desiredValue) { do { - uint8_t currentValue = __LDREXB((volatile uint8_t*)ptr); + uint8_t currentValue = __LDREXB(ptr); if (currentValue != *expectedCurrentValue) { *expectedCurrentValue = currentValue; __CLREX(); return false; } - } while (__STREXB(desiredValue, (volatile uint8_t*)ptr)); + } while (__STREXB(desiredValue, ptr)); return true; } bool core_util_atomic_cas_u16(uint16_t *ptr, uint16_t *expectedCurrentValue, uint16_t desiredValue) { do { - uint16_t currentValue = __LDREXH((volatile uint16_t*)ptr); + uint16_t currentValue = __LDREXH(ptr); if (currentValue != *expectedCurrentValue) { *expectedCurrentValue = currentValue; __CLREX(); return false; } - } while (__STREXH(desiredValue, (volatile uint16_t*)ptr)); + } while (__STREXH(desiredValue, ptr)); return true; } @@ -146,13 +146,13 @@ bool core_util_atomic_cas_u16(uint16_t *ptr, uint16_t *expectedCurrentValue, uin bool core_util_atomic_cas_u32(uint32_t *ptr, uint32_t *expectedCurrentValue, uint32_t desiredValue) { do { - uint32_t currentValue = __LDREXW((volatile uint32_t*)ptr); + uint32_t currentValue = __LDREXW(ptr); if (currentValue != *expectedCurrentValue) { *expectedCurrentValue = currentValue; __CLREX(); return false; } - } while (__STREXW(desiredValue, (volatile uint32_t*)ptr)); + } while (__STREXW(desiredValue, ptr)); return true; } @@ -160,8 +160,8 @@ uint8_t core_util_atomic_incr_u8(uint8_t *valuePtr, uint8_t delta) { uint8_t newValue; do { - newValue = __LDREXB((volatile uint8_t*)valuePtr) + delta; - } while (__STREXB(newValue, (volatile uint8_t*)valuePtr)); + newValue = __LDREXB(valuePtr) + delta; + } while (__STREXB(newValue, valuePtr)); return newValue; } @@ -169,8 +169,8 @@ uint16_t core_util_atomic_incr_u16(uint16_t *valuePtr, uint16_t delta) { uint16_t newValue; do { - newValue = __LDREXH((volatile uint16_t*)valuePtr) + delta; - } while (__STREXH(newValue, (volatile uint16_t*)valuePtr)); + newValue = __LDREXH(valuePtr) + delta; + } while (__STREXH(newValue, valuePtr)); return newValue; } @@ -178,8 +178,8 @@ uint32_t core_util_atomic_incr_u32(uint32_t *valuePtr, uint32_t delta) { uint32_t newValue; do { - newValue = __LDREXW((volatile uint32_t*)valuePtr) + delta; - } while (__STREXW(newValue, (volatile uint32_t*)valuePtr)); + newValue = __LDREXW(valuePtr) + delta; + } while (__STREXW(newValue, valuePtr)); return newValue; } @@ -188,8 +188,8 @@ uint8_t core_util_atomic_decr_u8(uint8_t *valuePtr, uint8_t delta) { uint8_t newValue; do { - newValue = __LDREXB((volatile uint8_t*)valuePtr) - delta; - } while (__STREXB(newValue, (volatile uint8_t*)valuePtr)); + newValue = __LDREXB(valuePtr) - delta; + } while (__STREXB(newValue, valuePtr)); return newValue; } @@ -197,8 +197,8 @@ uint16_t core_util_atomic_decr_u16(uint16_t *valuePtr, uint16_t delta) { uint16_t newValue; do { - newValue = __LDREXH((volatile uint16_t*)valuePtr) - delta; - } while (__STREXH(newValue, (volatile uint16_t*)valuePtr)); + newValue = __LDREXH(valuePtr) - delta; + } while (__STREXH(newValue, valuePtr)); return newValue; } @@ -206,8 +206,8 @@ uint32_t core_util_atomic_decr_u32(uint32_t *valuePtr, uint32_t delta) { uint32_t newValue; do { - newValue = __LDREXW((volatile uint32_t*)valuePtr) - delta; - } while (__STREXW(newValue, (volatile uint32_t*)valuePtr)); + newValue = __LDREXW(valuePtr) - delta; + } while (__STREXW(newValue, valuePtr)); return newValue; }