国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

實(shí)時嵌入式系統(tǒng)中斷的管理與優(yōu)化

2009-08-01 07:06

張 軍

摘要:文章通過對嵌入式內(nèi)核中斷管理技術(shù)的討論,提出“中斷前一后段處理”模型;利用單向量多中斷處理映射技術(shù),解決一些處理器中多個外部中斷共用一個向量的問題,并在提出根據(jù)中斷服務(wù)子程序?qū)νㄓ眉拇嫫鞯男枨蠖M(jìn)行中斷現(xiàn)場保護(hù)的策略。

關(guān)鍵詞:中斷管理模式;嵌入式實(shí)時系統(tǒng);中斷響應(yīng)

中圖分類號:TP3文獻(xiàn)標(biāo)識碼:A

文章編號:1674-1145(2009)06-0126-02

一、概述

嵌入式操作系統(tǒng)是一種支持嵌入式系統(tǒng)應(yīng)用的操作系統(tǒng)軟件。與通用操作系統(tǒng)相比較,嵌入式操作系統(tǒng)在系統(tǒng)實(shí)時高效性、硬件的相關(guān)依賴性、軟件固態(tài)化以及應(yīng)用的專用性等方面具有較為突出的特點(diǎn)。在嵌入式系統(tǒng)的應(yīng)用開發(fā)中,采和嵌入式實(shí)時操作系統(tǒng)(簡稱RTOS)能夠支持多任務(wù),使得程序開發(fā)更加容易,便于維護(hù),同時能夠提高系統(tǒng)的穩(wěn)定性和可靠性。嵌入式實(shí)時系統(tǒng)中斷管理技術(shù)直接影響到系統(tǒng)的實(shí)時響應(yīng)性能。

二、關(guān)于嵌入式內(nèi)核的中斷管理模式的討論

實(shí)時多任務(wù)操作系統(tǒng)是嵌入式應(yīng)用開發(fā)的基礎(chǔ)平臺。嵌入式操作系統(tǒng)相當(dāng)于一個通用而復(fù)雜的主控程序,為嵌入式應(yīng)用軟件提供更強(qiáng)大的開發(fā)平臺和運(yùn)行環(huán)境。因為嵌入式系統(tǒng)已經(jīng)將處理器、中斷、定時器、I/O等資源包裝起來,用一系列的API提供給用戶,應(yīng)用程序可以不關(guān)注底層硬件,直接借用操作系統(tǒng)提供的功能進(jìn)行開發(fā),此時的嵌入式操作系統(tǒng)可以視為一個虛擬機(jī)。隨著嵌入式實(shí)時系統(tǒng)的發(fā)展,為了方便對中斷的處理,系統(tǒng)內(nèi)核常接管中斷的處理。根據(jù)系統(tǒng)內(nèi)核的可搶占或者非搶占性,系統(tǒng)內(nèi)核接管中斷又有兩種不同處理模式。

(一)嵌入式內(nèi)核接管中斷的處理機(jī)制

嵌入式內(nèi)核接管中斷的處理機(jī)制主要包括兩個部分:面向應(yīng)用的編程接口部分和面向底層的處理部分。面向用戶應(yīng)用的編程接口的任務(wù)之一是供支持用戶安裝中斷處理例程。面向底層處理部分可以分為兩個部分:中斷向量表部分和中斷處理部分。中斷向量表部分主要指中斷向量表的定位和向量表中表項內(nèi)容的形式,最常見的形式就是在具體的向量位置存儲的是一些轉(zhuǎn)移程序,轉(zhuǎn)到具體的中斷處理部分;另一種形式也就是中斷向量位置存放具體的中斷處理程序,此僅針對向量號之間彼此有一定的距離,此距離足以存放中斷處理程序。面向底層部分的中斷處理部分,是整個嵌入式內(nèi)核中斷管理的核心。以下是嵌入式內(nèi)核中一些專用的處理方式:(1)在嵌入式內(nèi)核中一般有兩個堆棧:系統(tǒng)棧和任務(wù)棧;(2)一般嵌入式內(nèi)核有兩種形式:搶占式和非搶占式;(3)在嵌入式內(nèi)核中,中斷時機(jī)和調(diào)度時機(jī)直接影響到系統(tǒng)的實(shí)時性。

