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