Sigmastar_RTC使用参考
REVISION HISTORY¶
Revision No. | Description |
Date |
---|---|---|
1.0 | 04/15/2024 |
1. 概述¶
Real Time Clock(实时时钟),简称RTC,主要是用于计时和闹钟设置。RTC驱动采用标准的LINUX框架,能够使用统一的接口来操作RTC。
2. 硬件介绍¶
2.1. RTC晶振频率¶
RTC目前使用32.768kHz频率的晶振
3. Kernel用法介绍¶
3.1. Kernel Config配置¶
Device Drivers ---> [*] Sstar RTC Driver ---> [ ] Sstar RTC With PWC [*] Sstar RTC With Alarm [ ] Sstar RTC With Offset
3.2. Dts配置参数说明¶
rtcpwc { compatible = "sstar,rtcpwc"; reg = <0x1F006800 0x200>; interrupts = <GIC_SPI INT_IRQ_DIG_TOP IRQ_TYPE_LEVEL_HIGH>; status = "ok"; };
属性 | 描述 | 备注 |
---|---|---|
compatible | 用于匹配驱动进行驱动注册 | 禁止修改 |
reg | 寄存器映射的物理地址 | 禁止修改 |
interrupts | 中断号及属性 | 禁止修改 |
status | 驱动开关 | 根据需要配置,ok/disabled |
3.3. RTC命令操作方法¶
3.3.1. 显示系统时间¶
命令:date
3.3.2. 设置系统时间¶
命令: date MMDDhhmmYYYY.ss
MM : month(01-12);
DD : day(01-31);
Hhmm : time(0000-2359);
YYYY : year[optional];
ss : seconds(00-59) [optional]
3.3.3. Show RTC Clock¶
命令:hwclock
3.3.4. Set RTC Clock to System Clock¶
命令:hwclock -w
3.4. RTC应用编程操作方法¶
应用程序可以通过ioctl操作 /dev/rtc0 文件读取设定RTC时间及Alarm时间,代码具体实现可以参考driver/sstar/rtc/ut/rtc_ut.c。接下来演示如何通过rtc_ut操作RTC。
3.4.1. 读取系统时间¶
命令:./rtc_ut
3.4.2. 设置系统时间¶
命令:./rtc_ut -w -s "2021-11-3 20:10:30"
描述:设置RTC时间为2021年11月3日 20:10:30
命令:./rtc_ut -w -o 10
描述:设置RTC时间为当前时间加上10秒
3.4.3. 读取报警时间¶
命令:./rtc_ut -a
3.4.4. 设置报警时间¶
命令:./rtc_ut -a -w -s "2021-11-3 20:20:30"
描述:设置RTC报警时间为2021年11月3日 20:20:30
程序会sleep到alarm触发
命令:./rtc_ut -w -a -o 10
描述:设置RTC时间为当前时间加上10秒
3.5. 自定义用户空间接口¶
3.5.1. 用户空间接口¶
由于内核的RTC框架并未完全涵盖SigmaStar RTCPWC硬件设计的编码要求,因此RTC驱动在sys文件系统中自定义了一些文件用于扩充功能。文件的位置为:/sys/class/sstar/rtcpwc/
文件 | 描述 |
---|---|
alarm_timer | 用于查看和设置报警时间,输出的值为倒计时,输入的值为增加倒计时时间 |
如需设置alarm时间为30秒后,可以使用以下命令:
1. echo 30 > alarm_timer
查看倒计时时间,可以使用以下命令:
1. cat alarm_timer