本發(fā)明涉及處理器中斷處理技術,尤其涉及一種中斷號分配方法及裝置。
背景技術:
中斷是指在中央處理器(centralprocessingunit,簡稱cpu)運行期間,被cpu內部或外部事件打斷、暫停當前程序的執(zhí)行而轉去執(zhí)行一段特定的處理內部或外部時間程序的過程。中斷號是可以使cpu能夠判斷是哪個設備提出中斷請求的標識。
目前,在vxworks系統(tǒng)下無內部互鎖流水級的微處理器(microprocessorwithoutinterlockedpipedstages,簡稱mips)架構中掛接外部設備互連總線(peripheralcomponentinterconnect,簡稱pci)設備時,需要將該pci設備資源注冊到vxworks系統(tǒng)中用于支持設備驅動的特有的架構vxbus中,同時,由操作人員根據(jù)資源注冊信息在路由為pci設備分配對應的中斷號,使得該pci設備提出中斷請求的時候,cpu能夠根據(jù)中斷號判斷出是哪個設備提出的中斷請求。
但是,在上述的技術方案中,每增加一個新的pci設備之后,都需要修改vxbus中的資源注冊信息,同時操作人員需要重新在路由設置pci設備對應的中斷號,也就是說,現(xiàn)有的vxworks系統(tǒng)下mips架構中分配中斷號的方式操作需要操作人員手動完成,操作比較繁瑣,且浪費時間。
技術實現(xiàn)要素:
本發(fā)明提供一種中斷號分配方法及裝置,實現(xiàn)自動分配設備中斷號,操作簡便,節(jié)省時間。
本發(fā)明提供一種中斷號分配方法,包括:
獲取待分配設備標識和與所述待分配設備連接的中斷線的標識;
根據(jù)所述待分配設備的標識和所述中斷線的標識將預設的中斷號分配給 所述待分配設備;
其中,所述中斷號與所述中斷線的標識對應。
本發(fā)明還提供一種中斷號分配裝置,包括:
第一獲取模塊,用于獲取待分配設備標識和與所述待分配設備連接的中斷線的標識;
分配模塊,用于根據(jù)所述第一獲取模塊獲取得到的所述待分配設備的標識和所述中斷線的標識將預設的中斷號分配給所述待分配設備;
其中,所述中斷號與所述中斷線的標識對應。
本發(fā)明提供一種中斷號分配方法及裝置,其中,該方法通過獲取待分配設備標識和與所述待分配設備連接的中斷線的標識,了解硬件設備的連接情況,并根據(jù)所述待分配設備的標識和所述中斷線的標識將預設的中斷號分配給所述待分配設備。本發(fā)明通過將預設的中斷號分配到與中斷線的標識對應的中斷線連接的待分配設備中,實現(xiàn)自動分配設備中斷號,操作簡便,節(jié)省時間,避免了現(xiàn)有技術中需要操作人員手動完成,操作比較繁瑣,且浪費時間的缺陷。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實施例提供的中斷號分配方法實施例一的流程圖;
圖2為本發(fā)明實施例提供的中斷號分配方法實施例二的流程圖;
圖3為本發(fā)明實施例提供的中斷號分配方法實施例四的流程圖;
圖4為本發(fā)明實施例提供的中斷號分配裝置實施例一的結構示意圖;
圖5為本發(fā)明實施例提供的中斷號分配裝置實施例二的結構示意圖;
圖6為本發(fā)明實施例提供的中斷號分配裝置實施例四的結構示意圖。
具體實施方式
為使本發(fā)明實施例的目的、技術方案和優(yōu)點更加清楚,下面將結合本發(fā) 明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
圖1為本發(fā)明實施例提供的中斷號分配方法實施例一的流程圖;如圖1所示,本發(fā)明提供的中斷號分配方法具體包括以下步驟:
步驟110、獲取待分配設備標識和與待分配設備連接的中斷線的標識。
其中,待分配設備指的是插在pci槽上,且滿足pci標準的設備。
步驟120、根據(jù)待分配設備的標識和中斷線的標識將預設的中斷號分配給待分配設備。
其中,中斷號與中斷線的標識對應。
需要說明的是,在本實施例中,執(zhí)行主體為外部設備互連總線pci控制器與處理器計算機設備或者其他的設備。
具體的,在vxworks操作系統(tǒng)中,外部設備互連總線pci有四根中斷線a、b、c和d,其中,每根中斷線對應不同的中斷號。
另外,一個待分配設備只與一個中斷線連接,而一根中斷線卻可以多個待分配設備連接。而在為待分配設備分配預設中斷號的時候,可以為與中斷線連接的多個待分配設備分配多個中斷號,也可以為多個待分配設備分配一個中斷號。當多個待分配設備分配一個中斷號的時候,在執(zhí)行中斷的過程中vxworks操作系統(tǒng)也可以識別出來是對應的需要中斷的外接設備。
本發(fā)明實施例提供的中斷號分配方法通過獲取待分配設備標識和與待分配設備連接的中斷線的標識,了解硬件設備的連接情況,并根據(jù)待分配設備的標識和中斷線的標識將預設的中斷號分配給待分配設備。本發(fā)明通過將預設的中斷號分配到與中斷線的標識對應的中斷線連接的待分配設備中,實現(xiàn)自動分配設備中斷號,操作簡便,節(jié)省時間,避免了現(xiàn)有技術中需要操作人員手動完成,操作比較繁瑣,且浪費時間的缺陷。
進一步地,在上述實施例一的技術方案的基礎上,在實施例二中,圖2為本發(fā)明實施例提供的中斷號分配方法實施例二的流程圖,如圖2所示,若待分配設備與外部設備互連總線pci連接;本實施例提供的方法中步驟120,具體包括以下步驟:
步驟121、根據(jù)待分配設備的標識和中斷線的標識得到分配給待分配設備的中斷號。
步驟122、將待分配設備的中斷號寫入pci配置空間中的中斷請求域。
進一步地,上述實施例一和實施例二的技術方案的基礎上,在實施例三中,步驟120之前還包括:
獲取分配函數(shù)。
在本實施例中,步驟120包括:以調用分配函數(shù)的形式,根據(jù)待分配設備的標識和中斷線的標識將預設的中斷號分配給待分配設備。
具體的,在本實施例中,分配函數(shù)是由用戶自定義設置的,只要能夠為待分配設備分配中斷號都可以,本發(fā)明并不對此做進一步的限定。
舉例來說,分配函數(shù)可以為:
localucharpciautoconfigintrassign
(
pci_system*psys,/*pci_systemstructurepointer*/
pci_loc*ploc,/*pointertofunctioninquestion*/
ucharpin/*contentsofpciintpinregister*/
)
{if(ploc->bus==0&&pin?。?&&pin<=4)
{
/*pin1-4–>pcia-d*/
line=func;
return(uchar)((line-1));
}
}。
其中,pciautoconfigintrassign指的就是分配函數(shù),ploc是結構體ploc中的一個對象;pin1-4指的中斷線a、b、c和d;ploc->bus指的是待分配設備的標識,func是用戶預先設置的中斷號;line指的是中斷線連接的待分配設備的中斷號。
另外,在本實施例中,獲取分配函數(shù)包括:從驅動資源中獲取已注冊的分配函數(shù)。
舉例來說,在vxworks系統(tǒng)mips架構下可以通過以下方式實現(xiàn)在驅動資源中添加分配函數(shù)的注冊信息:
{"intassignfuncset",hcf_res_addr,{(void*)pciautoconfigintrassign}}。
進一步地,在上述實施例三的技術方案的基礎上,在實施例四中,圖3為本發(fā)明實施例提供的中斷號分配方法實施例四的流程圖,如圖3所示,中斷號分配方法,還包括:
步驟130、讀取中斷請求域中的中斷號。
步驟140、調用中斷掛接函數(shù),將中斷號對應的中斷處理函數(shù)掛接到中斷線的標識對應的中斷鏈表中。
其中,中斷線與中斷鏈表一一對應,也就是說,每個中斷線對應一個中斷鏈表。
具體的,本實施例通過讀取中斷號,并通過中斷掛接函數(shù)將中斷號對應的中斷處理函數(shù)掛接到與中斷號對應的中斷線的標識對應的中斷鏈表中,實現(xiàn)當處理器響應待分配設備的中斷請求時,待分配設備能夠即刻響應,開始工作。
可選地,在vxworks操作系統(tǒng)中,中斷掛接函數(shù)從vxworks系統(tǒng)中的庫函數(shù)獲取得到,另外,中斷掛接函數(shù)還可以為用戶自己添加的可以實現(xiàn)中斷響應的函數(shù)。
具體的,采用中斷掛接函數(shù),將中斷號對應的中斷處理函數(shù)掛接到中斷線的標識對應的中斷鏈表中;可以如下代碼實現(xiàn):
pciintconnect(vector,routine,parameter),其中vector指的是中斷號,routine指的是中斷處理函數(shù),parameter指的是參數(shù)。
值得說明的是,針對本發(fā)明實施例提供的中斷號分配的方法,在有外接設備接入時,若是標準類中斷,通過本發(fā)明實施例二提供的將中斷號寫入pci配置空間中的中斷請求irq域中即可實現(xiàn)中斷號的分配,若非標準類中斷,則需要在將中斷號寫入pci配置空間中的中斷請求irq域中即可實現(xiàn)中斷號的分配之后調用中斷掛接函數(shù),將所述中斷號對應的中斷處理函數(shù)掛接到所述中斷線的標識對應的中斷鏈表中以實現(xiàn)中斷號分配后實現(xiàn)中斷處理的有效執(zhí)行。不管是標準類中斷亦或是非標準類中斷,都實現(xiàn)了中斷號的自動分配, 免去了現(xiàn)有技術中技術人員人工干預的情況發(fā)生。
在本發(fā)明實施例五中,以包含pci控制器和cpu的設備為例進行詳細的說明,該設備為mips架構,基于vxworks系統(tǒng)實現(xiàn)中斷號的自動分配。具體的,本發(fā)明實施例五提供了一種中斷號分配方法,包括:
pci控制器掃描獲取待分配設備標識和與待分配設備連接的中斷線的標識,了解硬件的設備連接情況,然后,從驅動資源中獲取已注冊的分配函數(shù),以調用分配函數(shù)的形式,根據(jù)待分配設備的標識和中斷線的標識得到分配給待分配設備的中斷號;將待分配設備的中斷號寫入pci配置空間中的中斷請求域中,實現(xiàn)為待分配設備分配中斷號;
當中斷類型為非標準類型時,還需要cpu讀取中斷請求域中的中斷號;并且調用中斷掛接函數(shù),將中斷號對應的中斷處理函數(shù)掛接到中斷線的標識對應的中斷鏈表中,使得處理器響應待分配設備的中斷請求時,待分配設備能夠即刻響應,開始工作。
本發(fā)明還提供一種中斷號分配裝置,圖4為本發(fā)明實施例提供的中斷號分配裝置實施例一的結構示意圖,如圖4所示,本發(fā)明實施例提供的裝置包括:第一獲取模塊210和分配模塊220。
具體的,第一獲取模塊210,用于獲取待分配設備標識和與待分配設備連接的中斷線的標識;分配模塊220,用于根據(jù)第一獲取模塊210獲取得到的待分配設備的標識和中斷線的標識將預設的中斷號分配給待分配設備。
其中,中斷號與中斷線的標識對應。
其中,該裝置是用于實現(xiàn)圖1所示的方法,其實現(xiàn)原理和實現(xiàn)效果類似,在此不再贅述。
進一步地,在上述實施例一的技術方案的技術上,在實施例二中,圖5為本發(fā)明實施例提供的中斷號分配裝置實施例二的結構示意圖,如圖5所示,若待分配設備與外部設備互連總線pci連接;則分配模塊220包括:分配模塊220包括:獲取單元221和寫入單元222。
具體的,獲取單元221,根據(jù)待分配設備的標識和中斷線的標識得到分配給待分配設備的中斷號;寫入單元222,將獲取單元221獲取到的待分配設備的中斷號寫入pci配置空間中的中斷請求域。
其中,在本實施例中實現(xiàn)圖2的方法,其實現(xiàn)原理和實現(xiàn)效果類似,在 此不再贅述。
進一步地,在上述實施例一和實施例二的技術方案的基礎上,在本實施例三中,該裝置還包括:第二獲取模塊,用于獲取分配函數(shù);分配模塊220具體用于以調用第二獲取模塊獲得的分配函數(shù)的形式,根據(jù)待分配設備的標識和中斷線的標識將預設的中斷號分配給待分配設備。
具體的,第二獲取模塊具體用于從驅動資源中獲取已注冊的分配函數(shù)。
進一步地,在上述實施例三的技術方案的基礎上,在實施例四中,圖6本發(fā)明實施例提供的中斷線分配裝置實施例四的結構示意圖,如圖6所示,中斷號分配裝置還包括:讀取模塊230和掛接模塊240。
具體的,讀取模塊230,用于讀取中斷請求域中的中斷號;掛接模塊240,用于調用中斷掛接函數(shù),將讀取模塊230讀取到的中斷號對應的中斷處理函數(shù)掛接到中斷線的標識對應的中斷鏈表中。
其中,中斷線與中斷鏈表一一對應。
可選地,在vxworks操作系統(tǒng)中,中斷掛接函數(shù)從vxworks系統(tǒng)中的庫函數(shù)獲取得到,另外,中斷掛接函數(shù)還可以為用戶自己添加的可以實現(xiàn)中斷響應的函數(shù)。
其中,本實施例提供的裝置用于實現(xiàn)圖3所示的方法,實現(xiàn)原理與效果類似,在此不再贅述。
最后應說明的是:以上各實施例僅用以說明本發(fā)明的技術方案,而非對其限制;盡管參照前述各實施例對本發(fā)明進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分或者全部技術特征進行等同替換;而這些修改或者替換,并不使相應技術方案的本質脫離本發(fā)明各實施例技術方案的范圍。