RTC使用参考


1. 概述

本文讲述SigmaStar RTCPWC驱动的使用方法,RTC驱动采用标准的LINUX框架,能够使用统一的接口来操作RTC,同时在LINUX框架外添加符合SigmaStar IP功能的附加设置。

2. RTC操作方法及规范

2.1. 显示系统时间

命令:date

2.2. 设置系统时间

命令:date MMDDhhmmYYYY.ss

MM : month(01-12);

DD : day(01-31);

Hhmm : time(0000-2359);

YYYY : year[optional];

ss : seconds(00-59) [optional]

2.3. Show RTC Clock

命令:hwclock

2.4. Set RTC Clock to System Clock

命令:hwclock –w

3. RTC应用编程操作方法

应用程序可以通过ioctl操作 /dev/rtc0 文件读取设定RTC时间及Alarm时间,代码具体实现可以参考driver/sstar/rtc/ut/rtc_ut.c。接下来演示如何通过rtc_ut操作RTC。

3.1. 读取系统时间

命令:./rtc_ut

3.2. 设置系统时间

命令:./rtc_ut -w -y 2021 -M 11 -d 3 -h 20 -m 10 -s 30

描述:设置RTC时间为2021年11月3日 20:10:30

命令:./rtc_ut -w -o 10

描述:设置RTC时间为当前时间加上10秒

3.3. 读取报警时间

命令:./rtc_ut -a

3.4. 设置报警时间

命令:./rtc_ut -w -a -y 2021 -M 11 -d 3 -h 20 -m 10 -s 30

描述:设置RTC报警时间为2021年11月3日 20:10:30

命令:./rtc_ut -w -a -o 10

描述:设置RTC时间为当前时间加上10秒

4. 自定义用户空间接口

由于内核的RTC框架并未完全涵盖SigmaStar RTCPWC硬件设计的编码要求,因此RTC驱动在sys文件系统中自定义了一些文件用于扩充功能。文件的位置为:/sys/class/mstar/rtcpwc/

文件 描述
alarm_timer 用于查看和设置报警时间,输出的值为倒计时,输入的值为增加倒计时时间
count_status 用于查看驱动错误计数的次数,该功能用于调试

5. 驱动配置

5.1. 驱动配置

1.  rtcpwc {
2.      compatible = "sstar,rtcpwc";
3.      reg = <0x1F006800 0x200>;
4.      interrupts = <GIC_SPI INT_IRQ_DIG_TOP IRQ_TYPE_LEVEL_HIGH>;
5.      alarm-enable;
6.      status = "ok";
7.  };

alarm-enable为alarm功能的总开关,如果不声明alarm-enable属性,alarm相关的功能将无法使用包括sys fs的节点,一般建议不要关闭alarm功能。