新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于Xenomai的實(shí)時(shí)Linux分析與研究

基于Xenomai的實(shí)時(shí)Linux分析與研究

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

在用戶(hù)層,應(yīng)用程序通過(guò)系統(tǒng)調(diào)用可以迅速得到struct_ipipe_tscinfo結(jié)構(gòu)體中的數(shù)據(jù)。而且為了避免受到緩存的影響,將此結(jié)構(gòu)體變量存放在的向量頁(yè)中。

本文引用地址:http://m.butianyuan.cn/article/152624.htm

內(nèi)核通過(guò)函數(shù)_ipipe_mach_get_tscinfo來(lái)填充struct_ipipe_tscinfo結(jié)構(gòu)體變量中的各項(xiàng)內(nèi)容:


其中,info一>typte說(shuō)明在S3C2410平臺(tái)上TSC是Decrementer硬件計(jì)數(shù)方式的;info一>u.dec.counter用來(lái)將Decrementer計(jì)數(shù)器的物理地址設(shè)定為0x51000038;info一>u.dec.mask掩碼用來(lái)注明使用Dec―rementet。計(jì)數(shù)器中的特定位;info一>u.dec.tsc指向存放64位TSC值的區(qū)域。
用戶(hù)層的程序運(yùn)行時(shí),程序都會(huì)通過(guò)系統(tǒng)調(diào)用得到內(nèi)核填充好的struct_ipipe_tscinfo結(jié)構(gòu)體變量。具體實(shí)現(xiàn)可參考編譯用戶(hù)層程序時(shí)用到的,由所提的頭文件/usr/xenomai/include/asm/syscall.h。
2.3 Xenomai多API構(gòu)架
除了提供,Xenomai的另一個(gè)目的是使的實(shí)時(shí)操作系統(tǒng)能提供與傳統(tǒng)的工業(yè)級(jí)實(shí)時(shí)操作系統(tǒng)(包括VxWorks、pSOS+、VRTX或者uITRON)功能相同的API。這樣,可以讓這些操作系統(tǒng)下的應(yīng)用程序能夠很容易地移植到GNU/Linux環(huán)境中,同時(shí)保持很好的實(shí)時(shí)性。
Xenomai的核心技術(shù)表現(xiàn)為使用一個(gè)實(shí)時(shí)微內(nèi)核(real―time nucleus)來(lái)構(gòu)建這些實(shí)時(shí)API,也稱(chēng)作“skin”。在實(shí)時(shí)核復(fù)用的基礎(chǔ)上,一個(gè)skin可以很好地模擬一種實(shí)時(shí)操作系統(tǒng)的API。它的結(jié)構(gòu)圖可以參考圖2。

圖2中,Native是Xenomai自帶的API,各類(lèi)API都有著同等的地位,都獨(dú)立地同一個(gè)實(shí)時(shí)微內(nèi)核。這樣做可以讓內(nèi)核的優(yōu)點(diǎn)被外層所有的API很好地繼承下來(lái)。更重要的是,實(shí)時(shí)微內(nèi)核提供的服務(wù)被外層各種API以不同的方式表現(xiàn)出來(lái),由此可以增強(qiáng)整個(gè)系統(tǒng)的強(qiáng)壯性。
編制實(shí)時(shí)程序時(shí),在很多實(shí)時(shí)操作系統(tǒng)上只能在內(nèi)核層實(shí)現(xiàn);而編制實(shí)時(shí)內(nèi)核模塊時(shí),會(huì)受到內(nèi)核的限制,比如有些實(shí)時(shí)內(nèi)核不支持浮點(diǎn)運(yùn)算,模塊出錯(cuò)時(shí)容易使整個(gè)系統(tǒng)掛起,而且內(nèi)核模塊的調(diào)試比較困難。Xenomai能夠支持較好的用戶(hù)層實(shí)時(shí),這為編制實(shí)時(shí)性要求不是非常高的實(shí)時(shí)程序提供了一個(gè)有效途徑。下面這個(gè)用戶(hù)層實(shí)時(shí)例程使用的是Xenomai提供的Native API:


從程序中可以看出,Xenomai的用戶(hù)層實(shí)時(shí)程序的周期可以輕易地設(shè)定到μs級(jí),所以它完全可以適用于一般實(shí)時(shí)性要求的工程應(yīng)用。


3 總 結(jié)
本文首先簡(jiǎn)單介紹了實(shí)時(shí)操作系統(tǒng),了Linux 2.6內(nèi)核實(shí)時(shí)性能的不足;然后著重介紹了一個(gè)Linux實(shí)時(shí)化的解決方案――Xenomai,了Xenomai的Adeos構(gòu)架基礎(chǔ),簡(jiǎn)要說(shuō)明了Xenomai用戶(hù)層實(shí)時(shí)的實(shí)現(xiàn),以及Xenomai支持多種實(shí)時(shí)操作系統(tǒng)的API的新特點(diǎn)。本文給出的Xenomai的用戶(hù)層實(shí)時(shí)例程已經(jīng)成功地在多個(gè)平臺(tái)上運(yùn)行過(guò),表明Xenomai用戶(hù)程序在多種硬件平臺(tái)上有很好的移植性。

linux操作系統(tǒng)文章專(zhuān)題:linux操作系統(tǒng)詳解(linux不再難懂)

上一頁(yè) 1 2 下一頁(yè)

評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