在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            關(guān) 閉

            新聞中心

            EEPW首頁 > 工控自動化 > 設(shè)計(jì)應(yīng)用 > VxWorks for x86系統(tǒng)中實(shí)時(shí)時(shí)鐘的應(yīng)用

            VxWorks for x86系統(tǒng)中實(shí)時(shí)時(shí)鐘的應(yīng)用

            作者: 時(shí)間:2010-06-17 來源:網(wǎng)絡(luò) 收藏
            0引言

            是美國WRS(Wind River System)公司推出的一個(gè)具有微內(nèi)核、可裁剪的高性能強(qiáng)實(shí)時(shí)操作,該實(shí)時(shí)操作在航空、廣播、運(yùn)輸、醫(yī)療、自動化生產(chǎn)和科學(xué)研究等領(lǐng)域中有著廣泛的應(yīng)用,尤其是在國防和軍事上的一些高精尖技術(shù)及實(shí)時(shí)性要求極高的領(lǐng)域中,就更體現(xiàn)出了其優(yōu)越的性能。

            X86或80X86是Intel公司開發(fā)的微處理器體系結(jié)構(gòu)的泛稱。采用X86架構(gòu)的Intel CPU及其兼容CPU都使用X86指令集,作為個(gè)人計(jì)算機(jī)的標(biāo)準(zhǔn)平臺,它們構(gòu)成了當(dāng)今數(shù)量最大的CPU陣營。可支持多種不同體系結(jié)構(gòu)的32位CPU,其中就包括現(xiàn)在使用最為廣泛的X86系列CPU。

            1 中的系統(tǒng)時(shí)間

            我們知道,在VxWorks 系統(tǒng)中沒有直接讀取RTC(實(shí)時(shí)時(shí)鐘控制器)的函數(shù),在目標(biāo)板每次加電或重啟后,用time.h中的函數(shù)第一次讀到的時(shí)間始終是“THU JAN 01 00:00:00 1970”。這里取到的系統(tǒng)時(shí)間是從開機(jī)到現(xiàn)在的時(shí)間,也就是說,VxWorks的系統(tǒng)日期和時(shí)間是相對于一個(gè)基準(zhǔn)的日期時(shí)間計(jì)算出來的,這一基準(zhǔn)時(shí)間就是“THU JAN O1 00:00:00 1970”,其他日期時(shí)間對系統(tǒng)來說都是相對于這一基準(zhǔn)時(shí)間已經(jīng)過的秒數(shù)。因此,這樣取到的系統(tǒng)時(shí)間是沒有任何使用價(jià)值的。

            然而,在實(shí)際應(yīng)用中,我們經(jīng)常需要用到“真實(shí)的”VxWorks系統(tǒng)時(shí)間,比如在文件系統(tǒng)中創(chuàng)建文件時(shí),我們就希望文件創(chuàng)建的時(shí)間是實(shí)時(shí)時(shí)鐘的時(shí)間,同時(shí)在日志文件中記錄的時(shí)間也希望是實(shí)時(shí)時(shí)鐘的時(shí)間。但是,在文件系統(tǒng)中能直接訪問的卻是上述那個(gè)“沒有使用價(jià)值的”系統(tǒng)時(shí)間。這種情況就為應(yīng)用帶來了很大的不便。

            為了獲得一個(gè)有實(shí)際使用價(jià)值的系統(tǒng)時(shí)間,我們就需要系統(tǒng)時(shí)間能與目標(biāo)板的實(shí)時(shí)時(shí)鐘保持同步。

            實(shí)際上。在VxWorks 系列的機(jī)器中,可以通過讀寫特定的端口來讀?。O(shè)置保存在BIOS中的實(shí)時(shí)時(shí)鐘。

            2 VxWorks for x86中系統(tǒng)時(shí)間和實(shí)時(shí)時(shí)鐘的同步

            使用VxWorks的ansiTime庫(time.h)中的time()函數(shù)可以讀取當(dāng)前秒鐘形式的日歷時(shí)間,也就是系統(tǒng)加電后相對于基準(zhǔn)時(shí)間所經(jīng)過的秒數(shù);使用locatime ()函數(shù)則可以將此日歷時(shí)間轉(zhuǎn)換成tm型結(jié)構(gòu)的日期和時(shí)間;之后,再使用asctime()函數(shù)可將tm型結(jié)構(gòu)的日期和時(shí)間轉(zhuǎn)換成包含日期和時(shí)間的字符串。

            使用以上這些函數(shù)可以編寫一個(gè)顯示當(dāng)前系統(tǒng)時(shí)間的函數(shù)GetSysTime(),其內(nèi)容如下:



            系統(tǒng)加電后,調(diào)用GetSysTime (函數(shù),其顯示內(nèi)容為“time is:THU JAN 01 00:00:00 1970”。而在實(shí)際應(yīng)用中,通常希望獲取保存在BIOS中的實(shí)時(shí)時(shí)鐘,并使用這個(gè)實(shí)時(shí)時(shí)鐘來設(shè)置系統(tǒng)時(shí)間,從而使系統(tǒng)時(shí)間與實(shí)時(shí)時(shí)鐘保持同步。因此,在VxWorks for x86系統(tǒng)中,可以通過讀寫端口0x70,0x71來訪問BIOS中的實(shí)時(shí)時(shí)鐘。其中,端口地址0x70對應(yīng)的是實(shí)時(shí)時(shí)鐘的索引寄存器(表1所列是實(shí)時(shí)時(shí)鐘索引寄存器的定義),端口地址0x71對應(yīng)的是實(shí)時(shí)時(shí)鐘的數(shù)據(jù)寄存器。實(shí)時(shí)時(shí)鐘的秒、分、時(shí),日、月、年在索引寄存器中的存放地址分別是0x00、0x02、0x04,0x07、0x08、0x09。

            需要注意的是,從端口中讀到的數(shù)據(jù),其格式為BCD碼,因此在使用前還需要將其轉(zhuǎn)換為十進(jìn)制數(shù)。

            在把轉(zhuǎn)換后的實(shí)時(shí)時(shí)鐘的秒、分、時(shí),日、月、年等數(shù)據(jù)賦給tm型結(jié)構(gòu)變量的相應(yīng)成員后,可使用ansiTime庫(time.h)中的mktime ()函數(shù)將tm型結(jié)構(gòu)的日期和時(shí)間轉(zhuǎn)換成秒鐘形式的日歷時(shí)間,并烙其賦給timespec型結(jié)構(gòu)變量的tv-sec成員(timespec型結(jié)構(gòu)的tv_nsec成員可設(shè)置為0),這樣,通過使用clockLjb庫中的clock_settime()函數(shù)就可以將系統(tǒng)時(shí)間設(shè)置為實(shí)時(shí)時(shí)鐘的時(shí)間,從而實(shí)現(xiàn)系統(tǒng)時(shí)間與實(shí)時(shí)時(shí)鐘同步。




            上一頁 1 2 3 下一頁

            關(guān)鍵詞: VxWorks for x86 系統(tǒng)

            評論


            相關(guān)推薦

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

            關(guān)閉