本發(fā)明涉及一種用于產(chǎn)生用于在系統(tǒng)中運(yùn)行的程序的關(guān)鍵程序段(即所謂的criticalsection)期間阻止由中斷請求(即所謂的interruptrequest)引起的程序中斷的信號的電子裝置。
背景技術(shù):
:信息處理的實(shí)時系統(tǒng)、例如在現(xiàn)代機(jī)動車中的控制儀具有多個連接的傳感器和由微控制器驅(qū)控的執(zhí)行器。為此由微控制器連續(xù)依次執(zhí)行不同程序。然而如果在程序執(zhí)行期間出現(xiàn)外部事件,即需要立即執(zhí)行另一程序,那么必須中斷當(dāng)前處理。這在微控制器中通過所謂的中斷實(shí)現(xiàn)。中斷觸發(fā)當(dāng)前程序的中斷并且開始在另一程序中處理外部事件,在所述另一程序結(jié)束之后繼續(xù)之前中斷的程序。然而,在具有實(shí)時要求的系統(tǒng)中,關(guān)鍵程序段的中斷是有問題的。為了遵循時間上的要求,當(dāng)前微控制器的中斷可以通過配置寄存器來激活或禁止。在處理關(guān)鍵程序段之前通過寫入配置寄存器來禁止中斷。在離開關(guān)鍵程序段之后又激活中斷。如果在關(guān)鍵程序段中調(diào)用如下函數(shù),該函數(shù)又包括關(guān)鍵程序段,這導(dǎo)致中斷的嵌套的禁止/激活。在汽車領(lǐng)域中的研究已經(jīng)得出,即經(jīng)常并嵌套地調(diào)用用于阻止和解禁中斷的函數(shù)引起在整個控制軟件中多達(dá)15%的額外開銷。技術(shù)實(shí)現(xiàn)要素:本發(fā)明基于如下問題,即降低特別是由于嵌套調(diào)用用于阻止和解禁中斷的函數(shù)的額外開銷。該問題利用按照本發(fā)明的根據(jù)權(quán)利要求1的裝置解決。按照本發(fā)明的裝置具有一個或多個控制輸入端;用于輸出用于阻止或解禁程序中斷的輸出信號的輸出端;一個或多個用于產(chǎn)生輸出信號的輸出信號產(chǎn)生器;以及計(jì)數(shù)器。按照本發(fā)明,通過所述一個或多個控制輸入端將控制信號讀入所述裝置中,該控制信號顯示在系統(tǒng)中運(yùn)行的程序的第一關(guān)鍵程序段的開始。如果這樣的信號讀入所述裝置中,那么計(jì)數(shù)器增加。之前計(jì)算器具有初始計(jì)數(shù)器讀數(shù),例如零。此外,利用所述輸出信號產(chǎn)生器,或者單獨(dú)亦或共同作用的輸出信號產(chǎn)生器產(chǎn)生用于阻止程序中斷的信號,該信號輸出在所述輸出端上。所述通過所述一個或多個控制輸入端讀入的控制信號可以是如下指令,該指令促使計(jì)算器增加并且促使所述一個或多個輸出信號產(chǎn)生器產(chǎn)生用于阻止程序中斷的信號。所述信號但也可能是中斷請求本身,該中斷請求由按照本發(fā)明的裝置進(jìn)行分析。有利地可能的是,通過所述一個或多個控制輸入端可將控制信號讀入所述裝置中,所述控制信號顯示在所述系統(tǒng)中運(yùn)行的程序的第n(n是大于1的自然數(shù))關(guān)鍵程序段的開始。于是所述計(jì)數(shù)器基于這樣的控制信號而增加。通過計(jì)數(shù)器的增加可以檢測到關(guān)鍵程序段的調(diào)用嵌套。計(jì)數(shù)器讀數(shù)說明嵌套的程度,其用英語也表示為nestedness(嵌套性)。一旦在控制輸入端上具有如下控制信號,所述控制信號顯示在系統(tǒng)中運(yùn)行的程序的第n關(guān)鍵程序段的結(jié)束,那么計(jì)數(shù)器可以減小。于是,如果通過所述一個或多個控制輸入端可將如下控制信號讀入所述裝置中,所述控制信號顯示在嵌入式系統(tǒng)中運(yùn)行的程序的第一關(guān)鍵程序段的結(jié)束,那么所述計(jì)數(shù)器可減小到初始計(jì)數(shù)器讀數(shù)。此外,利用所述一個或多個輸出信號產(chǎn)生器產(chǎn)生用于解禁程序中斷的信號并且在所述輸出端上輸出該信號。只有當(dāng)在系統(tǒng)上運(yùn)行的程序首先進(jìn)入的關(guān)鍵程序段運(yùn)行完并且結(jié)束時,才離開程序在第一程序段開始之后所進(jìn)入的所有關(guān)鍵程序段。計(jì)數(shù)器的初始值優(yōu)選設(shè)為0。于是,計(jì)數(shù)器讀數(shù)直接說明嵌套程度。按照本發(fā)明的裝置可以具有數(shù)據(jù)輸入端和存儲器,利用其可將數(shù)據(jù)特別是數(shù)據(jù)字讀入所述裝置中并且可存儲在所述存儲器中。通過數(shù)據(jù)、特別是數(shù)據(jù)字的存儲可能性,系統(tǒng)寄存器、例如處理器狀態(tài)寄存器的數(shù)值可以存儲在按照本發(fā)明的裝置中。如果按照本發(fā)明的裝置此外也還具有數(shù)據(jù)輸出端,那么存儲在所述存儲器中的數(shù)據(jù)、特別是存儲在所述存儲器中的數(shù)據(jù)字可以傳輸給輸出端。所述裝置優(yōu)選如此設(shè)立,使得當(dāng)計(jì)數(shù)器達(dá)到了初始計(jì)數(shù)器讀數(shù)時,實(shí)現(xiàn)這一點(diǎn)。因此在第一關(guān)鍵程序段開始時的寄存器內(nèi)容可以在結(jié)束之后傳回系統(tǒng)中。按照本發(fā)明的裝置可以是一種集成電路或由集成電路的部分構(gòu)成。所述集成電路可以除了按照本發(fā)明的裝置之外具有另外的電路部分、例如至少一個處理器內(nèi)核。所述一個或多個輸出信號產(chǎn)生器和/或存儲器可以具有一個或多個寄存器、復(fù)用器和/或分接器和/或邏輯門。按照本發(fā)明的裝置可以是微控制器的部分或另一嵌入式系統(tǒng)(embeddedsystem)的部分,所述微控制器或者嵌入式系統(tǒng)配備有對在微控制器中運(yùn)行的程序的關(guān)鍵程序段期間由中斷請求引起的程序中斷的阻止。微控制器或嵌入式系統(tǒng)可以具有存儲器映射的輸入/輸出端(memorymappedi/o,mmio)并且允許借助于存儲器訪問例程來訪問所述裝置,正如所述存儲器訪問例程可用于訪問微控制器的主存儲器那樣。附圖說明根據(jù)附圖以下進(jìn)一步闡述本發(fā)明。其中:圖1示出示例性的按照本發(fā)明的微控制器的架構(gòu)的示意圖;圖2示出按照圖1的微控制器的示例性的按照本發(fā)明的裝置的示意框圖;圖3示出按照圖2的按照本發(fā)明的裝置的示意圖;以及圖4示出在微處理器中用于存儲器訪問的地址結(jié)構(gòu)的示圖。具體實(shí)施方式圖1示出微控制器的基本已知的架構(gòu)。微控制器具有中央單元z和多個外圍單元p以及存儲器,所述存儲器在圖1中以指令ram和數(shù)據(jù)ram表示。中央單元可以通過存儲器映射(speicherabgebildet)的輸入/輸出端mmio來訪問數(shù)據(jù)ram存儲器和外圍單元p。外圍單元之一是按照本發(fā)明的裝置,其在圖1中以eei_ext表示。但原則上也可設(shè)想微控制器或嵌入式系統(tǒng)的其他架構(gòu),其中對按照本發(fā)明的裝置的訪問不通過存儲器映射的輸入/輸出端實(shí)現(xiàn)。通過借助于存儲器映射的輸入/輸出端來訪問按照本發(fā)明的裝置,按照本發(fā)明的裝置可以容易地集成到現(xiàn)有的微控制器的架構(gòu)中。在存儲器映射的輸入/輸出端中分配微控制器的數(shù)據(jù)存儲器的地址空間并且將地址空間的一部分用于訪問外圍單元。圖4以一般的微控制器架構(gòu)為例示出分配數(shù)據(jù)存儲器的地址空間的一種可能性。示例性示出的32位地址的最高位在此確定:應(yīng)將微控制器的處理器內(nèi)核的詢問轉(zhuǎn)發(fā)給數(shù)據(jù)存儲器還是外圍單元。應(yīng)將訪問轉(zhuǎn)發(fā)給內(nèi)部外圍單元還是外部外圍單元由地址的次最高位確定。隨后的5位尋址外圍單元,地址的剩余位可以用于尋址數(shù)據(jù)存儲器或用于尋址在外圍單元內(nèi)的構(gòu)件。本發(fā)明的重要特征在于,提供一種專用外圍單元用于處理在嵌入式系統(tǒng)中、例如微控制器中嵌套的程序中斷。按照本發(fā)明的外圍單元——如其在圖2和3中示出的那樣——基本上由三個構(gòu)件組成,即一個具有用于連接到微控制器其余部分的地址解碼器的輸入級1、一個用于存儲微控制器的狀態(tài)寄存器的32位寄存器2以及一個用于監(jiān)控關(guān)鍵程序段的嵌套層的數(shù)字4位計(jì)數(shù)器3。構(gòu)件的驅(qū)控通過所述輸入級1實(shí)現(xiàn)。所述輸入級分析如下控制信號:ce(用于芯片使能)、we(寫入使能)和addr(地址)。這些控制信號是如下地址的部分,所述地址可以用于尋址存儲器和在外圍單元內(nèi)的構(gòu)件(參見圖4)。在信號ce激活輸入級期間,信號we確定對外圍單元eei_ext或按照本發(fā)明的裝置eei_ext的訪問類型。這在以下圖表中示出:cewe訪問類型10讀訪問11寫訪問00輸入級非激活01輸入級非激活在寫訪問時通過數(shù)據(jù)輸入端data_in將數(shù)據(jù)寫入按照本發(fā)明的裝置中。在讀訪問時可以通過數(shù)據(jù)輸出端data_out將數(shù)據(jù)從按照本發(fā)明的裝置中讀取。輸入信號reset_n用于在微控制器復(fù)位過程中同樣復(fù)位按照本發(fā)明的單元eei_ext的寄存器和計(jì)數(shù)器。在輸入級(ce=1)激活時,施加的地址的最低位確定要執(zhí)行的動作,如在以下表格中所示:地址cewe動作0x8820000011計(jì)數(shù)器增加并且寫寄存器0x8820000010讀訪問,在數(shù)據(jù)輸出端上為寄存器內(nèi)容0x8820000111計(jì)數(shù)器減小0x8820000110讀訪問,在數(shù)據(jù)輸出端上為零在介紹的例子中僅使用在外圍單元內(nèi)總共225種可能的地址中的兩個地址。這使得能實(shí)現(xiàn),可以擴(kuò)展地址解碼器并因此擴(kuò)展按照本發(fā)明的裝置的功能性。程序中斷的阻止和解禁通過在輸出端eei_bit上的輸出信號實(shí)現(xiàn),該輸出端用于輸出用于阻止和解禁程序中斷的輸出信號,該輸出信號通過按照本發(fā)明的裝置的邏輯電路根據(jù)嵌套層、亦即數(shù)字計(jì)數(shù)器的計(jì)數(shù)器讀數(shù)和輸入寄存器的內(nèi)容而設(shè)置。在首次執(zhí)行關(guān)鍵程序段時除了阻止程序中斷之外必須在按照本發(fā)明的實(shí)施例中附加地存儲微控制器的處理器狀態(tài)寄存器的內(nèi)容。這在程序代碼中通過寫訪問按照本發(fā)明的裝置的地址0x88200000實(shí)現(xiàn)。按照第二表格在寫訪問該地址時計(jì)數(shù)器增加數(shù)值1。施加在數(shù)據(jù)輸入端data_in上的數(shù)據(jù)被存儲在按照本發(fā)明的裝置的輸入寄存器中并且同時通過裝置的邏輯電路將在輸出端eei_bit上的輸出信號設(shè)置為1。由此阻止程序中斷。輸出信號在此阻止由連接的微控制器的所謂的中斷控制器(interrupt-controller)引起的程序中斷。在微控制器中執(zhí)行的程序的關(guān)鍵程序段內(nèi)可以存在如下函數(shù)調(diào)用,所述函數(shù)調(diào)用同樣包含關(guān)鍵程序段。所述關(guān)鍵程序段導(dǎo)致嵌套。關(guān)鍵程序段的調(diào)用導(dǎo)致寫訪問地址0x88200000,以便阻止程序中斷。所述寫訪問導(dǎo)致在按照本發(fā)明的裝置內(nèi)計(jì)數(shù)器的增加并且在第二次調(diào)用在微控制器內(nèi)執(zhí)行的程序的關(guān)鍵程序段時達(dá)到數(shù)值2。通過更新的用于禁止程序中斷的指令不改變在輸出端eei_bit上輸出信號的狀態(tài)。輸出信號還具有數(shù)值1。程序中斷因此還保持阻止。為了在離開所有關(guān)鍵程序段之后又可以建立存儲在按照本發(fā)明的裝置的輸入寄存器中的狀態(tài)寄存器的狀態(tài),輸入寄存器應(yīng)在更新寫訪問時在進(jìn)入第二或較高關(guān)鍵程序段的情況下不被覆蓋。這通過如下邏輯電路確保,所述邏輯電路在計(jì)數(shù)器讀數(shù)不等于零時阻止寫入輸入寄存器。在處理關(guān)鍵程序段的指令之后進(jìn)行寫訪問地址0x88200001,以便離開關(guān)鍵程序段并且又解禁程序中斷。計(jì)數(shù)器在此按照第二表格減小數(shù)值1。因?yàn)橛?jì)數(shù)器讀數(shù)之前具有數(shù)值2,所以在輸出端eei_bit上的輸出信號不變。程序中斷還保持阻止。只有當(dāng)最后的關(guān)鍵程序段結(jié)束(計(jì)數(shù)器在最后的關(guān)鍵程序段期間具有數(shù)值1)時,通過寫訪問地址0x88200001將計(jì)數(shù)器減小數(shù)值1并且計(jì)數(shù)器讀數(shù)達(dá)到零。由此在輸出端eei_bit上的輸出信號設(shè)置為數(shù)值0并且由此又解禁微控制器的中斷控制器。在讀訪問(ce=1并且we=0)按照本發(fā)明的裝置的地址0x88200000時,存儲在按照本發(fā)明的裝置的輸入寄存器中的數(shù)據(jù)通過數(shù)據(jù)輸出端data_out輸出。在其他讀訪問時,在數(shù)據(jù)輸出端上輸出數(shù)值零。附圖標(biāo)記列表:z中央單元p外圍單元eei_ext按照本發(fā)明的裝置1具有用于連接微控制器其余部分的地址解碼器的輸入級2用于存儲微控制器的狀態(tài)寄存器的32位寄存器3數(shù)字4位計(jì)數(shù)器當(dāng)前第1頁12