《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > VxWorks for x86系統(tǒng)中實時時鐘的應(yīng)用
VxWorks for x86系統(tǒng)中實時時鐘的應(yīng)用
摘要: 為了獲得一個有實際使用價值的系統(tǒng)時間,我們就需要系統(tǒng)時間能與目標(biāo)板的實時時鐘保持同步。實際上。在VxWorks for x86系列的機(jī)器中,可以通過讀寫特定的端口來讀取/設(shè)置保存在BIOS中的實時時鐘。
Abstract:
Key words :

引言

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

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

1 VxWorks for x86系統(tǒng)中的系統(tǒng)時間

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

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

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

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

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

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

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

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

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

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

     函數(shù)BCD2BIN ()用來將BCD碼轉(zhuǎn)換為十進(jìn)制數(shù),它的輸入為BCD碼,返回值為十進(jìn)制數(shù)。其內(nèi)容如下:

     函數(shù)BIOSTimeGet ()用來從端口讀取BIOS時間,在該函數(shù)內(nèi)部調(diào)用BCD2BIN()函數(shù),其返回值為tm型結(jié)構(gòu)的日期和時間。具體內(nèi)容如下:



函數(shù)SetSysTime ()可用來將系統(tǒng)時間設(shè)置為實時時鐘時間,在該函數(shù)的內(nèi)部調(diào)用BIOSTimeGet ()函數(shù)的內(nèi)容如下:

    調(diào)用SetSysTime()函數(shù)后再調(diào)用GetSysTime()函數(shù),其顯示內(nèi)容就是當(dāng)前實時時鐘的時間,這表明系統(tǒng)時間和實時時鐘已實現(xiàn)了同步。

3 實時時鐘的特定時間設(shè)置

    在某些應(yīng)用中,有時我們也希望能校正實時時鐘,也就是能將BIOS中的實時時鐘設(shè)置為某個特定時間。這個功能同樣可以通過訪問端口0x70,0x71來實現(xiàn)。

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

    函數(shù)BIN2BCD()可用來將十進(jìn)制數(shù)轉(zhuǎn)換為BCD碼,它的輸入為十進(jìn)制數(shù),返回值為BCD碼。其內(nèi)容如下:

     函數(shù)BIOSTimeSet()用來通過端口設(shè)置BIOS時間,在該函數(shù)內(nèi)部調(diào)用BIN2BCD()函數(shù),它的輸入為tm型結(jié)構(gòu)的日期和時間。其內(nèi)容如下:

     函數(shù)SetBIOSTime()可用來將當(dāng)前時間或某個特定時間(如:2009-10-1 10:10:10)設(shè)置為實時時鐘的時間,在該函數(shù)的內(nèi)部調(diào)用BIOSTime-Set ()函數(shù)的內(nèi)容如下:

   在調(diào)用SetBIOSTime()函數(shù)設(shè)置實時時鐘后,再調(diào)用SetSysTime ()函數(shù)即可使系統(tǒng)時間與剛設(shè)置的實時時鐘保持同步。

    該程序在VxWorks5.4.2,Tomad02.0.2,BSP包為pcPentium的Pentium主板上已調(diào)試運(yùn)行通過。

