
3 changed files with 94 additions and 0 deletions
@ -0,0 +1,58 @@
|
||||
/*
|
||||
* Copyright (C) 2016 Kaspar Schleiser <kaspar@schleiser.de> |
||||
* |
||||
* This file is subject to the terms and conditions of the GNU Lesser |
||||
* General Public License v2.1. See the file LICENSE in the top level |
||||
* directory for more details. |
||||
*/ |
||||
|
||||
/**
|
||||
* @defgroup drivers_periph_pm Power Management |
||||
* @ingroup drivers_periph |
||||
* @brief The kernels power management interface |
||||
* @{ |
||||
* |
||||
* The following functions *must* be available for every platform: |
||||
* |
||||
* pm_reboot() |
||||
* pm_off() |
||||
* |
||||
* @file |
||||
* @brief Power management interface |
||||
* |
||||
* @author Kaspar Schleiser <kaspar@schleiser.de> |
||||
*/ |
||||
|
||||
#ifndef PM_H_ |
||||
#define PM_H_ |
||||
|
||||
#include "assert.h" |
||||
#include "periph_cpu.h" |
||||
|
||||
#ifdef __cplusplus |
||||
extern "C" { |
||||
#endif |
||||
|
||||
/**
|
||||
* @brief Reboot MCU |
||||
*/ |
||||
void pm_reboot(void); |
||||
|
||||
/**
|
||||
* @brief Turn off MCU completely |
||||
*/ |
||||
void pm_off(void); |
||||
|
||||
/**
|
||||
* @brief Switches the MCU to the lowest possible power mode |
||||
* |
||||
* This function will be called by the idle thread. |
||||
*/ |
||||
void pm_set_lowest(void); |
||||
|
||||
#ifdef __cplusplus |
||||
} |
||||
#endif |
||||
|
||||
#endif /* __PM_H_ */ |
||||
/** @} */ |
@ -0,0 +1,33 @@
|
||||
/*
|
||||
* Copyright (C) 2016 Kaspar Schleiser <kaspar@schleiser.de> |
||||
* |
||||
* This file is subject to the terms and conditions of the GNU Lesser |
||||
* General Public License v2.1. See the file LICENSE in the top level |
||||
* directory for more details. |
||||
*/ |
||||
|
||||
/**
|
||||
* @ingroup drivers_periph_pm |
||||
* @{ |
||||
* |
||||
* @file |
||||
* @brief Platform-independent power management fallback code |
||||
* |
||||
* @author Kaspar Schleiser <kaspar@schleiser.de> |
||||
* |
||||
* @} |
||||
*/ |
||||
|
||||
#include "irq.h" |
||||
#include "periph/pm.h" |
||||
|
||||
#define ENABLE_DEBUG (0) |
||||
#include "debug.h" |
||||
|
||||
void __attribute__((weak)) pm_set_lowest(void) {} |
||||
|
||||
void __attribute__((weak)) pm_off(void) |
||||
{ |
||||
irq_disable(); |
||||
while(1) {}; |
||||
} |
Loading…
Reference in new issue