技术专栏
linux c 设置rtc以及系统时间
首先设置RTC时间的节点名称,此次使用的是海思的RTC时间节点“hi_rtc”。
const char *dev_name = "/dev/hi_rtc";
以下是设置时间的函数,包括RTC时间和系统时间:
int set_hwtime(rtc_time_t *rtc_time)
{
struct timeval val_time;
struct tm tm_time;
int fd = -1, ret = -1;
fd = open(dev_name, O_RDWR);
if (fd < 0) {
printf("open %s failed\n", dev_name);
return -1;
}
printf("set_hwtime: year=%d, month=%d, day=%d, hour=%d, min=%d, sec=%d\n",\
rtc_time->year, rtc_time->month, rtc_time->date, rtc_time->hour, rtc_time->minute, rtc_time->second);
ret = ioctl(fd, HI_RTC_SET_TIME, rtc_time);
if (ret < 0) {
printf("ioctl: HI_RTC_SET_TIME failed\n");
return -1;
}
tm_time.tm_year = rtc_time->year - 1900;
tm_time.tm_mon = rtc_time->month - 1;
tm_time.tm_mday = rtc_time->date;
tm_time.tm_hour = rtc_time->hour;
tm_time.tm_min = rtc_time->minute;
tm_time.tm_sec = rtc_time->second;
tm_time.tm_wday = rtc_time->weekday;
printf("set_systime: year=%d, month=%d, day=%d, hour=%d, min=%d, sec=%d\n",\
rtc_time->year, rtc_time->month, rtc_time->date, rtc_time->hour, rtc_time->minute, rtc_time->second);
val_time.tv_sec = mktime(&tm_time);
val_time.tv_usec = 0;
settimeofday(&val_time,NULL);
close(fd);
return 0;
}
rtc时间通过ioctl的方式,将时间写入。系统时间通过settimeofday函数,将时间写入。最后完成需确认打开的句柄是否关闭close(fd)。
声明:本文内容由易百纳平台入驻作者撰写,文章观点仅代表作者本人,不代表易百纳立场。如有内容侵权或者其他问题,请联系本站进行删除。
红包
58
35
评论
打赏
- 分享
- 举报
评论
0个
手气红包

相关专栏
-
浏览量:3712次2017-12-14 11:14:04
-
浏览量:5730次2018-06-21 17:58:57
-
浏览量:2944次2023-04-14 09:29:35
-
浏览量:907次2024-01-05 10:53:43
-
浏览量:1168次2023-06-12 14:34:24
-
浏览量:8290次2020-11-25 15:33:10
-
浏览量:17662次2021-01-29 19:22:55
-
浏览量:2503次2020-09-04 13:47:44
-
2023-04-07 15:12:43
-
浏览量:2657次2018-06-27 10:20:05
-
浏览量:2750次2020-07-07 09:24:18
-
浏览量:881次2024-02-22 13:54:49
-
浏览量:2458次2020-08-20 18:03:14
-
浏览量:10598次2020-12-04 16:08:56
-
浏览量:10634次2022-11-10 18:07:40
-
浏览量:1771次2024-02-23 18:01:42
-
浏览量:3524次2020-04-27 16:58:40
-
2025-01-24 10:29:58
-
浏览量:770次2024-08-27 10:56:56
置顶时间设置
结束时间
删除原因
-
广告/SPAM
-
恶意灌水
-
违规内容
-
文不对题
-
重复发帖
打赏作者
big_anana
您的支持将鼓励我继续创作!
打赏金额:
¥1

¥5

¥10

¥50

¥100

支付方式:

举报反馈
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明
审核成功
发布时间设置
发布时间:
请选择发布时间设置
是否关联周任务-专栏模块
审核失败
失败原因
请选择失败原因
备注
请输入备注