各位大侠,我想让系统在每天的某个时间重启,环境是wince。不知道如何实现??
------解决方案--------------------
定时器——》控制一个GPIO——》控制 处理器的硬件复位开关通断===success
------解决方案--------------------
方法有很多种:
1.楼上所说的通过IO口复位,
2.软件复位,
3.通过别的控制器,例如外加一个单片机,通过发送一条命令让单片机给wince处理器复位,我们很多地方都是这么做的。
------解决方案--------------------
------解决方案--------------------
#ifndef POWER_STATE_RESET
#define POWER_STATE_RESET DWORD(0x00800000)
#endif
BOOL WINAPI RebootSystem()
{
//return KernelIoControl(IOCTL_HAL_REBOOT,NULL, 0, NULL, 0, NULL);
HINSTANCE hModule = LoadLibrary(TEXT("Coredll.dll"));
SetSystemPowerStateFunction f = (SetSystemPowerStateFunction)::GetProcAddress(hModule, TEXT("SetSystemPowerState"));
f(NULL, POWER_STATE_RESET, 0);
::FreeLibrary(hModule);
return TRUE;
}
------解决方案--------------------
这个问题需要系统的支持,也就是说看你的系统是如何设计的。一般要实现系统关闭之后的记忆功能,往往不单纯是使用ARM系统,它外部还用MCU系统。MCU系统负责历史记忆和定时,并且负责与外围的通信。现在的产品一般都会有一个MCU外围。如果没有MCU外围,是很难实现让系统在每天的某一个时间启动的。