|
1、nuc980的Linux上,通过设置rtc 的alarm时间来唤醒系统。
2、通过echo mem > /sys/power/state 命令来休眠。
3、每次设置完rtc的alarm时间后,调用echo mem > /sys/power/state 命令,进入休眠,等待alarm时间到了之后,唤醒系统。
4、现在遇到的问题运行一段时间后,随机:设置alarm时间会失败
具体如下:
retval = ioctl(fd, RTC_ALM_SET, &rtc_tm);
printf("ioctl=%d\n",retval);
if (retval <0) {
printf("ioctl RTC_ALM_SET faild!!!\n");
close(fd);
exit(0);
}
追踪打印:
ioctl=-1
ioctl RTC_ALM_SET faild!!!
******** RTC Test Demo ***********
Test second alarm(hour,min,sec)..
Select :
read current time is: 2005-01-01 06:59:32
ioctl=0
read current alarm time is: 2005-01-01 06:59:42
Waiting 10 seconds for alarm...
PM: Syncing filesystems ... done.
Freezing user space processes ... (elapsed 0.001 seconds) done.
Freezing remaining freezable tasks ... (elapsed 0.001 seconds) done.
Suspending console(s) (use no_console_suspend to debug)
PM: suspend of devices complete after 33.783 msecs
PM: late suspend of devices complete after 3.491 msecs
PM: noirq suspend of devices complete after 3.466 msecs
Wake up source: 00000000 00000080
PM: noirq resume of devices complete after 2.716 msecs
PM: early resume of devices complete after 2.908 msecs
PM: resume of devices complete after 63.083 msecs
Restarting tasks ...
Alarm interrupt come on,the func running!
done.
Test second alarm(hour,min,sec) test OK!
******** RTC Test Demo ***********
Test second alarm(hour,min,sec)..
Select :
read current time is: 2005-01-01 06:59:50
ioctl=-1
ioctl RTC_ALM_SET faild!!!
PM: Syncing filesystems ... done.
Freezing user space processes ... (elapsed 0.001 seconds) done.
Freezing remaining freezable tasks ... (elapsed 0.001 seconds) done.
Suspending console(s) (use no_console_suspend to debug)
不知道啥问题,哪位兄弟在这个平台上玩过这个功能,给指点下。
我问了新塘的技术支持工程师,还没回复。
|
阿莫论坛20周年了!感谢大家的支持与爱护!!
月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!
|