CPU:RK3288

系统:Linux

IC:hym8563

在 Linux 系统中,指令 date 和 hwclock 都可以读写时间

date:读写系统时间,写时间需要管理员权限

hwclock:读写硬件时间,也就是 rtc 模块的时间,读写都必须有管理员权限

// 读取当前系统时间
$ date
Thu Oct :: UTC
// 普通用户设置时间失败
$ date 102411032019.00
date: cannot set date: Operation not permitted
Thu Oct :: UTC
// 超级用户设置时间成功,格式:月日时分年.秒
$ sudo date 102411032019.00
Thu Oct :: UTC
// 读取当前系统时间,确认时间设置成功
// 小时与设置的11点不同,这是由于时区造成的
$ date
Thu Oct :: UTC

设置时区的问题,请参考:[Linux] 通过指令修改时区 tzselect

$ date
Thu Oct :: CST
// 查看硬件时间
$ sudo hwclock
Thu Oct :: PM CST . seconds
// 查看硬件时间
$ sudo hwclock -r
Thu Oct :: PM CST . seconds
// 查看硬件时间
$ sudo hwclock -show
Thu Oct :: PM CST . seconds
// 修改硬件时间,与系统时间相同
$ sudo hwclock -w
// 修改系统时间,与硬件时间相同
$ sudo hwclock -w

rtc 测试 demo:

#include <stdio.h>
#include <stdlib.h>
#include <linux/rtc.h>
#include <sys/ioctl.h>
#include <sys/time.h>
#include <sys/types.h>
#include <fcntl.h>
#include <unistd.h>
#include <errno.h>
#include <time.h> int main(int argc, char *argv[])
{
int fd, retval;
struct rtc_time rtc_tm;
time_t timep;
struct tm *p; fd = open("/dev/rtc", O_RDONLY);
if (fd == -) {
fprintf(stderr, "open /dev/rtc error\n");
exit(errno);
} /* Read the RTC time/date */
retval = ioctl(fd, RTC_RD_TIME, &rtc_tm);
if (retval == -) {
perror("ioctl");
exit(errno);
} fprintf(stderr, "RTC date/time: %d/%d/%d %02d:%02d:%02d\n",
rtc_tm.tm_mday, rtc_tm.tm_mon + , rtc_tm.tm_year + ,
rtc_tm.tm_hour, rtc_tm.tm_min, rtc_tm.tm_sec);
time(&timep);
p = gmtime(&timep);
fprintf(stderr, "OS date/time(UTC): %d/%d/%d %02d:%02d:%02d\n",
p->tm_mday, p->tm_mon + , p->tm_year + ,
p->tm_hour, p->tm_min, p->tm_sec);
p = localtime(&timep);
fprintf(stderr, "OS date/time(Local): %d/%d/%d %02d:%02d:%02d\n",
p->tm_mday, p->tm_mon + , p->tm_year + ,
p->tm_hour, p->tm_min, p->tm_sec); rtc_tm.tm_mday = ;
rtc_tm.tm_mon = ;
rtc_tm.tm_hour = ;
rtc_tm.tm_min = ;
retval = ioctl(fd, RTC_SET_TIME, &rtc_tm);
if (retval == -) {
perror("ioctl");
exit(errno);
} /* Write the RTC time/date */
retval = ioctl(fd, RTC_RD_TIME, &rtc_tm);
if (retval == -) {
perror("ioctl");
exit(errno);
} fprintf(stderr, "RTC date/time: %d/%d/%d %02d:%02d:%02d\n",
rtc_tm.tm_mday, rtc_tm.tm_mon + , rtc_tm.tm_year + ,
rtc_tm.tm_hour, rtc_tm.tm_min, rtc_tm.tm_sec);
time(&timep);
p = gmtime(&timep);
fprintf(stderr, "OS date/time(UTC): %d/%d/%d %02d:%02d:%02d\n",
p->tm_mday, p->tm_mon + , p->tm_year + ,
p->tm_hour, p->tm_min, p->tm_sec);
p = localtime(&timep);
fprintf(stderr, "OS date/time(Local): %d/%d/%d %02d:%02d:%02d\n",
p->tm_mday, p->tm_mon + , p->tm_year + ,
p->tm_hour, p->tm_min, p->tm_sec); close(fd); return ;
}

参考:https://blog.csdn.net/u010703935/article/details/11728091