4 結(jié)束語

    VxWorks因其卓越的性能在嵌入式實時操作系統(tǒng)領(lǐng)域占據(jù)了領(lǐng)導(dǎo)地位,x86雖然不是一個專門的嵌入式平臺,但因其具有低廉的價格、豐富的軟硬件資源而得到了廣泛的應(yīng)用。該系統(tǒng)可通過操作目標(biāo)板上的硬件端口來讀寫保存在BIOS中的實時時鐘,并使VxWorks的系統(tǒng)時間和實時時鐘保持同步。這個方法為VxWorks for x86這一目前流行的嵌入式平臺中的相關(guān)應(yīng)用提供了支持。
 

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
欧美在线免费观看亚洲| 亚洲小说欧美另类社区| 一区二区三区视频观看| 亚洲高清网站| 在线看国产日韩| 精品1区2区3区4区| 国产一区91| 国产日韩欧美在线播放| 国产女主播一区二区| 国产酒店精品激情| 国产日韩欧美视频在线| 国产美女诱惑一区二区| 国产伦精品一区二区三区高清版| 国产精品久久久久久久久久ktv| 欧美日韩一区二区三区高清| 欧美日韩亚洲一区二| 欧美日韩在线播放一区二区| 欧美三级乱码| 国产精品超碰97尤物18| 国产精品日韩在线观看| 国产欧美日韩在线 | 国产亚洲午夜高清国产拍精品| 国产精品影视天天线| 国产日韩一区在线| 一区二区亚洲| 亚洲精品乱码久久久久久日本蜜臀| 亚洲精品1区| avtt综合网| 亚洲欧美韩国| 久久精品视频播放| 亚洲精品免费一二三区| 99国产精品久久久久久久| 亚洲视频在线播放| 新67194成人永久网站| 久久精品视频导航| 蜜臀av国产精品久久久久| 欧美精品二区| 国产精品国产三级国产普通话蜜臀 | 欧美成熟视频| 欧美日韩视频免费播放| 国产精品―色哟哟| 国产综合欧美在线看| 亚洲国产日韩欧美在线99| 亚洲免费福利视频| 亚洲免费在线| 亚洲国产一区二区a毛片| 一区二区三区国产| 欧美在线国产精品| 蜜乳av另类精品一区二区| 欧美日韩国产首页| 国产精品一区二区在线观看网站| 狠狠色狠狠色综合日日91app| 亚洲欧洲免费视频| 亚洲男人的天堂在线aⅴ视频| 久久精品免费观看| 国产精品99久久久久久人| 久久激情五月激情| 欧美精品在线免费| 国产麻豆日韩欧美久久| 在线日韩av永久免费观看| 中国女人久久久| 亚洲韩国精品一区| 午夜一区二区三视频在线观看| 另类酷文…触手系列精品集v1小说| 欧美日韩免费观看一区=区三区| 国产伦精品一区二区三区免费| 亚洲高清精品中出| 亚洲一区影院| 日韩亚洲成人av在线| 欧美一区日本一区韩国一区| 你懂的亚洲视频| 国产欧美日韩综合| 亚洲精品一区二区三区在线观看| 午夜精品影院| 中文成人激情娱乐网| 久久男人资源视频| 欧美视频手机在线| 影音先锋一区| 先锋影音网一区二区| 一区二区三区|亚洲午夜| 久久天天躁狠狠躁夜夜爽蜜月| 国产精品福利在线观看网址| 亚洲成人中文| 欧美亚洲自偷自偷| 亚洲制服少妇| 欧美精品一区在线播放| 国内精品美女在线观看| 亚洲一区二区动漫| 日韩一区二区精品在线观看| 久久一区精品| 国产日韩欧美一二三区| 国产精品99久久久久久久久| 亚洲伦理网站| 蜜臀99久久精品久久久久久软件 | 亚洲人体一区| 久久久国产精品一区二区中文 | 国产日韩欧美在线播放| 亚洲午夜av在线| 一区二区三区|亚洲午夜| 欧美高清视频免费观看| 国产手机视频一区二区| 亚洲午夜电影| 亚洲天堂av在线免费| 欧美精品一区二区三区高清aⅴ| 禁断一区二区三区在线| 久久成人综合视频| 久久久久久久网| 国产欧美日韩一区二区三区| 亚洲天堂第二页| 亚洲网站视频福利| 欧美日韩在线影院| 日韩一级在线观看| 一区二区三区福利| 欧美日韩精品一区二区天天拍小说| 亚洲国产成人一区| 亚洲精品中文字幕在线| 免费亚洲电影| 一区福利视频| 亚洲国产日韩一级| 欧美mv日韩mv国产网站app| 影音国产精品| 最新国产拍偷乱拍精品| 六月天综合网| 亚洲国产成人av在线| 亚洲精品乱码视频| 欧美久久久久久久| 日韩视频免费观看| 亚洲一二三四久久| 国产精品高清在线| 亚洲欧美日韩国产一区二区三区 | 久久久久.com| 国内精品嫩模av私拍在线观看| 久久国产毛片| 麻豆精品网站| 亚洲国产精品va在线看黑人| 亚洲免费观看视频| 欧美日韩国产综合视频在线观看中文 | 亚洲精品综合| 亚洲图片欧美一区| 国产精品久久久久久久9999 | 欧美日韩理论| 在线视频日本亚洲性| 午夜日韩在线| 国产一区二区高清视频| 亚洲国产欧美在线| 欧美日本不卡| 亚洲视频免费在线| 久久国产福利国产秒拍| 一区福利视频| 一本在线高清不卡dvd| 国产精品对白刺激久久久| 午夜精品一区二区三区电影天堂| 久久综合久久88| 亚洲欧洲一区| 亚洲综合导航| 好吊一区二区三区| 亚洲青色在线| 国产精品久久午夜| 欧美资源在线观看| 欧美看片网站| 亚洲欧美网站| 欧美高清你懂得| 亚洲制服av| 免费亚洲电影在线| 一区二区av在线| 久久人人97超碰国产公开结果 | 欧美日韩国产美| 亚洲男同1069视频| 欧美成人黑人xx视频免费观看| 夜夜精品视频| 久久伊人一区二区| 一区二区欧美日韩视频| 久久久久久久综合色一本| 99re这里只有精品6| 久久精品女人| 日韩亚洲国产欧美| 久久嫩草精品久久久精品| 日韩一级黄色av| 久久在线视频在线| 亚洲视频观看| 欧美二区乱c少妇| 亚洲欧美美女| 欧美精品观看| 久久er99精品| 欧美四级剧情无删版影片| 久久国产精品亚洲va麻豆| 欧美日韩精品免费观看视频| 欧美一进一出视频| 欧美日韩日日骚| 亚洲国产cao| 国产精品综合视频| 一区二区电影免费在线观看| 国模精品娜娜一二三区| 亚洲影视综合| 亚洲国产一区二区精品专区| 久久精品国产精品亚洲精品| 日韩午夜在线播放| 男女视频一区二区| 午夜亚洲性色福利视频| 欧美午夜免费电影|