目次

RTC の利用

XG-50 で使用している SoC の STM32L476 には、RTC が搭載されています。
オプションの電池を接続することでメイン電源が切れても時刻を刻み続けることもできます。

下記 /dev/ 以下に見えるとおり /dev/rtc0 経由で制御を行います。

nsh> ls -l /dev
/dev:
 cr--r--r--       0 adc0
 crw-rw-rw-       0 console
 crw-rw-rw-       0 i2c1
 brw-rw-rw-       0 mtdblock0
 crw-rw-rw-       0 null
 crw-rw-rw-       0 ptmx
 crw-rw-rw-       0 ramlog
 cr--r--r--       0 random
 crw-rw-rw-       0 rtc0   <---- RTC
 crw-rw-rw-       0 timer0
 crw-rw-rw-       0 ttyS0
 crw-rw-rw-       0 ttyS1
 crw-rw-rw-       0 ttyS2
 crw-rw-rw-       0 ttyS3
 crw-rw-rw-       0 zero


ソフトウェア

API

ioctl() で用意されているリクエストは以下になります。

Request 内容 Note
RTC_RD_TIME 日時読み出し
RTC_SET_TIME 日時設定
RTC_HAVE_SET_TIME 日時設定済みか確認
RTC_SET_ALARM アラーム1)設定 struct rtc_time で指定
RTC_SET_RELATIVE アラーム2)設定 time_t で指定
RTC_CANCEL_ALARM アラーム取り消し
RTC_RD_ALARM アラーム設定読み出し
RTC_SET_PERIODIC 定期起床設定
RTC_CANCEL_PERIODIC 定期起床取り消し


サンプル

プログラムの例は apps/examples/alarm/alarm_main.c を参照してください。


1)
絶対日時による
2)
相対秒数による