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() {
|
void register_default_signal_handle() {
|
||||||
signal(SIGINT, signal_handle);
|
signal(SIGINT, signal_handle);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,7 +12,6 @@ namespace maix::sys
|
|||||||
raise(SIGINT);
|
raise(SIGINT);
|
||||||
#endif
|
#endif
|
||||||
util::do_exit_function();
|
util::do_exit_function();
|
||||||
|
|
||||||
signal(SIGINT, nullptr);
|
signal(SIGINT, nullptr);
|
||||||
signal(SIGILL, nullptr);
|
signal(SIGILL, nullptr);
|
||||||
signal(SIGTRAP, nullptr);
|
signal(SIGTRAP, nullptr);
|
||||||
@@ -23,6 +22,19 @@ namespace maix::sys
|
|||||||
signal(SIGSEGV, nullptr);
|
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() {
|
void register_default_signal_handle() {
|
||||||
signal(SIGILL, signal_handle);
|
signal(SIGILL, signal_handle);
|
||||||
signal(SIGTRAP, signal_handle);
|
signal(SIGTRAP, signal_handle);
|
||||||
|
|||||||
@@ -985,15 +985,6 @@ namespace maix::sys
|
|||||||
return partitions;
|
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()
|
void reboot()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -43,6 +43,7 @@ namespace maix::display
|
|||||||
static int __g_ch[2];
|
static int __g_ch[2];
|
||||||
static maixcam2::SYS *__g_sys[2];
|
static maixcam2::SYS *__g_sys[2];
|
||||||
static maixcam2::VO * __g_vo[2];
|
static maixcam2::VO * __g_vo[2];
|
||||||
|
static pwm::PWM * __g_pwm[2];
|
||||||
|
|
||||||
static void __release_layer(int layer) {
|
static void __release_layer(int layer) {
|
||||||
auto &mod_param = maixcam2::AxModuleParam::getInstance();
|
auto &mod_param = maixcam2::AxModuleParam::getInstance();
|
||||||
@@ -58,6 +59,10 @@ namespace maix::display
|
|||||||
delete __g_sys[layer];
|
delete __g_sys[layer];
|
||||||
__g_sys[layer] = nullptr;
|
__g_sys[layer] = nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (__g_pwm[layer]) {
|
||||||
|
__g_pwm[layer]->duty(0);
|
||||||
|
}
|
||||||
__g_mutex.unlock();
|
__g_mutex.unlock();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -475,6 +480,7 @@ namespace maix::display
|
|||||||
__g_mutex.lock();
|
__g_mutex.lock();
|
||||||
__g_vo[this->_layer] = __vo;
|
__g_vo[this->_layer] = __vo;
|
||||||
__g_sys[this->_layer] = __sys;
|
__g_sys[this->_layer] = __sys;
|
||||||
|
__g_pwm[this->_layer] = _bl_pwm;
|
||||||
__g_ch[this->_layer] = 0;
|
__g_ch[this->_layer] = 0;
|
||||||
__g_mutex.unlock();
|
__g_mutex.unlock();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user