當 Linux 開發(fā)者談論一個實時時鐘,他們通常指的是某種能記錄墻上時間,并且有備用電
池,以至于在系統(tǒng)關機的時候仍然可以工作的器件。
Linux 有兩個系列廣泛兼容的用戶空間 RTC 設備節(jié)點:
• /dev/rtc : PC 機及兼容機系統(tǒng)提供的 RTC 接口,這種接口對于非 x86 系統(tǒng)來說不是
很輕便。
• /dev/rtc0,/dev/rtc1 :是各種系統(tǒng)上,被各種 RTC 芯片所支持的框架的一部分。
iTOP-iMX6 開發(fā)板以上兩種均支持,設備節(jié)點對應為“/dev/rtc”和“/dev/rtc0”。
iTOP-iMX6 開發(fā)板的內核鏡像,默認支持實時時鐘,另外還需要有紐扣電池,如下圖所示。
如果用戶購買的時候,指明需要順豐空運,那么開發(fā)板上應該是不帶有紐扣電池的,電池的型
號為 cr1220,用戶可自行購買。
01.jpg (67.6 KB, 下載次數(shù): 59)
下載附件
2019-9-2 11:12 上傳
iTOP-iMX6 的實時時鐘 RTC 驅動是內核目錄下的“drivers/rtc/rtc*”文件,如下圖所
示。
02.jpg (9.43 KB, 下載次數(shù): 69)
下載附件
2019-9-2 11:12 上傳
壓縮包中有“topeet_rtctest.tar.gz”,其中有源碼和二進制文件。源碼文件中包含獲取
實時時鐘和打印出實時時鐘時間的代碼。
假如用戶需要在代碼中設置時間,則需要使用 date 和 hwclock 等命令。如果需要在代碼
中增加設置時間的命令,可以使用函數(shù)“settimeofday”,不過多數(shù)情況下,在代碼中直接 調用 date 和 hwclock 命令即可。另外在程序中調用 linux 命令,可以參考“iTOP-開發(fā)板-
MiniLinux-C 程序調用 shell 命令”和“iTOP-開發(fā)板-QtE-調用 shell 命令使用文檔”文檔。
首先測試下命令行設置時間和測試。
如下圖所示,可以使用“date”命令可以直接查看系統(tǒng)時間,上電開機之后(斷電,取下
紐扣電池,上電開機),時間是默認的時間“Thu Jan 1 08:02:30 CST 1970”。
03.jpg (5.28 KB, 下載次數(shù): 59)
下載附件
2019-9-2 11:12 上傳
使用命令“date -s "2019-07-27 10:06:00"”設置系統(tǒng)時間,接著使用命令“date”
可以查到系統(tǒng)時間已經(jīng)更新,接著使用命令“hwclock --systohc”將系統(tǒng)時間同步到 RTC 實
時時鐘,如下圖所示。
04.jpg (19.55 KB, 下載次數(shù): 57)
下載附件
2019-9-2 11:12 上傳
安裝上紐扣電池,斷電再開機,使用命令“date”,時間仍然是 2019 年,說明實時時鐘
起作用了。
測試程序讀取時間測試
如下圖所示,iTOP-iMX6 的實時時鐘,設備節(jié)點和“/dev/rtc0”可以正常調用。
05.jpg (5.92 KB, 下載次數(shù): 60)
下載附件
2019-9-2 11:12 上傳
測試程序 topeet_rtctest 需要傳遞設備節(jié)點,如果不傳遞設備節(jié)點,默認使用的是
“/dev/rtc0”,所以默認也是可以正常運行,如下圖所示,使用命令“./topeet_rtctest”運
行程序。
06.jpg (9.28 KB, 下載次數(shù): 56)
下載附件
2019-9-2 11:12 上傳
最后測試一下“/dev/rtc”節(jié)點,如下圖所示,使用命令
“./topeet_rtctest /dev/rtc”,設備節(jié)點“/dev/rtc”也是可以正常運行。
07.jpg (10.54 KB, 下載次數(shù): 56)
下載附件
2019-9-2 11:12 上傳
未標題-3.jpg (29.41 KB, 下載次數(shù): 52)
下載附件
2019-9-2 11:13 上傳
|