iTOP-iMX6-設備樹內核-實時時鐘RTC以及Linux-c測試例程

當 Linux 開發者談論一個實時時鐘,他們一般指的是某種能記錄牆上時間,而且有備用電
池,以致於在系統關機的時候仍然能夠工做的器件。
Linux 有兩個系列普遍兼容的用戶空間 RTC 設備節點:
• /dev/rtc : PC 機及兼容機系統提供的 RTC 接口,這種接口對於非 x86 系統來講不是
很輕便。
• /dev/rtc0,/dev/rtc1 :是各類系統上,被各類 RTC 芯片所支持的框架的一部分。
iTOP-iMX6 開發板以上兩種均支持,設備節點對應爲「/dev/rtc」和「/dev/rtc0」。
iTOP-iMX6 開發板的內核鏡像,默認支持實時時鐘,另外還須要有鈕釦電池,以下圖所示。
若是用戶購買的時候,指明須要順豐空運,那麼開發板上應該是不帶有鈕釦電池的,電池的型
號爲 cr1220,用戶可自行購買。
linux

01.jpg

 

iTOP-iMX6 的實時時鐘 RTC 驅動是內核目錄下的「drivers/rtc/rtc*」文件,以下圖所
示。
shell

02.jpg

 

壓縮包中有「topeet_rtctest.tar.gz」,其中有源碼和二進制文件。源碼文件中包含獲取
實時時鐘和打印出實時時鐘時間的代碼。
假如用戶須要在代碼中設置時間,則須要使用 date 和 hwclock 等命令。若是須要在代碼
中增長設置時間的命令,能夠使用函數「settimeofday」,不過多數狀況下,在代碼中直接
框架

調用 date 和 hwclock 命令便可。另外在程序中調用 linux 命令,能夠參考「iTOP-開發板-
MiniLinux-C 程序調用 shell 命令」和「iTOP-開發板-QtE-調用 shell 命令使用文檔」文檔。
首先測試下命令行設置時間和測試。
以下圖所示,能夠使用「date」命令能夠直接查看系統時間,上電開機以後(斷電,取下
鈕釦電池,上電開機),時間是默認的時間「Thu Jan 1 08:02:30 CST 1970」。
函數

03.jpg

 

使用命令「date -s "2019-07-27 10:06:00"」設置系統時間,接着使用命令「date」
能夠查到系統時間已經更新,接着使用命令「hwclock --systohc」將系統時間同步到 RTC 實
時時鐘,以下圖所示。
測試

04.jpg

 

安裝上鈕釦電池,斷電再開機,使用命令「date」,時間仍然是 2019 年,說明實時時鐘
起做用了。
測試程序讀取時間測試
以下圖所示,iTOP-iMX6 的實時時鐘,設備節點和「/dev/rtc0」能夠正常調用。
spa

05.jpg

 

測試程序 topeet_rtctest 須要傳遞設備節點,若是不傳遞設備節點,默認使用的是
「/dev/rtc0」,因此默認也是能夠正常運行,以下圖所示,使用命令「./topeet_rtctest」運
行程序。
命令行

06.jpg

 

最後測試一下「/dev/rtc」節點,以下圖所示,使用命令
「./topeet_rtctest /dev/rtc」,設備節點「/dev/rtc」也是能夠正常運行。
blog

07.jpg

 

未標題-3.jpg

相關文章
相關標籤/搜索