(二)中斷管理模型

1、中斷前一后段處理模型。在前面嵌入式內(nèi)核中斷管理模式分析中,嵌入式內(nèi)核一般采用中斷統(tǒng)一接管思想,在中斷統(tǒng)一接管中調(diào)用用戶的中斷服務(wù)程序。中斷管理模式中的中斷處理部分又可以細(xì)化,如嵌入式Hnux系統(tǒng)中關(guān)于中斷管理機(jī)制中提出了“前半部”和“后半部”的處理思想。其實(shí)這種中斷管理的思想把中斷處理部分按照重要性分兩部分,將必須要做的中斷處理部分歸為“前半部”,即這部分在中斷處理部分實(shí)施;而將中斷處理中可以延遲操作且影響不大的部分歸為“后半部”,這部分在退出中斷服務(wù)程序后實(shí)施。通過這樣的中斷管理思想減少的中斷服務(wù)時間,為其他外部事件的中斷響應(yīng)提供了更多的時機(jī)。在實(shí)時內(nèi)核中還有其他的中斷處理機(jī)制,它們的思想都是盡量減少中斷處理的時間。“中斷前部”主要完成外部事件發(fā)生中斷請求時,系統(tǒng)對其響應(yīng)所完成的必要功能,如中斷現(xiàn)場保護(hù)、數(shù)據(jù)預(yù)取和預(yù)放等;“置標(biāo)”部分主要通知某個任務(wù)或者線程已有一個中斷發(fā)生,且中斷的前部已完成;“中斷后部”并不是在中斷服務(wù)程序里執(zhí)行。麗是由接收到標(biāo)記或者通知的任務(wù)或者線程來完成的,主要是完成本應(yīng)在中斷服務(wù)里完成的后繼工作。

在此“中斷前一后段處理模型”中,應(yīng)該注意兩個方面:一是如何劃分“中斷前部”和“中斷后部”;二是要考慮“中斷后部”何時執(zhí)行,取決于用于完成“中斷后部”功能的任務(wù)或者線程的優(yōu)先級。

2、單向量多中斷處理映射技術(shù)。不同嵌入式處理器體系中斷向量的支持也不同。為了處理這種多個外部中斷共用一個向量的情況,提出了單向量多中斷處理技術(shù)。當(dāng)外設(shè)中斷觸發(fā)時,首先定位到實(shí)向量位置,調(diào)用中斷統(tǒng)一接口函數(shù),中斷統(tǒng)一接口函數(shù)對外設(shè)中斷觸發(fā)的參數(shù)進(jìn)行測試,尋找到其對應(yīng)的虛向量,從而觸發(fā)虛向量處的回調(diào)函數(shù),從而實(shí)現(xiàn)多個外部中斷通過同一的實(shí)向量到多個虛向量的映射,解決了單向量多中斷處理的問題。

三、實(shí)時嵌入式系統(tǒng)中斷的優(yōu)化

中斷的實(shí)時性是實(shí)時系統(tǒng)的一個重要方面。中斷響應(yīng)時間是影響中斷實(shí)時性的主要因素。中斷響應(yīng)定義為從中斷發(fā)生到開始執(zhí)行用戶的中斷服務(wù)代碼來處理這個中斷的時間。所有實(shí)時系統(tǒng)在進(jìn)入臨界區(qū)代碼段之前都要關(guān)中斷,執(zhí)行完臨界代碼之后再開中斷。中斷延遲時間即是從發(fā)出中斷請求到任務(wù)開中斷的這段時間。保護(hù)中斷現(xiàn)場有兩個作用。首先是為了保護(hù)中斷前任務(wù)的現(xiàn)場。其次,如果發(fā)生中斷嵌套,還必須保護(hù)上層中斷的現(xiàn)場。要讓中斷服務(wù)盡快得到處理,就必須減少中斷響應(yīng)時間。但中斷延遲時間是由中斷前任務(wù)決定的,在進(jìn)入中斷時只能通過盡量縮短中斷現(xiàn)場保護(hù)的時間來達(dá)到減少中斷響應(yīng)時間,從而提高中斷實(shí)時性。我們可以從中斷現(xiàn)場的保護(hù)的角度對其優(yōu)化。

