Edit online

RTC 配置

Read time: 2 minute(s)

本节介绍 RTC 的参数配置。

内核配置

  1. 在 SDK 根目录下,执行下列命令,进入 kernel 的功能配置界面:
    make kernel-menuconfig

    或使用简写命令

    make km
  2. 在内核配置界面,按如下选择打开 RTC 驱动:
    Linux
        Device Drivers
            [*] Real Time Clock
                [*] ArtInChip Soc RTC

配置 DTS 参数

RTC 驱动支持从 DTS 中配置的自定义参数如下表所示:
注: aic,alarm-io-outputaic,32k-io-output 共用一个 IO 输出,只能二选一。
1. RTC 自定义参数
参数名称 适用版本 类型 取值范围 功能说明
aic,alarm-io-output V0.1/V1.0 Boolean 有 - 1,无 - 0 是否使能 alarm 的 IO 输出功能
aic,32k-io-output V1.0 Boolean 有 - 1,无 - 0 是否使能 32K 时钟输出功能
clock-rate V1.0 Integer 3276800±3196 时钟源的实测频率值*100,用于时钟校准。

这种取值方式可提高校准的精度,使得校准可以精确到 0.03 Hz。

aic,clock-driver V1.0 Integer [0, 15] Clock 驱动能力,数值越小越省功耗

需要通过一个 Sysfs 节点 驱动能力扫描 来获得取值。

D211 配置
  • common/d211.dtsi 中的参数配置:
    rtc: rtc@19030000 {
        compatible = "artinchip,aic-rtc-v1.0";
        reg = <0x0 0x19030000 0x0 0x1000>;
        interrupts-extended = <&plic0 50 IRQ_TYPE_LEVEL_HIGH>;
        clocks = <&cmu CLK_RTC>;
        resets = <&rst RESET_RTC>;
    };
  • xxx/board.dts 中的参数配置:
    &rtc {
        aic,alarm-io-output;
        clock-rate = <3276851>;
        aic,clock-driver = <13>;
        status = "okay";
    };

配置时区

Luban SDK 提供了时区管理功能,默认配置时区为 Asia/Shanghai,即中国的 +8 时区。 按照下列流程,可以配置和管理时钟:
  1. 在 Luban 根目录下执行 make menuconfig,进入功能配置界面,选择时区配置:
    System configuration
        (Asia/Shanghai) default local time
  2. 执行下列 Shell 命令,查看系统中是否有时区配置。
    date
    • 如果系统输出中包含 “UTC” 字样,表示未配置时区,示例如下:
      Tue Jan  601:41:27 UTC 1970

      此时,RTC 时间和系统时间(date 命令的输出)一致。

    • 如果系统输出中包含 “CST” 字样,表示已经配置了 +8 时区:
      Tue Jan  601:41:27 CST 1970
      此时 RTC 时间和系统时间会出现一个时区差:
      系统时间 = RTC 时间 + 时区
      以 +8 时区为例,通过 hwclock 命令 可以查看时区差:
      • 系统时间:
        date
        Tue Jan  601:49:53 CST 1970
      • 原始 RTC 时间
        hwclock 
        Mon Jan  517:49:17 19700.000000 seconds
      • RTC 时间 + 时区,和系统时间一致
        hwclock  -u
        Tue Jan  601:49:20 19700.000000 seconds

        在打开时区的情况下,使用 hwclock -wu 命令可以从系统时间同步到 RTC 时间的设置。

        查看 RTC 时间的方式也应该加参数 -u,指示 hwclock 工具 RTC 中保存的是 UTC 时间。