- Last edited 5 months ago ago
How to use the RTC
This article describes how to use the RTC.
2 How to set a hardware clock using the hwclock tool
The correct system time must first be set with the date command. Type the date command to see the date and time format of the string:
Board $> date Fri Mar 9 12:18:51 UTC 2018
Board $> date --set="Fri Mar 9 19:18:51 UTC 2018" Fri Mar 9 19:18:51 UTC 2018
Set the hardware clock to this date:
Board $> hwclock Fri Mar 9 12:21:03 2018 0.000000 seconds Board $> hwclock --systohc --utc Board $> hwclock Fri Mar 9 19:19:52 2018 0.000000 seconds
3 How to set an alarm
# disable the alarm Board $> echo 0 > /sys/class/rtc/rtc0/wakealarm
# calculate alarm with 1 minute later Board $> wakeuptime=`date -d "1 minute" +%s`
# set the alarm Board $> echo $wakeuptime > /sys/class/rtc/rtc0/wakealarm root@stm32mp1:~# [ 829.279019] rtc rtc0: Alarm occurred
You can also set an alarm 'n' seconds later:
Board $> echo +10 > /sys/class/rtc/rtc0/wakealarm
4 How to set an alarm and go into a system sleep state with the rtcwake tool
# calculate an alarm 1 minute later Board $> wakeuptime=`date -d "1 minute" +%s`
# set wakeup on /dev/rtc0 Board $> rtcwake -lt$wakeuptime -m mem rtcwake: wakeup from "mem" using /dev/rtc0 at Sun Mar 11 10:48:06 2018 [ 154.022303] PM: suspend entry (deep) [ 154.024421] PM: Syncing filesystems ... done. [ 154.037258] Freezing user space processes ... (elapsed 0.001 seconds) done. [ 154.044397] OOM killer disabled. [ 154.047555] Freezing remaining freezable tasks ... (elapsed 0.001 seconds) done. [ 154.055039] Suspending console(s) (use no_console_suspend to debug)
One minute later...
NOTICE: CPU: STM32MP157CAA Rev.B NOTICE: Model: STMicroelectronics STM32MP157C eval daughter on eval mother NOTICE: Board: MB1263 Var1 Rev.C-01 INFO: Reset reason (0x810): INFO: System exits from STANDBY INFO: Using SDMMC INFO: Instance 1 INFO: Boot used partition fsbl1 INFO: Product_below_2v5=1: HSLVEN update is INFO: destructive, no update as VDD>2.7V NOTICE: BL2: v2.0(debug):v2.0-stm32mp-19-01-29 NOTICE: BL2: Built : 15:58:42, Jan 29 2019 INFO: BL2: Doing platform setup INFO: PMIC version = 0x10 INFO: RAM: DDR3-1066/888 bin G 2x4Gb 533MHz v1.41 INFO: BL2 runs SP_MIN setup INFO: BL2: Loading image id 4 INFO: Loading image id=4 at address 0x2ffe5000 INFO: Image id=4 loaded: 0x2ffe5000 - 0x30000000 INFO: BL2: Skip loading image id 5 INFO: read version 0 current version 0 NOTICE: BL2: Booting BL32 INFO: Entry point address = 0x2ffe5000 INFO: SPSR = 0x1d3 INFO: PMIC version = 0x10 NOTICE: SP_MIN: v2.0(debug):v2.0-stm32mp-19-01-29 NOTICE: SP_MIN: Built : 15:58:42, Jan 29 2019 INFO: ARM GICv2 driver initialized INFO: stm32mp HSI (18): Secure only INFO: stm32mp HSE (20): Secure only INFO: stm32mp PLL2 (27): Secure only INFO: stm32mp PLL2_R (30): Secure only INFO: SP_MIN: Initializing runtime services INFO: SP_MIN: Preparing exit to normal world [ 154.074319] dwc2 49000000.usb-otg: suspending usb gadget configfs-gadget [ 154.196804] Disabling non-boot CPUs ... [ 154.250046] CPU1 killed. [ 154.251704] Enabling non-boot CPUs ... [ 154.252697] CPU1 is up [ 154.254885] rtc rtc0: Alarm occurred [ 154.273940] dwmac4: Master AXI performs any burst length [ 154.273972] stm32-dwmac 5800a000.ethernet eth0: No Safety Features support found [ 154.276938] usb usb2: root hub lost power or was reset [ 154.284703] dwc2 49000000.usb-otg: resuming usb gadget configfs-gadget [ 154.491151] dwc2 49000000.usb-otg: new device is high-speed [ 154.619589] dwc2 49000000.usb-otg: new device is high-speed [ 154.669343] usb 2-1: reset high-speed USB device number 2 using ehci-platform [ 154.697272] dwc2 49000000.usb-otg: new address 2 [ 154.722774] configfs-gadget gadget: high-speed config #1: c [ 155.066198] OOM killer enabled. [ 155.069339] Restarting tasks ... done. [ 155.075470] PM: suspend exit
See  for more about rtcwake settings.