一種嵌入式系統(tǒng)中進行中斷以及臨界事件管理操作的方法
【專利摘要】本發(fā)明提供一種嵌入式系統(tǒng)中進行中斷以及臨界事件管理操作的方法,該方法結(jié)合嵌入式系統(tǒng)中的硬件中斷事件及軟件臨界事件的響應(yīng)特點和要求,將軟件臨界事件和硬件中斷事件統(tǒng)一為臨界事件的邏輯概念;并在嵌入式的操作系統(tǒng)層設(shè)計一臨界管理器;將系統(tǒng)中的中斷處理程序和軟件臨界事件處理程序形成一臨界處理程序集合,掛載到臨界管理器,實現(xiàn)對臨界事件的分優(yōu)先級響應(yīng)處理;根據(jù)嵌入式系統(tǒng)硬件處理器的差異性,由臨界管理器軟件實現(xiàn)臨界事件發(fā)生后的統(tǒng)一入口和分派處理,使得不同處理器上能移植該臨界管理器,統(tǒng)一不同處理器上軟件臨界事件和中斷處理的程序來處理和響應(yīng)時序。本發(fā)明能在不同處理器上快速移植,并保證中斷管理操作的響應(yīng)效果的一致性。
【專利說明】ー種嵌入式系統(tǒng)中進行中斷以及臨界事件管理操作的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種計算機通訊【技術(shù)領(lǐng)域】,尤其涉及ー種嵌入式系統(tǒng)中進行中斷以及臨界事件管理操作的方法。
【背景技術(shù)】
[0002]對于嵌入式產(chǎn)品,如果不使用操作系統(tǒng),則一般軟件中沒有專門抽象出來的中斷管理模塊,中斷處理例程的管理以及中斷響應(yīng)的時序都由嵌入式硬件的處理器所決定。這造成了軟件中的中斷處理部分不易于移植,也不易于保證不同硬件上設(shè)備中斷性能的一致性。在使用了 Linux和Windows操作系統(tǒng)的嵌入式產(chǎn)品中,由于Linux系統(tǒng)的設(shè)計缺陷,中斷系統(tǒng)只能管理到一般意義上的計算機中斷事件,而與中斷表現(xiàn)相類似的軟件級別的臨界事件沒有被納入到中斷管理模塊中,使得軟件開發(fā)上,對于軟件的臨界事件和中斷的臨界事件要分成兩種概念來處理,増加軟件開發(fā)理論的復(fù)雜度。在使用了 Windows NT內(nèi)核的操作系統(tǒng)的嵌入式產(chǎn)品中,Windows提供的中斷管理模塊合并了軟件同步臨界和軟件異步臨界的響應(yīng)管理,但是其中斷等級只有32個。如果硬件中斷等級超過32個,則不能讓所有硬件中斷都有獨自的響應(yīng)優(yōu)先級,這樣影響了硬件事件響應(yīng)的實時性。
[0003]在軟件過程中,有時會遇到同一軟件資源或者硬件資源被不同軟件流程共享訪問的情況。當這些軟件流程被不同的線程所調(diào)用的時候,必須保證它們互斥運行,以避免對共享的資源造成非預(yù)期的錯誤修改。這種需要互斥運行保護的共享資源叫做臨界資源,訪問資源的代碼叫做臨界代碼區(qū),軟件上調(diào)用臨界代碼區(qū)叫做軟件臨界事件。在硬件引發(fā)的中斷事件中,中斷處理程序除了執(zhí)行中斷相關(guān)的硬件信號的操作外,還有可能發(fā)生修改軟件變量、調(diào)用純軟件邏輯的處理函數(shù)等訪問軟件資源的非硬件相關(guān)動作。由于中斷處理程序本身就是打斷正常軟件流程的,必須對中斷發(fā)生前的正常軟件流程中正在訪問的、與中斷處理程序中會被訪問到的軟件資源做保護,以避免軟件資源被中斷處理程序造成非預(yù)期修改的錯誤。因此,中斷事件也有軟件臨界事件類似的特征,即硬件中斷事件(也就是硬件臨界事件)。
【發(fā)明內(nèi)容】
[0004]本發(fā)明要解決的技術(shù)問題,在于提供ー種嵌入式系統(tǒng)中進行中斷及臨界事件管理操作的方法,其能在不同處理器上快速移植,并保證中斷及臨界事件管理操作的響應(yīng)效果的一致性。
[0005]本發(fā)明是這樣實現(xiàn)的:ー種嵌入式系統(tǒng)中進行中斷及臨界事件管理操作的方法,該方法具體為:
[0006]結(jié)合嵌入式系統(tǒng)中的硬件中斷事件及軟件臨界事件的響應(yīng)特點和要求,將軟件臨界事件和硬件中斷事件統(tǒng)ー為臨界事件的邏輯概念;將硬件中斷處理程序和軟件臨界事件處理程序統(tǒng)ー為臨界處理程序的概念,形成一臨界處理程序集合;并在嵌入式的操作系統(tǒng)層設(shè)計ー臨界管理器;該臨界管理器不限制支持的臨界等級數(shù)量,協(xié)調(diào)臨界處理程序掛載和執(zhí)行的動作;并將臨界處理程序掛載到臨界管理器上,實現(xiàn)對臨界事件的分優(yōu)先級響應(yīng)處理;根據(jù)嵌入式系統(tǒng)硬件處理器的差異性,由臨界管理器系統(tǒng)層軟件實現(xiàn)臨界事件發(fā)生后的統(tǒng)一入口和分派處理,使得不同處理器上能移植該臨界管理器,用來統(tǒng)ー不同處理器上軟件臨界事件和中斷處理的程序來處理和響應(yīng)時序。
[0007]本發(fā)明具有如下優(yōu)點:本發(fā)明可以統(tǒng)一中斷事件和軟件臨界事件的概念,簡化編程;該中斷管理操作的方法實現(xiàn)了與處理器無關(guān)的中斷響應(yīng)和分派處理,以及與處理器無關(guān)的優(yōu)先級分派方法,可以方便在不同處理器上移植,使驅(qū)動和系統(tǒng)的代碼可以在不同處理器上快速移植,并保證中斷管理操作的響應(yīng)效果的一致性。
【專利附圖】
【附圖說明】
[0008]圖1為本發(fā)明方法流程示意圖。
【具體實施方式】
[0009]請參閱圖1所示,本發(fā)明為ー種嵌入式系統(tǒng)中進行中斷及臨界事件管理操作的方法,該方法具體為:
[0010]結(jié)合嵌入式系統(tǒng)中的硬件中斷事件及軟件臨界事件的響應(yīng)特點和要求,將軟件臨界事件和硬件中斷事件統(tǒng)ー為臨界事件的邏輯概念;該具體為:將硬件的中斷事件和軟件的臨界事件在同一優(yōu)先級隊列中進行優(yōu)先級定義,軟件臨界事件的優(yōu)先級總低于硬件中斷事件的優(yōu)先級,各事件相關(guān)的臨界資源根據(jù)事件的優(yōu)先級構(gòu)成訪問重復(fù)進入的優(yōu)先級保護;這樣使硬件中斷事件和軟件臨界事件在概念上抽象成統(tǒng)ー的臨界事件;
[0011]將硬件中斷處理程序和軟件臨界事件處理程序統(tǒng)ー為臨界處理程序的概念,形成一臨界處理程序集合;并在嵌入式的操作系統(tǒng)層設(shè)計ー臨界管理器;該臨界管理器不限制支持的臨界等級數(shù)量,協(xié)調(diào)臨界處理程序掛載和執(zhí)行的動作;
[0012]其中,將系統(tǒng)中的硬件中斷處理程序和軟件臨界事件處理程序統(tǒng)ー為臨界處理程序的概念,形成一臨界處理程序集合,具體為:將軟件臨界事件對應(yīng)的臨界代碼定義成函數(shù);該函數(shù)和中斷處理程序的函數(shù)在原型約定、返回值約定、處理過程中對資源管理及各種系統(tǒng)機制的使用方面都遵循一致的軟件約束條件,使得將中斷處理程序和軟件臨界事件處理程序抽象成臨界處理程序;這些臨界處理程序形成臨界處理程序集合;
[0013]并將臨界處理程序掛載到臨界管理器上,實現(xiàn)對臨界事件的分優(yōu)先級響應(yīng)處理;根據(jù)嵌入式系統(tǒng)硬件處理器的差異性,由臨界管理器系統(tǒng)層軟件實現(xiàn)臨界事件發(fā)生后的統(tǒng)一入口和分派處理,使得不同處理器上能移植該臨界管理器,用來統(tǒng)ー不同處理器上軟件臨界事件和中斷處理的程序來處理和響應(yīng)時序;其中,根據(jù)嵌入式系統(tǒng)硬件處理器的差異性,由臨界管理器系統(tǒng)層軟件實現(xiàn)臨界事件發(fā)生后的統(tǒng)一入口和分派處理,使得不同處理器上能移植該臨界管理器,具體為:利用處理器存在的中斷的軟件入ロ,或稱異常入ロ,作為臨界處理的唯一入ロ,在該入口中,由臨界管理器實現(xiàn)統(tǒng)一的先期處理方法,該先期處理方法負責判斷臨界事件的優(yōu)先級;利用軟件備份和還原處理器上下文的方式來實現(xiàn)高優(yōu)先級臨界處理程序的嵌套;在進入對應(yīng)優(yōu)先級臨界處理程序的處理器上下文后,再分派調(diào)用對應(yīng)的臨界處理程序執(zhí)行臨界事件的響應(yīng);在臨界處理程序執(zhí)行完成后,再由臨界管理器實現(xiàn)統(tǒng)一的后期處理方法,該后期處理方法用于檢索臨界事件的重復(fù)進入、低優(yōu)先級臨界處理程序處理上下文的恢復(fù)、以及還原到進入臨界前的軟件處理流程中;所有對應(yīng)的實現(xiàn)中,涉及到寄存器與具體處理器相關(guān)的部分都封裝為獨立的函數(shù)接ロ實現(xiàn),這些函數(shù)接ロ存放在獨立的代碼文件中,若更改處理器,則只要更換存儲了這些處理器相關(guān)函數(shù)接ロ的代碼文件即可,使得上述的臨界管理機制能在各處理器上移植。
[0014]這里值得一提的是:臨界管理器中設(shè)置有一個數(shù)組,數(shù)組的元素下標表示臨界事件的優(yōu)先級,優(yōu)先級越高數(shù)組下標越大;數(shù)組的元素個數(shù)作為ー個宏來配置,不同的產(chǎn)品能配置不同的宏來定義數(shù)組的規(guī)模,從而實現(xiàn)不同產(chǎn)品臨界等級數(shù)量的自定義和擴增;數(shù)組的每個元素是ー個鏈表的指針,一個鏈表是ー個優(yōu)先級的所有臨界處理程序的函數(shù)指針的集合;鏈表的每個節(jié)點的數(shù)據(jù)是ー個臨界處理程序的函數(shù)指針,臨界管理器提供一接ロ,實現(xiàn)臨界處理程序的掛載、卸載、啟動、和禁用,以及軟件激活進入任意ー臨界事件等級的處理;軟件開發(fā)人員能基于這個接ロ,使用臨界管理器提供的各種功能。
[0015]總之,本發(fā)明可以統(tǒng)一中斷事件和軟件臨界事件的概念,簡化編程;該中斷管理操作的方法實現(xiàn)了與處理器無關(guān)的中斷響應(yīng)和分派處理,以及與處理器無關(guān)的優(yōu)先級分派方法,可以方便在不同處理器上移植,使驅(qū)動和系統(tǒng)的代碼可以在不同處理器上快速移植,并保證中斷及臨界事件管理操作的響應(yīng)效果的一致性。
[0016]以上所述僅為本發(fā)明的較佳實施例,凡依本發(fā)明申請專利范圍所做的均等變化與修飾,皆應(yīng)屬本發(fā)明的涵蓋范圍。
【權(quán)利要求】
1.ー種嵌入式系統(tǒng)中進行中斷以及臨界事件管理操作的方法,其特征在于:該方法具體為: 結(jié)合嵌入式系統(tǒng)中的硬件中斷事件及軟件臨界事件的響應(yīng)特點和要求,將軟件臨界事件和硬件中斷事件統(tǒng)ー為臨界事件的邏輯概念;將硬件中斷處理程序和軟件臨界事件處理程序統(tǒng)ー為臨界處理程序的概念,形成一臨界處理程序集合;并在嵌入式的操作系統(tǒng)層設(shè)計ー臨界管理器;該臨界管理器不限制支持的臨界等級數(shù)量,協(xié)調(diào)臨界處理程序掛載和執(zhí)行的動作;并將臨界處理程序掛載到臨界管理器上,實現(xiàn)對臨界事件的分優(yōu)先級響應(yīng)處理;根據(jù)嵌入式系統(tǒng)硬件處理器的差異性,由臨界管理器系統(tǒng)層軟件實現(xiàn)臨界事件發(fā)生后的統(tǒng)一入口和分派處理,使得不同處理器上能移植該臨界管理器,用來統(tǒng)ー不同處理器上軟件臨界事件和中斷處理的程序來處理和響應(yīng)時序。
2 .根據(jù)權(quán)利要求1所述的ー種嵌入式系統(tǒng)中進行中斷以及臨界事件管理操作的方法,其特征在于:所述結(jié)合嵌入式系統(tǒng)中的硬件中斷事件及軟件臨界事件的響應(yīng)特點和要求,將軟件臨界事件和硬件中斷事件統(tǒng)ー為臨界事件的邏輯概念,具體為:將硬件的中斷事件和軟件的臨界事件在同一優(yōu)先級隊列中進行優(yōu)先級定義,軟件臨界事件的優(yōu)先級總低于硬件中斷事件的優(yōu)先級,各事件相關(guān)的臨界資源根據(jù)事件的優(yōu)先級構(gòu)成訪問重復(fù)進入的優(yōu)先級保護;這樣使硬件中斷事件和軟件臨界事件在概念上抽象成統(tǒng)ー的臨界事件。
3.根據(jù)權(quán)利要求1所述的ー種嵌入式系統(tǒng)中進行中斷以及臨界事件管理操作的方法,其特征在于:將系統(tǒng)中的硬件中斷處理程序和軟件臨界事件處理程序統(tǒng)ー為臨界處理程序的概念,形成一臨界處理程序集合,具體為:將軟件臨界事件對應(yīng)的臨界代碼定義成函數(shù);該函數(shù)和中斷處理程序的函數(shù)在原型約定、返回值約定、處理過程中對資源管理及各種系統(tǒng)機制的使用都遵循一致的軟件約束條件,使得將中斷處理程序和軟件臨界事件處理程序抽象成臨界處理程序;這些臨界處理程序形成臨界處理程序集合。
4.根據(jù)權(quán)利要求1所述的ー種嵌入式系統(tǒng)中進行中斷以及臨界事件管理操作的方法,其特征在于:根據(jù)嵌入式系統(tǒng)硬件處理器的差異性,由臨界管理器軟件實現(xiàn)臨界事件發(fā)生后的統(tǒng)一入口和分派處理,使得不同處理器上能移植該臨界管理器,具體為:利用處理器存在的中斷的異常入口,作為臨界處理的唯一入口,在該入口中,由臨界管理器實現(xiàn)統(tǒng)一的先期處理方法,該先期處理方法負責判斷臨界事件的優(yōu)先級;利用軟件備份和還原處理器上下文的方式來實現(xiàn)高優(yōu)先級臨界處理程序的嵌套;在進入對應(yīng)優(yōu)先級臨界處理程序的處理器上下文后,再分派調(diào)用對應(yīng)的臨界處理程序執(zhí)行臨界事件的響應(yīng);在臨界處理程序執(zhí)行完成后,再由臨界管理器實現(xiàn)統(tǒng)一的后期處理方法,該后期處理方法用于檢索臨界事件的重復(fù)進入、低優(yōu)先級臨界處理程序處理上下文的恢復(fù)、以及還原到進入臨界前的軟件處理流程中;所有對應(yīng)的實現(xiàn)中,涉及到寄存器與具體處理器相關(guān)的部分都封裝為獨立的函數(shù)接ロ實現(xiàn),這些函數(shù)接ロ存放在獨立的代碼文件中,若更改處理器,則只要更換存儲了這些處理器相關(guān)函數(shù)接ロ的代碼文件即可,使得上述的臨界管理機制能在各處理器上移植。
5.根據(jù)權(quán)利要求1所述的ー種嵌入式系統(tǒng)中進行中斷以及臨界事件管理操作的方法,其特征在于:臨界管理器中設(shè)置有一個數(shù)組,數(shù)組的元素下標表示臨界事件的優(yōu)先級,優(yōu)先級越高數(shù)組下標越大;數(shù)組的元素個數(shù)作為ー個宏來配置,不同的產(chǎn)品能配置不同的宏來定義數(shù)組的規(guī)模,從而實現(xiàn)不同產(chǎn)品臨界等級數(shù)量的自定義和擴增;數(shù)組的每個元素是ー個鏈表的指針,一個鏈表是ー個優(yōu)先級的所有臨界處理程序的函數(shù)指針的集合;鏈表的每個節(jié)點的數(shù)據(jù)是ー個臨界處理程序的函數(shù)指針,臨界管理器提供一接ロ,實現(xiàn)臨界處理程序的掛載、卸載、啟動、和禁用,以及軟件激活進入任意ー臨界事件等級的處理;軟件開發(fā)人員能基于這個接ロ,使用臨界管`理器提供的各種功能。
【文檔編號】G06F9/48GK103559085SQ201310494726
【公開日】2014年2月5日 申請日期:2013年10月21日 優(yōu)先權(quán)日:2013年10月21日
【發(fā)明者】林志偉, 張登峰, 余杭軍 申請人:福建升騰資訊有限公司