6.8物联网RK3399项目开发实录-驱动开发之RTC实时时钟的使用(wulianjishu666)

90款行业常用传感器单片机程序及资料【stm32,stc89c52,arduino适用】

链接:https://pan.baidu.com/s/1M3u8lcznKuXfN8NRoLYtTA?pwd=c53f

RTC 使用

简介

AIO-3399J 开发板上有 一个集成于 RK808 上的RTC(Real Time Clock),主要功能有时钟,日历,闹钟,周期性中断,双通道 32KHz 时钟输出。

J2 接上 CR2032 纽扣电池后,可以保证板子掉电后 RTC 可以正常运行。J2 位置如下图:

RTC 驱动

DTS 配置信息存放于 rk808 节点

驱动代码路径:drivers/rtc/rtc-rk808.c

接口使用

Linux 提供了三种用户空间调用接口。在 AIO-3399J 开发板中对应的路径为:

  • SYSFS接口:/sys/class/rtc/rtc0/

  • PROCFS接口: /proc/driver/rtc

  • IOCTL接口: /dev/rtc0

SYSFS接口

可以直接使用 catecho 操作 /sys/class/rtc/rtc0/ 下面的接口。

比如查看当前 RTC 的日期和时间:

复制代码
# cat /sys/class/rtc/rtc0/date
2013-01-18
#cat /sys/class/rtc/rtc0/time
09:36:10

设置开机时间,如设置 120 秒后开机:

复制代码
#120秒后定时开机
echo +120 >  /sys/class/rtc/rtc0/wakealarm
# 查看开机时间
cat /sys/class/rtc/rtc0/wakealarm
#关机
reboot -p

PROCFS 接口

打印 RTC 相关的信息:

复制代码
# cat /proc/driver/rtc
rtc_time        : 09:34:59
rtc_date        : 2013-01-18
alrm_time       : 08:52:45
alrm_date       : 2013-01-18
alarm_IRQ       : no
alrm_pending    : no
update IRQ enabled      : no
periodic IRQ enabled    : no
periodic IRQ frequency  : 1
max user IRQ frequency  : 64
24hr            : yes

IOCTL接口

可以使用 ioctl 控制 /dev/rtc0

详细使用说明请参考文档 kernel/Documentation/rtc.txt

FAQs

Q1: 开发板上电后时间不同步?

A1: 检查一下 RTC 电池是否正确接入。

相关推荐
舟遥遥娓飘飘2 分钟前
Nexus4CC 手机电脑同步claude code对话部署教程(基于linux系统)
linux·智能手机·电脑
何妨呀~15 分钟前
Firewalld防火墙端口配置
linux
切糕师学AI22 分钟前
Vim 深度解析:从经典 vi 到现代编辑器之巅
linux·vim·文本编辑器
计算机安禾1 小时前
【Linux从入门到精通】第49篇:服务器故障排查终极指南——思路决定出路
linux·运维·服务器
古月-一个C++方向的小白1 小时前
Linux——初识文件
linux·运维·服务器
北山有鸟1 小时前
编译香橙派内核
linux·运维·服务器
小此方1 小时前
Re:Linux系统篇(八)权限篇 ·三:深度解析从 umask 位运算到粘滞位的“权力锁”
linux·运维·服务器
晨曦夜月2 小时前
进程的五大状态及特殊进程解析
linux·服务器·算法
生而为虫2 小时前
Claude Code 最新版安装教程(Windows/Mac/Linux 全平台) 面向普通用户的 Claude Code 安装与模型接入指南
linux·windows·macos
Sarvartha2 小时前
三目运算符
linux·服务器·前端