diff --git a/module-os/board/rt1051/port.c b/module-os/board/rt1051/port.c index 5147bb0bc..8e21f7d3e 100644 --- a/module-os/board/rt1051/port.c +++ b/module-os/board/rt1051/port.c @@ -346,7 +346,7 @@ void vPortEndScheduler( void ) { /* Not implemented in ports where there is nothing to return to. Artificially force an assert. */ - configASSERT( uxCriticalNesting == 1000UL ); + //configASSERT( uxCriticalNesting == 1000UL ); } /*-----------------------------------------------------------*/ diff --git a/module-sys/SystemManager/PowerManager.cpp b/module-sys/SystemManager/PowerManager.cpp index ff96ed80f..ca5b060d9 100644 --- a/module-sys/SystemManager/PowerManager.cpp +++ b/module-sys/SystemManager/PowerManager.cpp @@ -42,4 +42,8 @@ namespace sys{ return ret; } + int32_t PowerManager::PowerOff() { + return lowPowerControl->PowerOff(); + } + } \ No newline at end of file diff --git a/module-sys/SystemManager/PowerManager.hpp b/module-sys/SystemManager/PowerManager.hpp index 46c1385c5..2bfb801b6 100644 --- a/module-sys/SystemManager/PowerManager.hpp +++ b/module-sys/SystemManager/PowerManager.hpp @@ -35,6 +35,7 @@ namespace sys { ~PowerManager(); int32_t Switch(const Mode mode); + int32_t PowerOff(); Mode GetCurrentMode(){return currentPowerMode;} diff --git a/module-sys/SystemManager/SystemManager.cpp b/module-sys/SystemManager/SystemManager.cpp index 1a75ae89a..3681be165 100644 --- a/module-sys/SystemManager/SystemManager.cpp +++ b/module-sys/SystemManager/SystemManager.cpp @@ -50,6 +50,8 @@ namespace sys { } Bus::Remove(shared_from_this()); EndScheduler(); + // Power off system + powerManager.PowerOff(); } void SystemManager::StartSystem(std::function init) {