[Linux] RTC 读写指令及测试程序的更多相关文章

  1. linux rtc 接口【转】

    转自:http://blog.csdn.net/goldfighter/article/details/6126178 Linux操作系统内核对RTC的编程详解 转自: http://xenyinze ...

  2. linux驱动基础系列--linux rtc子系统

    前言 linux驱动子系统太多了,连时钟也搞了个子系统,这导致一般的时钟芯片的驱动也会涉及到至少2个子系统,一个是时钟芯片接口子系统(比如I2c接口的时钟芯片),一个是内核给所有时钟芯片提供的rtc子 ...

  3. (转)Linux最常用指令及快捷键 Linux学习笔记

    Linux最常用指令及快捷键 Linux学习笔记 原文:http://blog.csdn.net/yanghongche/article/details/50827478 [摘自 鸟叔的私房菜]--转 ...

  4. linux的一些指令

    linux的一些指令 █查看指令參數man 指令,如:man ls ,按q鍵退出 █查看文件列表ls -lht 按時間排序ll 列表ls 列表 目錄cd 目錄名稱 進入路徑cd .. 返回上層路徑 █ ...

  5. Linux文件常用指令

    目录 Linux文件常用指令 1.pwd 显示当前目录 2.cd 切换目录 3.mkdir 创建目录 4.touch 修改或创建文件 5.ls 显示目录下的内容 6.cat 查看文件信息 7.echo ...

  6. Linux入门50指令

    1, mkdir创建目录 make directory 可以带着路径,在什么位置创建什么目录 如:mkdir /etc/date  在目录etc下创建date目录 重要参数 –p 递归创建,mkdir ...

  7. linux常用操作指令

    Linux常用操作指令: 常用指令 ls        显示文件或目录 -l           列出文件详细信息l(list) -a          列出当前目录下所有文件及目录,包括隐藏的a(a ...

  8. linux RTC 驱动模型分析【转】

    转自:http://blog.csdn.net/yaozhenguo2006/article/details/6824970 RTC(real time clock)实时时钟,主要作用是给Linux系 ...

  9. Linux日常使用指令大全

    Linux日常使用指令大全 Java代码 www.ahlinux.com 001.日常维护常用查询命令 #top    显示系统进程 #clear  清理屏幕信息 #cat /etc/redhat-r ...

随机推荐

  1. sql基本常识[未完待续]

    ---------------------------------------------------------------------------------------------------- ...

  2. sublime的package control的中文镜像

    参加: http://packagecontrol.cn/installation

  3. p5.BTC-网络

    Bitcoin工作在应用层,网络层是P2P . Bitcoin网络通信的设计原则是 simple  robust ,but not efficient. 每个节点维护一个邻居节点的集合,消息传播采取 ...

  4. api markdown 编排模版

    #### 简要描述: - 查询城市编码 #### 接口版本: |版本号|制定人|制定日期|修订日期||:---- |:------ |:-------- |------- ||1.0 |XXX|201 ...

  5. Elasticsearch 7.x - IK分词器插件(ik_smart,ik_max_word)

    一.安装IK分词器 Elasticsearch也需要安装IK分析器以实现对中文更好的分词支持. 去Github下载最新版elasticsearch-ik https://github.com/medc ...

  6. 2013.4.19 - KDD第一天

    其实昨天KDD就开始了,不过今天算是我跟KDD的第一天.   昨天夜里就短信跟中秋聊了一会儿,然后中秋说他一天都在弄数据库,连不上怒了.然后我跟他说明天我来.于是今天就在图书馆弄KDD,数据是用数据库 ...

  7. Springboot中自已测试

    签到的测试,需要传入日期,签到7天可获得更多的积分, 构造7天前的签到记录,重写签到方法,进行构造数据 import cn.com.acxiom.coty.api.ws.bean.dto.PointD ...

  8. redis cluster集群的原理

    redis集群的概述: 在以前,如果前几年的时候,一般来说,redis如果要搞几个节点,每个节点存储一部分的数据,得借助一些中间件来实现,比如说有codis,或者twemproxy,都有.有一些red ...

  9. 201671030116 宋菲菲 实验十四 团队项目评审&课程学习总结

    项目 内容 作业所属课程 所属课程 作业要求 作业要求 课程学习目标 (1)掌握软件项目评审会流程:(2)反思总结课程学习内容 任务一:团队项目审核已完成.项目验收过程意见表已上交. 任务二:课程学习 ...

  10. wordpress实现主动推送+熊掌号推送同步进行

    今天给一个朋友http://www.myunigift.cn/ 这个站点是用wordpress,今天帮他改造熊掌号,于是做了数据同步推送. 只要把下面的代码写到funtions.php里面,发布文章的 ...