From 6c7c622d42d665af66a7343eadaba8b142c384bd Mon Sep 17 00:00:00 2001 From: Mateusz Date: Thu, 3 Oct 2019 12:26:00 +0200 Subject: [PATCH] WiP: Added actual poweroff procedure into system manager --- module-os/board/rt1051/port.c | 2 +- module-sys/SystemManager/PowerManager.cpp | 4 ++++ module-sys/SystemManager/PowerManager.hpp | 1 + module-sys/SystemManager/SystemManager.cpp | 2 ++ 4 files changed, 8 insertions(+), 1 deletion(-) 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) {