void sleep_manager_sleep_auto(void) { #ifdef MBED_SLEEP_TRACING_ENABLED sleep_tracker_print_stats(); #endif core_util_critical_section_enter(); us_timestamp_t start = read_us(); bool deep = false; // debug profile should keep debuggers attached, no deep sleep allowed #ifdef MBED_DEBUG hal_sleep(); #else if (sleep_manager_can_deep_sleep()) { deep = true; hal_deepsleep(); } else { hal_sleep(); } #endif us_timestamp_t end = read_us(); if (true == deep) { deep_sleep_time += end - start; } else { sleep_time += end - start; } core_util_critical_section_exit(); }
void sleep_manager_sleep_auto(void) { #ifdef MBED_SLEEP_TRACING_ENABLED sleep_tracker_print_stats(); #endif core_util_critical_section_enter(); // debug profile should keep debuggers attached, no deep sleep allowed #ifdef MBED_DEBUG hal_sleep(); #else if (sleep_manager_can_deep_sleep()) { hal_deepsleep(); } else { hal_sleep(); } #endif core_util_critical_section_exit(); }