(一)傳統(tǒng)中斷現(xiàn)場保護(hù)方法

對于現(xiàn)在大多數(shù)嵌入式操作系統(tǒng),在進(jìn)人中斷時首先做的第一件事就是保護(hù)中斷發(fā)生前的現(xiàn)場,即保存返回地址、程序狀態(tài)字、堆棧指針以及所有通用寄存器到中斷堆棧,以防止用戶中斷服務(wù)子程序?qū)χ袛喾祷睾蟋F(xiàn)場的破壞。在處理器內(nèi)核中在處理諸如任務(wù)切換和進(jìn)入中斷的現(xiàn)場保護(hù)的批量訪存指令時,系統(tǒng)將等待,從而影響實(shí)時性。

(二)中斷現(xiàn)場保護(hù)的優(yōu)化策略

中斷現(xiàn)場保護(hù)中,保護(hù)返回地址、程序狀態(tài)字、堆棧指針是必需的。否則中斷結(jié)束后將無法順利返回。而保護(hù)通用寄存器的目的在于防止用戶中斷服務(wù)子程序使用其中的寄存器,造成對原有內(nèi)容的覆蓋而在中斷返回后任務(wù)執(zhí)行出錯。因此在中斷里對通用寄存器的保護(hù)完全可以取決于中斷服務(wù)子程序?qū)νㄓ眉拇嫫鞯氖褂们闆r,僅僅保存中斷服務(wù)子程序中所用到的有限的幾個通用寄存器,而不必保存所有通用寄存器。首先,每個中斷服務(wù)子程序中所需要的通用寄存器是可知的。其次,在現(xiàn)有的嵌入式操作系統(tǒng)中,往往要求中斷服務(wù)子程序盡可能的短小。因此,在大多數(shù)中斷服務(wù)子程序中并沒有用到所保護(hù)的全部通用寄存器,造成對其余通用寄存器的多余保護(hù)。

(三)u C/OS-II時鐘中斷現(xiàn)場保護(hù)優(yōu)化

時鐘中斷是操作系統(tǒng)中比較重要的一個部分,也是實(shí)時性要求較高的部分。在時鐘中斷處理中,操作最多的集中在OS-TimeTick()和OSIntExit()這兩個函數(shù)上。它們進(jìn)行保護(hù)即可,從而能更進(jìn)一步縮短中斷響應(yīng)時間,大大縮短中斷響應(yīng)時間,提高中斷實(shí)時性。

四、結(jié)語

在這我們主要討論了嵌入式實(shí)時系統(tǒng)中斷管理技術(shù)及優(yōu)化,從硬件體系和系統(tǒng)管理兩方面闡述了影響中斷性能的因素,而且從傳統(tǒng)的中斷現(xiàn)場保護(hù)保存所有寄存器的內(nèi)容看,雖然使得程序的設(shè)計得到簡化,但是同時造成了多余的寄存器保護(hù),增加了中斷響應(yīng)的時間。有限中斷現(xiàn)場保護(hù)策略能夠根據(jù)具體中斷服務(wù)中所需要使用的通用寄存器而進(jìn)行相應(yīng)的有限的保護(hù),縮短了現(xiàn)場保護(hù)的時間,使用戶中斷服務(wù)能夠盡早的到處理,提高了中斷實(shí)時性。效率高的編譯器能夠在不犧牲代碼效率的情況下使用盡可能少的寄存器來完成中斷服務(wù),從而減少了需要中斷現(xiàn)場保護(hù)的寄存器數(shù),達(dá)到提高中斷實(shí)時性的要求。

缙云县| 蒲江县| 南溪县| 那坡县| 柘荣县| 庆安县| 皋兰县| 蒙城县| 镇平县| 合江县| 莎车县| 泰安市| 广南县| 白河县| 青浦区| 上饶市| 台北县| 准格尔旗| 石门县| 安乡县| 上饶县| 沁水县| 哈密市| 潞西市| 乐业县| 团风县| 吉安市| 平顺县| 赤水市| 舟山市| 麦盖提县| 南雄市| 台北市| 陆河县| 阿克| 长葛市| 育儿| 龙井市| 淄博市| 全椒县| 修水县|