mirror of https://github.com/ARMmbed/mbed-os.git
Rename SLEEP_PROFILING_ENABLED to MBED_SLEEP_STATS_ENABLED
parent
0f6b73ae0f
commit
74bdf1c3a3
|
@ -27,7 +27,7 @@
|
|||
// deep sleep locking counter. A target is allowed to deep sleep if counter == 0
|
||||
static uint16_t deep_sleep_lock = 0U;
|
||||
|
||||
#ifdef SLEEP_PROFILING_ENABLED
|
||||
#ifdef MBED_SLEEP_STATS_ENABLED
|
||||
|
||||
// Length of the identifier extracted from the driver name to store for logging.
|
||||
#define IDENTIFIER_WIDTH 7
|
||||
|
@ -128,7 +128,7 @@ void sleep_tracker_unlock(const char* const filename, int line)
|
|||
printf("\r\n");
|
||||
}
|
||||
|
||||
#endif // SLEEP_PROFILING_ENABLED
|
||||
#endif // MBED_SLEEP_STATS_ENABLED
|
||||
|
||||
void sleep_manager_lock_deep_sleep_internal(void)
|
||||
{
|
||||
|
|
|
@ -14,6 +14,103 @@
|
|||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
#ifndef MBED_SLEEP_H
|
||||
#define MBED_SLEEP_H
|
||||
|
||||
#include "sleep_api.h"
|
||||
#include "mbed_toolchain.h"
|
||||
#include <stdbool.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/** Sleep manager API
|
||||
* The sleep manager provides API to automatically select sleep mode.
|
||||
*
|
||||
* There are two sleep modes:
|
||||
* - sleep
|
||||
* - deepsleep
|
||||
*
|
||||
* Use locking/unlocking deepsleep for drivers that depend on features that
|
||||
* are not allowed (=disabled) during the deepsleep. For instance, high frequency
|
||||
* clocks.
|
||||
*
|
||||
* Example:
|
||||
* @code
|
||||
*
|
||||
* void driver::handler()
|
||||
* {
|
||||
* if (_sensor.get_event()) {
|
||||
* // any event - we are finished, unlock the deepsleep
|
||||
* sleep_manager_unlock_deep_sleep();
|
||||
* _callback();
|
||||
* }
|
||||
* }
|
||||
*
|
||||
* int driver::measure(event_t event, callback_t& callback)
|
||||
* {
|
||||
* _callback = callback;
|
||||
* sleep_manager_lock_deep_sleep();
|
||||
* // start async transaction, we are waiting for an event
|
||||
* return _sensor.start(event, callback);
|
||||
* }
|
||||
* @endcode
|
||||
*/
|
||||
#ifdef MBED_SLEEP_STATS_ENABLED
|
||||
|
||||
#define sleep_manager_lock_deep_sleep() \
|
||||
do \
|
||||
{ \
|
||||
sleep_manager_lock_deep_sleep_internal(); \
|
||||
sleep_tracker_lock(__FILE__, __LINE__); \
|
||||
} while (0);
|
||||
|
||||
#define sleep_manager_unlock_deep_sleep() \
|
||||
do \
|
||||
{ \
|
||||
sleep_manager_unlock_deep_sleep_internal(); \
|
||||
sleep_tracker_unlock(__FILE__, __LINE__); \
|
||||
} while (0);
|
||||
|
||||
void sleep_tracker_lock(const char *const filename, int line);
|
||||
void sleep_tracker_unlock(const char *const filename, int line);
|
||||
|
||||
#else
|
||||
|
||||
#define sleep_manager_lock_deep_sleep() \
|
||||
sleep_manager_lock_deep_sleep_internal()
|
||||
|
||||
#define sleep_manager_unlock_deep_sleep() \
|
||||
sleep_manager_lock_deep_sleep_internal()
|
||||
|
||||
#endif // MBED_SLEEP_STATS_ENABLED
|
||||
|
||||
/** Lock the deep sleep mode
|
||||
*
|
||||
* This locks the automatic deep mode selection.
|
||||
* sleep_manager_sleep_auto() will ignore deepsleep mode if
|
||||
* this function is invoked at least once (the internal counter is non-zero)
|
||||
*
|
||||
* Use this locking mechanism for interrupt driven API that are
|
||||
* running in the background and deepsleep could affect their functionality
|
||||
*
|
||||
* The lock is a counter, can be locked up to USHRT_MAX
|
||||
* This function is IRQ and thread safe
|
||||
*/
|
||||
void sleep_manager_lock_deep_sleep_internal(void);
|
||||
|
||||
/** Unlock the deep sleep mode
|
||||
*
|
||||
* Use unlocking in pair with sleep_manager_lock_deep_sleep().
|
||||
*
|
||||
* The lock is a counter, should be equally unlocked as locked
|
||||
* This function is IRQ and thread safe
|
||||
*/
|
||||
void sleep_manager_unlock_deep_sleep_internal(void);
|
||||
>>>>>>> Rename SLEEP_PROFILING_ENABLED to MBED_SLEEP_STATS_ENABLED
|
||||
|
||||
#ifndef MBED_MBED_SLEEP_H
|
||||
#define MBED_MBED_SLEEP_H
|
||||
|
|
Loading…
Reference in New Issue