技术专栏
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个
手气红包
暂无数据
相关专栏
-
浏览量:3628次2017-12-14 11:14:04
-
浏览量:5562次2018-06-21 17:58:57
-
浏览量:1087次2023-06-12 14:34:24
-
浏览量:783次2024-01-05 10:53:43
-
浏览量:2808次2023-04-14 09:29:35
-
浏览量:8192次2020-11-25 15:33:10
-
浏览量:17486次2021-01-29 19:22:55
-
2023-04-07 15:12:43
-
浏览量:2407次2020-09-04 13:47:44
-
浏览量:2635次2020-07-07 09:24:18
-
浏览量:730次2024-02-22 13:54:49
-
浏览量:10179次2022-11-10 18:07:40
-
浏览量:1435次2024-02-23 18:01:42
-
浏览量:2603次2018-06-27 10:20:05
-
浏览量:2395次2020-08-20 18:03:14
-
浏览量:10468次2020-12-04 16:08:56
-
浏览量:507次2024-08-27 10:56:56
-
浏览量:3440次2020-04-27 16:58:40
-
浏览量:2872次2018-01-07 15:07:21
置顶时间设置
结束时间
删除原因
-
广告/SPAM
-
恶意灌水
-
违规内容
-
文不对题
-
重复发帖
打赏作者
big_anana
您的支持将鼓励我继续创作!
打赏金额:
¥1
¥5
¥10
¥50
¥100
支付方式:
微信支付
打赏成功!
感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~
举报反馈
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明
审核成功
发布时间设置
发布时间:
请选择发布时间设置
是否关联周任务-专栏模块
审核失败
失败原因
请选择失败原因
备注
请输入备注