forked from espressif/esp-idf
Merge branch 'feature/support_abort_on_lp_core' into 'master'
lp-core: Added support for abort() function on the LP core See merge request espressif/esp-idf!24204
This commit is contained in:
@@ -11,6 +11,7 @@ extern "C" {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -53,6 +54,11 @@ void ulp_lp_core_delay_cycles(uint32_t cycles);
|
|||||||
*/
|
*/
|
||||||
__attribute__((__noreturn__)) void ulp_lp_core_halt(void);
|
__attribute__((__noreturn__)) void ulp_lp_core_halt(void);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief The LP core puts itself to sleep and disables all wakeup sources.
|
||||||
|
*/
|
||||||
|
__attribute__((__noreturn__)) void ulp_lp_core_stop_lp_core(void);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@@ -63,3 +63,18 @@ void ulp_lp_core_halt(void)
|
|||||||
|
|
||||||
while(1);
|
while(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ulp_lp_core_stop_lp_core(void)
|
||||||
|
{
|
||||||
|
/* Disable wake-up source and put lp core to sleep */
|
||||||
|
REG_SET_FIELD(PMU_LP_CPU_PWR1_REG, PMU_LP_CPU_WAKEUP_EN, 0);
|
||||||
|
REG_SET_FIELD(PMU_LP_CPU_PWR1_REG, PMU_LP_CPU_SLEEP_REQ, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
void __attribute__((noreturn)) abort(void)
|
||||||
|
{
|
||||||
|
/* Stop the LP Core */
|
||||||
|
ulp_lp_core_stop_lp_core();
|
||||||
|
|
||||||
|
while (1);
|
||||||
|
}
|
||||||
|
Reference in New Issue
Block a user