日本a√视频在线,久久青青亚洲国产,亚洲一区欧美二区,免费g片在线观看网站

        <style id="k3y6c"><u id="k3y6c"></u></style>
        <s id="k3y6c"></s>
        <mark id="k3y6c"></mark>
          
          

          <mark id="k3y6c"></mark>

          新聞中心

          linux RTC測(cè)試

          作者: 時(shí)間:2016-10-08 來(lái)源:網(wǎng)絡(luò) 收藏

          先簡(jiǎn)單介紹date與hwclock的異同。

          本文引用地址:http://yuyingmama.com.cn/article/201610/305939.htm

          相同點(diǎn):都是表示時(shí)間的。

          差異點(diǎn):

          date 是表示系統(tǒng)的時(shí)間,假如在系統(tǒng)啟動(dòng)時(shí)沒(méi)有設(shè)置的話,系統(tǒng)都會(huì)從1970年開始。

          hwclock是表示硬件的時(shí)間,如時(shí)鐘芯片或主芯片自帶的rtc里面的時(shí)間。

          Date就不做介紹了,看下hwclock

          # hwclock --help

          BusyBox v1.14.1 (2010-01-22 10:35:16 CST) multi-call binary

          Usage: hwclock [-r] [-s] [-w] [-l] [-u] [-f FILE]

          Query and set hardware clock (RTC)

          Options:

          -r Show hardware clock time

          -s Set system time from hardware clock

          -w Set hardware clock to system time

          -u Hardware clock is in UTC

          -l Hardware clock is in local time

          -f FILE Use specified device (e.g. /dev/rtc2)

          應(yīng)該說(shuō)解釋的很詳細(xì)了,但是-s與-w選項(xiàng),我個(gè)人覺(jué)得解釋的會(huì)讓人誤解,可以這么理解

          -s Set system time from hardware clock 從硬件時(shí)鐘讀取數(shù)據(jù)到系統(tǒng)時(shí)鐘,主要用于剛開始時(shí),系統(tǒng)時(shí)鐘從硬件時(shí)鐘讀取時(shí)間信息,如果沒(méi)有這步,則系統(tǒng)時(shí)間就會(huì)為1970年了。

          -w Set hardware clock to system time 把系統(tǒng)時(shí)鐘設(shè)置到硬件時(shí)鐘里面,主要用于設(shè)置硬件時(shí)鐘的時(shí)間,比如在使用busybox制作的根文件系統(tǒng)中,要設(shè)置時(shí)間有2個(gè)步驟:1,先使用date設(shè)置系統(tǒng)時(shí)間;2,再利用hwclock –w把當(dāng)前系統(tǒng)時(shí)間寫到硬件時(shí)鐘里面。如果沒(méi)有第二步,下次啟動(dòng)時(shí),系統(tǒng)時(shí)間是不會(huì)更新的。

          可以看看下面例子:

          # date

          Thu Jan 1 12:10:11 UTC 1970

          # hwclock

          Thu Jan 1 12:10:13 1970 0.000000 seconds

          時(shí)間是一致的(當(dāng)然了秒不一樣,是我操作需要時(shí)間的原因)

          用date 設(shè)置下時(shí)間

          # date -s 13:00:00

          Thu Jan 1 13:00:00 UTC 1970

          # date

          Thu Jan 1 13:00:02 UTC 1970

          # hwclock

          Thu Jan 1 12:14:27 1970 0.000000 seconds

          很明顯設(shè)置后date 與hwclock顯示不一樣

          然后,使用

          # hwclock -w

          # date

          Thu Jan 1 13:01:27 UTC 1970

          # hwclock

          Thu Jan 1 13:01:29 1970 0.000000 seconds

          很明顯,時(shí)間又一致了。

          然后,再來(lái)看下驅(qū)動(dòng)。

          先把a(bǔ)t91sam9263自帶的rtc配置上,啟動(dòng)的時(shí)候提示

          rtc-at91sam9 at91_rtt.0: hctosys: unable to read the hardware clock

          于是用hwclock來(lái)檢查,到底是哪里出了問(wèn)題

          # hwclock

          hwclock: can't open '/dev/misc/rtc': No such file or directory

          沒(méi)有這個(gè)設(shè)備,需要建立一個(gè)

          查看下rtc設(shè)備號(hào)

          # cat /proc/devices

          Character devices:

          1 mem

          2 pty

          3 ttyp

          4 /dev/vc/0

          4 tty

          4 ttyS

          5 /dev/tty

          5 /dev/console

          5 /dev/ptmx

          7 vcs

          10 misc

          13 input

          90 mtd

          128 ptm

          136 pts

          153 spi

          253 pcmcia

          254 rtc

          Block devices:

          1 ramdisk

          7 loop

          31 mtdblock

          179 mmc

          #

          rtc是254,建立設(shè)備

          # mknod /dev/misc/rtc c 254 0

          這里查看下busybox的源碼

          int FAST_FUNC rtc_xopen(const char **default_rtc, int flags)

          {

          int rtc;

          if (!*default_rtc) {

          *default_rtc = /dev/rtc;

          rtc = open(*default_rtc, flags);

          if (rtc >= 0)

          return rtc;

          *default_rtc = /dev/rtc0;

          rtc = open(*default_rtc, flags);

          if (rtc >= 0)

          return rtc;

          *default_rtc = /dev/misc/rtc;

          }

          return xopen(*default_rtc, flags);

          }

          就會(huì)發(fā)現(xiàn)調(diào)用hwclock時(shí)做了3次嘗試,隨便你用/dev/rtc,/dev/rtc0,/dev/misc/rtc哪個(gè)設(shè)備都可以,若3個(gè)都沒(méi)有就會(huì)提示錯(cuò)誤。

          為了簡(jiǎn)單,以后就弄個(gè)/dev/rtc0

          # mknod /dev/rtc0 c 254 0

          再用hwclock 查看下

          # hwclock

          Thu Jan 1 00:05:41 1970 0.000000 seconds

          就有了時(shí)間了。

          如果時(shí)鐘芯片或主芯片自帶的時(shí)鐘格式有問(wèn)題的話,會(huì)出現(xiàn)如下錯(cuò)誤

          # hwclock

          hwclock: RTC_RD_TIME: Invalid or incomplete multibyte or wide character

          這里就需要把系統(tǒng)的時(shí)間設(shè)置到時(shí)鐘芯片或主芯片自帶的rtc里面去,如下

          #hwclock –w

          然后rtc就可以用了。



          關(guān)鍵詞:

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