mirror of
https://github.com/sipeed/MaixCDK.git
synced 2026-09-19 14:30:55 -05:00
* fix system reboot after poweroff
This commit is contained in:
@@ -17,6 +17,15 @@ namespace maix::sys
|
||||
}
|
||||
}
|
||||
|
||||
void poweroff()
|
||||
{
|
||||
int ret = system("poweroff");
|
||||
if (ret != 0)
|
||||
{
|
||||
throw err::Exception(err::Err::ERR_RUNTIME, "power off failed");
|
||||
}
|
||||
}
|
||||
|
||||
void register_default_signal_handle() {
|
||||
signal(SIGINT, signal_handle);
|
||||
}
|
||||
|
||||
@@ -12,7 +12,6 @@ namespace maix::sys
|
||||
raise(SIGINT);
|
||||
#endif
|
||||
util::do_exit_function();
|
||||
|
||||
signal(SIGINT, nullptr);
|
||||
signal(SIGILL, nullptr);
|
||||
signal(SIGTRAP, nullptr);
|
||||
@@ -23,6 +22,19 @@ namespace maix::sys
|
||||
signal(SIGSEGV, nullptr);
|
||||
}
|
||||
|
||||
void poweroff()
|
||||
{
|
||||
util::do_exit_function();
|
||||
system("devmem 0x4840000 32 0x0"); // disable wdt0
|
||||
// system("devmem 0x2230000 32 0x0"); // disable wdt1
|
||||
system("devmem 0x6040000 32 0x0"); // disable wdt2
|
||||
int ret = system("poweroff");
|
||||
if (ret != 0)
|
||||
{
|
||||
throw err::Exception(err::Err::ERR_RUNTIME, "power off failed");
|
||||
}
|
||||
}
|
||||
|
||||
void register_default_signal_handle() {
|
||||
signal(SIGILL, signal_handle);
|
||||
signal(SIGTRAP, signal_handle);
|
||||
|
||||
@@ -985,15 +985,6 @@ namespace maix::sys
|
||||
return partitions;
|
||||
}
|
||||
|
||||
void poweroff()
|
||||
{
|
||||
int ret = system("poweroff");
|
||||
if (ret != 0)
|
||||
{
|
||||
log::error("power off failed, ret: %d", ret);
|
||||
throw err::Exception(err::Err::ERR_RUNTIME, "power off failed");
|
||||
}
|
||||
}
|
||||
|
||||
void reboot()
|
||||
{
|
||||
|
||||
@@ -43,6 +43,7 @@ namespace maix::display
|
||||
static int __g_ch[2];
|
||||
static maixcam2::SYS *__g_sys[2];
|
||||
static maixcam2::VO * __g_vo[2];
|
||||
static pwm::PWM * __g_pwm[2];
|
||||
|
||||
static void __release_layer(int layer) {
|
||||
auto &mod_param = maixcam2::AxModuleParam::getInstance();
|
||||
@@ -58,6 +59,10 @@ namespace maix::display
|
||||
delete __g_sys[layer];
|
||||
__g_sys[layer] = nullptr;
|
||||
}
|
||||
|
||||
if (__g_pwm[layer]) {
|
||||
__g_pwm[layer]->duty(0);
|
||||
}
|
||||
__g_mutex.unlock();
|
||||
}
|
||||
|
||||
@@ -475,6 +480,7 @@ namespace maix::display
|
||||
__g_mutex.lock();
|
||||
__g_vo[this->_layer] = __vo;
|
||||
__g_sys[this->_layer] = __sys;
|
||||
__g_pwm[this->_layer] = _bl_pwm;
|
||||
__g_ch[this->_layer] = 0;
|
||||
__g_mutex.unlock();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user