"Nikita V. Youshchenko" <yo...@debian.org> writes: > Is there any working methond to make freerunner suspend sleep and later > wakeup not later than at a given moment?
Yes. #include <stdio.h> #include <linux/rtc.h> #include <sys/ioctl.h> #include <sys/time.h> #include <sys/types.h> #include <fcntl.h> #include <unistd.h> #include <stdlib.h> #include <errno.h> #include <assert.h> #include <time.h> int main(int argc, char **argv) { int fd, ret; struct rtc_wkalrm wkalrm; assert(argc == 2); fd = open("/dev/rtc0", O_RDONLY); assert(fd); { struct tm *tm; time_t secs; secs = atol(argv[1]); assert(secs > 86400*365*(2000-1970)); assert(secs < 86400*365*(2030-1970)); tm = gmtime(&secs); assert(tm); wkalrm.time.tm_sec = tm->tm_sec; wkalrm.time.tm_min = tm->tm_min; wkalrm.time.tm_hour = tm->tm_hour; wkalrm.time.tm_mday = tm->tm_mday; wkalrm.time.tm_mon = tm->tm_mon; wkalrm.time.tm_year = tm->tm_year; wkalrm.time.tm_wday = tm->tm_wday; wkalrm.time.tm_yday = tm->tm_yday; wkalrm.time.tm_isdst = tm->tm_isdst; } wkalrm.enabled = 1; ret = ioctl(fd, RTC_WKALM_SET, &wkalrm); assert(ret != -1); return 0; } works for me with andy-tracking b8b36e5ec3d. _______________________________________________ Openmoko community mailing list community@lists.openmoko.org http://lists.openmoko.org/mailman/listinfo/community