mirror of https://github.com/ARMmbed/mbed-os.git
mbed-ce@master + fixes + gcc 11 support (#135)
* Fix rtos::Mutex stub, add trylock() method * LowPowerTicker - Add ::attach(...) method + call callback * mbed_power_management - rename sleep --> mbed_sleep to avoid conflicts Fixes conflicts w/ unistd.h and boost::ut * GCC 11/C++ 20 - Remove deprecated type_traits * GCC 11/C++ 20 - Remove redundant templating of methods * Warning - pragma ignore invalid-noreturn for unit tests * Fix astyle errors * Fix missing mbed_sleep() callspull/15437/head
parent
eda766ec8f
commit
3176fc7ca5
|
@ -148,7 +148,7 @@ extern "C" {
|
|||
// critical section to complete sleep with locked deepsleep
|
||||
core_util_critical_section_enter();
|
||||
sleep_manager_lock_deep_sleep();
|
||||
sleep();
|
||||
mbed_sleep();
|
||||
sleep_manager_unlock_deep_sleep();
|
||||
core_util_critical_section_exit();
|
||||
}
|
||||
|
|
|
@ -1915,7 +1915,7 @@ public:
|
|||
* attribute value that equals sizeof(T). For a variable length alternative,
|
||||
* use GattCharacteristic directly.
|
||||
*/
|
||||
ReadOnlyGattCharacteristic<T>(
|
||||
ReadOnlyGattCharacteristic(
|
||||
const UUID &uuid,
|
||||
T *valuePtr,
|
||||
uint8_t additionalProperties = BLE_GATT_CHAR_PROPERTIES_NONE,
|
||||
|
@ -1958,7 +1958,7 @@ public:
|
|||
* attribute value with maximum size equal to sizeof(T). For a fixed length
|
||||
* alternative, use GattCharacteristic directly.
|
||||
*/
|
||||
WriteOnlyGattCharacteristic<T>(
|
||||
WriteOnlyGattCharacteristic(
|
||||
const UUID &uuid,
|
||||
T *valuePtr,
|
||||
uint8_t additionalProperties = BLE_GATT_CHAR_PROPERTIES_NONE,
|
||||
|
@ -2000,7 +2000,7 @@ public:
|
|||
* attribute value with maximum size equal to sizeof(T). For a fixed length
|
||||
* alternative, use GattCharacteristic directly.
|
||||
*/
|
||||
ReadWriteGattCharacteristic<T>(
|
||||
ReadWriteGattCharacteristic(
|
||||
const UUID &uuid,
|
||||
T *valuePtr,
|
||||
uint8_t additionalProperties = BLE_GATT_CHAR_PROPERTIES_NONE,
|
||||
|
@ -2043,7 +2043,7 @@ public:
|
|||
* attribute value with maximum size equal to sizeof(T) * NUM_ELEMENTS.
|
||||
* For a fixed length alternative, use GattCharacteristic directly.
|
||||
*/
|
||||
WriteOnlyArrayGattCharacteristic<T, NUM_ELEMENTS>(
|
||||
WriteOnlyArrayGattCharacteristic(
|
||||
const UUID &uuid,
|
||||
T valuePtr[NUM_ELEMENTS],
|
||||
uint8_t additionalProperties = BLE_GATT_CHAR_PROPERTIES_NONE,
|
||||
|
@ -2087,7 +2087,7 @@ public:
|
|||
* attribute value that equals sizeof(T) * NUM_ELEMENTS. For a variable
|
||||
* length alternative, use GattCharacteristic directly.
|
||||
*/
|
||||
ReadOnlyArrayGattCharacteristic<T, NUM_ELEMENTS>(
|
||||
ReadOnlyArrayGattCharacteristic(
|
||||
const UUID &uuid,
|
||||
T valuePtr[NUM_ELEMENTS],
|
||||
uint8_t additionalProperties = BLE_GATT_CHAR_PROPERTIES_NONE,
|
||||
|
@ -2132,7 +2132,7 @@ public:
|
|||
* attribute value with maximum size equal to sizeof(T) * NUM_ELEMENTS.
|
||||
* For a fixed length alternative, use GattCharacteristic directly.
|
||||
*/
|
||||
ReadWriteArrayGattCharacteristic<T, NUM_ELEMENTS>(
|
||||
ReadWriteArrayGattCharacteristic(
|
||||
const UUID &uuid,
|
||||
T valuePtr[NUM_ELEMENTS],
|
||||
uint8_t additionalProperties = BLE_GATT_CHAR_PROPERTIES_NONE,
|
||||
|
|
|
@ -17,6 +17,8 @@
|
|||
#ifndef MBED_LOWPOWERTICKER_H
|
||||
#define MBED_LOWPOWERTICKER_H
|
||||
|
||||
#include <chrono>
|
||||
|
||||
#include "hal/ticker_api.h"
|
||||
#include "Callback.h"
|
||||
|
||||
|
@ -28,21 +30,23 @@ namespace mbed {
|
|||
class LowPowerTicker {
|
||||
|
||||
public:
|
||||
LowPowerTicker()
|
||||
{
|
||||
}
|
||||
LowPowerTicker() = default;
|
||||
|
||||
virtual ~LowPowerTicker()
|
||||
virtual ~LowPowerTicker() = default;
|
||||
|
||||
void attach(Callback<void()> func, std::chrono::microseconds t)
|
||||
{
|
||||
func();
|
||||
}
|
||||
|
||||
void attach_us(Callback<void()> func, us_timestamp_t t)
|
||||
{
|
||||
|
||||
func();
|
||||
}
|
||||
|
||||
void detach()
|
||||
{
|
||||
|
||||
// nothing to do
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
@ -218,7 +218,7 @@ bool equeue_sema_wait(equeue_sema_t *s, int ms)
|
|||
|
||||
core_util_critical_section_enter();
|
||||
while (!*s && ms != 0) {
|
||||
sleep();
|
||||
mbed_sleep();
|
||||
core_util_critical_section_exit();
|
||||
__ISB();
|
||||
core_util_critical_section_enter();
|
||||
|
|
|
@ -142,7 +142,7 @@ void lp_ticker_deepsleep_test()
|
|||
TEST_ASSERT_TRUE(sleep_manager_can_deep_sleep_test_check());
|
||||
|
||||
while (!intFlag) {
|
||||
sleep();
|
||||
mbed_sleep();
|
||||
}
|
||||
|
||||
TEST_ASSERT_EQUAL(1, intFlag);
|
||||
|
|
|
@ -80,7 +80,7 @@ void rtc_sleep_test_support(bool deepsleep_mode)
|
|||
TEST_ASSERT(sleep_manager_can_deep_sleep_test_check() == deepsleep_mode);
|
||||
|
||||
while (!expired) {
|
||||
sleep();
|
||||
mbed_sleep();
|
||||
}
|
||||
|
||||
const auto stop = RealTimeClock::now();
|
||||
|
|
|
@ -79,7 +79,7 @@ void sleep_usticker_test()
|
|||
|
||||
us_ticker_set_interrupt(next_match_timestamp);
|
||||
|
||||
sleep();
|
||||
mbed_sleep();
|
||||
|
||||
const unsigned int wakeup_timestamp = us_ticker_read();
|
||||
|
||||
|
@ -130,7 +130,7 @@ void deepsleep_lpticker_test()
|
|||
Since this interrupt wakes-up the board from the sleep we need to go to sleep after CMPOK is handled. */
|
||||
TEST_ASSERT_TRUE(sleep_manager_can_deep_sleep_test_check());
|
||||
|
||||
sleep();
|
||||
mbed_sleep();
|
||||
|
||||
/* On some targets like STM family boards with LPTIM enabled an interrupt is triggered on counter rollover.
|
||||
We need special handling for cases when next_match_timestamp < start_timestamp (interrupt is to be fired after rollover).
|
||||
|
@ -140,7 +140,7 @@ void deepsleep_lpticker_test()
|
|||
if ((next_match_timestamp < start_timestamp) && lp_ticker_read() < next_match_timestamp) {
|
||||
lp_ticker_set_interrupt(next_match_timestamp);
|
||||
wait_ns(200000);
|
||||
sleep();
|
||||
mbed_sleep();
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@ -182,7 +182,7 @@ void deepsleep_high_speed_clocks_turned_off_test()
|
|||
|
||||
const unsigned int us_ticks_before_sleep = us_ticker_read();
|
||||
|
||||
sleep();
|
||||
mbed_sleep();
|
||||
|
||||
const unsigned int us_ticks_after_sleep = us_ticker_read();
|
||||
const unsigned int lp_ticks_after_sleep = lp_ticker_read();
|
||||
|
|
|
@ -210,7 +210,6 @@ using std::is_trivial;
|
|||
using std::is_trivially_copyable;
|
||||
using std::is_standard_layout;
|
||||
using std::is_pod;
|
||||
using std::is_literal_type;
|
||||
using std::is_empty;
|
||||
using std::is_polymorphic;
|
||||
using std::is_abstract;
|
||||
|
@ -274,8 +273,6 @@ using std::decay;
|
|||
using std::decay_t;
|
||||
using std::common_type;
|
||||
using std::common_type_t;
|
||||
using std::result_of;
|
||||
using std::result_of_t;
|
||||
|
||||
/* C++20 remove_cvref */
|
||||
template <typename T>
|
||||
|
|
|
@ -192,7 +192,7 @@ void sleep_manager_sleep_auto(void);
|
|||
* Flash re-programming and the USB serial port will remain active, but the mbed program will no longer be
|
||||
* able to access the LocalFileSystem
|
||||
*/
|
||||
static inline void sleep(void)
|
||||
static inline void mbed_sleep(void)
|
||||
{
|
||||
#if DEVICE_SLEEP
|
||||
#if (MBED_CONF_RTOS_PRESENT == 0) || (DEVICE_SYSTICK_CLK_OFF_DURING_SLEEP == 0) || defined(MBED_TICKLESS)
|
||||
|
|
|
@ -170,7 +170,7 @@ void do_sleep_operation(OpT &op)
|
|||
// we go round to set the timer again.
|
||||
if (op.sleep_prepared()) {
|
||||
// Enter HAL sleep (normal or deep)
|
||||
sleep();
|
||||
mbed_sleep();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -20,6 +20,8 @@
|
|||
#include <stdio.h>
|
||||
#include <stdbool.h>
|
||||
|
||||
#pragma GCC diagnostic ignored "-Winvalid-noreturn"
|
||||
|
||||
bool mbed_assert_throw_errors = false;
|
||||
|
||||
extern "C" void mbed_assert_internal(const char *expr, const char *file, int line)
|
||||
|
|
|
@ -36,3 +36,8 @@ osStatus rtos::Mutex::unlock()
|
|||
{
|
||||
return osOK;
|
||||
}
|
||||
|
||||
bool rtos::Mutex::trylock()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue