[導讀]VxWorks for x86系統(tǒng)中實時時鐘的應(yīng)用
0 引言
VxWorks是美國WRS(Wind River System)公司推出的一個具有微內(nèi)核、可裁剪的高性能強實時操作系統(tǒng),該實時操作系統(tǒng)在航空、廣播、運輸、醫(yī)療、自動化生產(chǎn)和科學研究等領(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指令集,作為個人計算機的標準平臺,它們構(gòu)成了當今數(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ù),在目標板每次加電或重啟后,用time.h中的函數(shù)第一次讀到的時間始終是“THU JAN 01 00:00:00 1970”。這里取到的系統(tǒng)時間是從開機到現(xiàn)在的時間,也就是說,VxWorks的系統(tǒng)日期和時間是相對于一個基準的日期時間計算出來的,這一基準時間就是“THU JAN O1 00:00:00 1970”,其他日期時間對系統(tǒng)來說都是相對于這一基準時間已經(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)時間能與目標板的實時時鐘保持同步。
實際上。在VxWorks for x86系列的機器中,可以通過讀寫特定的端口來讀?。O(shè)置保存在BIOS中的實時時鐘。
2 VxWorks for x86中系統(tǒng)時間和實時時鐘的同步
使用VxWorks的ansiTime庫(time.h)中的time()函數(shù)可以讀取當前秒鐘形式的日歷時間,也就是系統(tǒng)加電后相對于基準時間所經(jīng)過的秒數(shù);使用locatime ()函數(shù)則可以將此日歷時間轉(zhuǎn)換成tm型結(jié)構(gòu)的日期和時間;之后,再使用asctime()函數(shù)可將tm型結(jié)構(gòu)的日期和時間轉(zhuǎn)換成包含日期和時間的字符串。
使用以上這些函數(shù)可以編寫一個顯示當前系統(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)換為十進制數(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)時間與實時時鐘同步。
[!--empirenews.page--]函數(shù)BCD2BIN ()用來將BCD碼轉(zhuǎn)換為十進制數(shù),它的輸入為BCD碼,返回值為十進制數(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)容就是當前實時時鐘的時間,這表明系統(tǒng)時間和實時時鐘已實現(xiàn)了同步。
3 實時時鐘的特定時間設(shè)置
在某些應(yīng)用中,有時我們也希望能校正實時時鐘,也就是能將BIOS中的實時時鐘設(shè)置為某個特定時間。這個功能同樣可以通過訪問端口0x70,0x71來實現(xiàn)。
需要注意的是,寫入到端口的數(shù)據(jù),其格式為BCD碼,因此在使用前,需要將數(shù)據(jù)從十進制數(shù)轉(zhuǎn)換為BCD碼。
函數(shù)BIN2BCD()可用來將十進制數(shù)轉(zhuǎn)換為BCD碼,它的輸入為十進制數(shù),返回值為BCD碼。其內(nèi)容如下:
[!--empirenews.page--]函數(shù)BIOSTimeSet()用來通過端口設(shè)置BIOS時間,在該函數(shù)內(nèi)部調(diào)用BIN2BCD()函數(shù),它的輸入為tm型結(jié)構(gòu)的日期和時間。其內(nèi)容如下:
函數(shù)SetBIOSTime()可用來將當前時間或某個特定時間(如: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)試運行通過。
4 結(jié)束語
VxWorks因其卓越的性能在嵌入式實時操作系統(tǒng)領(lǐng)域占據(jù)了領(lǐng)導地位,x86雖然不是一個專門的嵌入式平臺,但因其具有低廉的價格、豐富的軟硬件資源而得到了廣泛的應(yīng)用。該系統(tǒng)可通過操作目標板上的硬件端口來讀寫保存在BIOS中的實時時鐘,并使VxWorks的系統(tǒng)時間和實時時鐘保持同步。這個方法為VxWorks for x86這一目前流行的嵌入式平臺中的相關(guān)應(yīng)用提供了支持。
本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
歐洲藥品管理局人用藥品管理委員會 (CHMP) 的積極建議是基于 EFFISAYIL® 1 研究結(jié)果,該研究是針對泛發(fā)性膿皰型銀屑病 (GPP) 發(fā)作患者的最大的臨床研究[1] 與斑塊狀銀屑病不同,GP...
關(guān)鍵字:
HM
BSP
GP
FOR
(全球TMT2022年10月14日訊)以“自由構(gòu)建 探索無限”為主題的亞馬遜云科技中國峰會在線上召開。在本次為期2天的峰會上,亞馬遜云科技發(fā)布了云計算技術(shù)趨勢展望,宣布“連中外、襄百業(yè)、攜伙伴、促綠色”四大戰(zhàn)略舉措,進...
關(guān)鍵字:
FOR
亞馬遜
SAP
NVIDIA
《財富》雜志(Fortune)公布了2022年財富改變世界(Fortune Change the World)榜單,其中列出了50多家公司,這些公司今年通過盈利戰(zhàn)略和運營對社會或環(huán)境產(chǎn)生了重要影響。榜單包括54家公司:北...
關(guān)鍵字:
美團
FOR
CHANGE
DEVELOPMENT
10月6日,阿科瑪宣布其在華合作伙伴山東澳帆新材料有限公司的生產(chǎn)裝置成功開車,這符合集團先前宣布的發(fā)展氟化物特種解決方案1233zd供應(yīng)的計劃。此外,在其位于美國Calvert City的生產(chǎn)基地,阿科瑪也已啟動1233...
關(guān)鍵字:
FOR
新材料
AN
據(jù)德國聯(lián)邦經(jīng)濟與氣候保護部最新消息,該部委托 WifOR 機構(gòu)所做的 2021 年德國醫(yī)療保健領(lǐng)域經(jīng)濟核算數(shù)據(jù)顯示,德國醫(yī)療保健行業(yè)增長顯著。 數(shù)據(jù)顯示,在 ?2021 年新冠期間,該領(lǐng)域顯著增長,并達到了毛附加價值為...
關(guān)鍵字:
FOR
據(jù)研究機構(gòu)Mercury Research公布的報告顯示,今年二季度全球臺式機CPU出貨量出現(xiàn)了自1994年以來的最大幅度同比降幅。報告稱,市場需求下降和OEM庫存調(diào)整是主要驅(qū)動因素。其中,AMD在二季度與英特爾的競爭中...
關(guān)鍵字:
ARM
AMD
服務(wù)器CPU
X86
現(xiàn)在的汽車,作為“輪子上的計算機”,它需要囊括的已不只是被動安全,信息娛樂已經(jīng)成為汽車制造的新需求,軟件定義汽車已是它的新方向。通過對比X86、ARM與RISC-V的應(yīng)用區(qū)別,就可以很清楚的知道為什么在汽車板塊RISC-...
關(guān)鍵字:
車規(guī)級芯片
RISC-V
X86
ARM
(全球TMT2022年9月21日訊)"邁向智能世界"峰會在華為全聯(lián)接大會(HUAWEI CONNECT 2022)期間舉辦。華為常務(wù)董事、ICT基礎(chǔ)設(shè)施業(yè)務(wù)管理委員會主任汪濤發(fā)表"擁抱5.5G時代,邁向智能世界"主題發(fā)...
關(guān)鍵字:
華為
5G
5G時代
FOR
下一代LinuxONE服務(wù)器擴展了IBM幫助行業(yè)客戶實現(xiàn)可持續(xù)目標的能力,花旗銀行就是很好的例子 北京2022年9月14日 /美通社/ -- IBM(紐約證券交易所:IBM)于美國東部時間9月13日發(fā)布其下一...
關(guān)鍵字:
IBM
Linux
X86
數(shù)據(jù)中心
北京2022年9月10日 /美通社/ -- 9月9日,于美國納斯達克上市的靈活用工下的本地化社區(qū)服務(wù)平臺趣活集團發(fā)布了2021年全年財務(wù)報告。財報顯示,趣活集團2021年全年總營收40.25億元,同比增長56%。 根據(jù)...
關(guān)鍵字:
共享單車
FOR
創(chuàng)始人
納斯達克
新加坡2022年9月5日 /美通社/ -- 全球科技領(lǐng)導者思科(Cisco)在最新發(fā)布的2022年亞洲最佳職場(Best Workplaces in Asia)榜單中排名第二...
關(guān)鍵字:
思科
Cisco
COM
FOR
(全球TMT2022年9月2日訊)休閑虛擬現(xiàn)實(VR)游戲企業(yè)ForeVR Games宣布推出其第三款游戲ForeVR Cornhole。Cornhole現(xiàn)在加入了包括ForeVR Bowl和ForeVR Darts的...
關(guān)鍵字:
FOR
VR
EV
虛擬現(xiàn)實
這款備受歡迎的后院游戲加入熱門運動游戲ForeVR Bowl和ForeVR Darts,作為元宇宙中家庭"快樂時光"游戲選擇 ForeVR Cornhole現(xiàn)已在Oculus Quest 2...
關(guān)鍵字:
VR
FOR
EV
BSP
第15屆亞洲杯板球錦標賽將通過YuppTV在70多個國家/地區(qū)的OTT平臺"直播"。 亞特蘭大2022年8月25日 /美通社/ -- 全球領(lǐng)先的OTT平臺之一YuppTV獲得了2022年亞洲杯板球錦...
關(guān)鍵字:
TV
ASIA
FOR
RIGHT
這檔西班牙語版網(wǎng)絡(luò)系列節(jié)目每周播出,旨在幫助零售交易者應(yīng)對不斷變化的金融市場行情。 澳大利亞墨爾本2022年8月23日 /美通社/ -- 對投資者和交易者來說,過去幾年上演...
關(guān)鍵字:
ST
RS
AD
FOR
(全球TMT2022年8月18日訊)為加速發(fā)展"智慧醫(yī)療",臺北榮民總醫(yī)院(以下稱臺北榮總)引入 IBM Cloud Pak for Data 平臺,運用云原生架構(gòu),打破醫(yī)療數(shù)據(jù)孤島、保護數(shù)據(jù)隱私及安全、降低使用者門坎...
關(guān)鍵字:
FOR
IBM
AI
建模
(全球TMT2022年8月15日訊)全球電子設(shè)計制造大廠USI環(huán)旭電子運用優(yōu)化電路板設(shè)計與線路布局技術(shù)(Placement & Layout Optimization Technology),發(fā)展出Ultra-...
關(guān)鍵字:
FACTOR
FOR
SMALL
ULTRA
(全球TMT2022年8月11日訊)電通(Dentsu)宣布,在領(lǐng)先的全球研究和咨詢公司Forrester Research, Inc新發(fā)布的《Forrester Wave™:2022年第三季度全球營銷服...
關(guān)鍵字:
FOR
TE
ST
RESEARCH
(全球TMT2022年8月10日訊)近日,深圳市江波龍電子股份有限公司(簡稱"江波龍")與華強電子網(wǎng)集團達成合作,F(xiàn)ORESEE品牌入駐華強商城,其存儲系列產(chǎn)品入駐華強商城原廠專區(qū),華強商城成為江波龍的線上銷售和推廣合...
關(guān)鍵字:
華強
FOR
電子
SE
(全球TMT2022年8月10日訊)亞馬遜云科技宣布推出游戲行業(yè)解決方案,為游戲客戶提供從游戲開發(fā)、運行到增長的全生命周期賦能,助力行業(yè)打造"下一代游戲體驗"。亞馬遜云科技通過全球覆蓋的基礎(chǔ)設(shè)施、專門構(gòu)建的行業(yè)解決方案...
關(guān)鍵字:
亞馬遜
FOR
STUDIO
分布式