<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > Linux實(shí)時(shí)化解決方案Xenomai的原理及應用

Linux實(shí)時(shí)化解決方案Xenomai的原理及應用

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


在基于A(yíng)deos的系統中,分為多個(gè)域。每個(gè)域中獨立運行一個(gè)操作系統(或者是實(shí)現一定功能的程序模塊),每個(gè)域可以有獨立的地址空間和類(lèi)似于進(jìn)程、虛擬內存等的軟件抽象層。在各個(gè)域下層有一個(gè)Adeos通過(guò)虛擬中斷等方法來(lái)調度上面的各個(gè)域。在基于A(yíng)deos的系統中,存在著(zhù)A、B、C、D四種類(lèi)型的交互,如圖1所示。

A類(lèi)交互是各個(gè)域直接操作硬件設備,包括訪(fǎng)問(wèn)內存等;B類(lèi)交互指當Adeos接收到硬件中斷后,會(huì )根據中斷來(lái)對相應的域進(jìn)行中斷服務(wù);C類(lèi)交互指當前域內的操作系統主動(dòng)向Adeos請求某些服務(wù);D類(lèi)交互是指Adeos接收硬件產(chǎn)生的中斷和異常,同時(shí)也可以直接控制硬件。

2.2 用戶(hù)層實(shí)時(shí)的實(shí)現

除了在內核層利用Adeos實(shí)現了硬實(shí)時(shí)外,它在用戶(hù)空間也有很好的實(shí)時(shí)性。在S3C2410平臺上,為了實(shí)現用戶(hù)層的實(shí)時(shí),實(shí)現了一個(gè)硬件計數器--Decrementer.這個(gè)硬件計數器可以在用戶(hù)空問(wèn)里很好地模擬TSC(Time Stamp Counter,時(shí)間戳計數器)。

同時(shí),Xenomai在Linux內核中加入了一個(gè)全新的數據結構__ipipe_tscinfo,可以通過(guò)此數據結構變量存放用戶(hù)層需要的數據。該數據結構組成如下:

用戶(hù)層,應用程序通過(guò)系統調用可以迅速得到struct_ipipe_tscinfo結構體中的數據。而且為了避免受到緩存的影響,Xenomai將此結構體變量存放在Linux的向量頁(yè)中。

內核通過(guò)函數_ipipe_mach_get_tscinfo來(lái)填充struct_ipipe_tscinfo結構體變量中的各項內容:

其中,info一>typte說(shuō)明在S3C2410平臺上TSC是基于Decrementer硬件計數方式的;info一>u.dec.counter用來(lái)將Decrementer計數器的物理地址設定為0x51000038;info一>u.dec.mask掩碼用來(lái)注明使用Dec-rementet.計數器中的特定位;info一>u.dec.tsc指向存放64位TSC值的區域。

在Xenomai用戶(hù)層的實(shí)時(shí)程序運行時(shí),程序都會(huì )通過(guò)系統調用得到內核填充好的struct_ipipe_tscinfo結構體變量。具體實(shí)現可參考編譯用戶(hù)層實(shí)時(shí)程序時(shí)用到的,由Xenomai所提的頭文件/usr/xenomai/include/asm/syscall.h.

2.3 Xenomai多API構架

除了提供Linux硬實(shí)時(shí),Xenomai的另一個(gè)目的是使基于Linux的能提供與傳統的工業(yè)級(包括VxWorks、pSOS+、VRTX或者uITRON)功能相同的API.這樣,可以讓這些操作系統下的應用程序能夠很容易地移植到GNU/Linux環(huán)境中,同時(shí)保持很好的實(shí)時(shí)性。

linux相關(guān)文章:linux教程




評論


相關(guān)推薦

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

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>