VxWorks中使用intConnect()掛接中斷服務程序,但對於PCI設備,一般采用pciIntConnect()掛接中斷,它與intConnect()的主要不同在於intConnect()使用的中斷向量是獨占的,而pciIntConnect()則可使多個外部中斷共享一個中斷向量。它在內部使用一個鏈表管理多個ISR,發生中斷時,鏈接在一個鏈表上的各個ISR被依次調用,pciIntConnect()要求每個ISR被調用時,應該首先查詢是否為自己的設備產生的中斷,不是則應立即返回,以繼續調用其它ISR。
VxWorks中面向應用的編程接口為intConnect(),其原型如下:
STATUS intConnect( VOIDFUNCPTR *vector,VOIDFUNCPTR routine,int parameter)
其中
vector:要掛接的中斷向量地址;
routine:中斷發生時調用ISR;
parameter:傳遞給IST的參數。
一般調用intConnect函數時需要使用INUM_TO_IVEC()函數對終端號進行處理。