一種中斷處理方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及電子技術(shù)領(lǐng)域,尤其涉及一種中斷處理方法及裝置。
【背景技術(shù)】
[0002]產(chǎn)品業(yè)務(wù)在進(jìn)行驅(qū)動處理時,在臨界區(qū)需要進(jìn)行上鎖的操作,此時需要將中斷請求(interrupt request,IRQ)進(jìn)行屏蔽,以防止業(yè)務(wù)中斷對其操作的影響,但此時如果軟件出現(xiàn)死鎖的場景,那么CPU則無法進(jìn)行任何操作,同時中斷被屏蔽也無法進(jìn)入任何中斷處理。
[0003]針對上述場景需要提出相應(yīng)的解決方法,在先進(jìn)的RISC機器(Advanced(ReducedInstruct1n Set Computer, RISC)Machines,ARM) V8架構(gòu)中,依靠TrustZone 技術(shù)將系統(tǒng)資源分別劃分為安全世界和非安全世界,系統(tǒng)安全/非安全層級如圖1所示,分為EL0/1/2/3共4個層級,其中EL3只有安全層級,EL2只有非安全層級,OS內(nèi)核態(tài)運行在非安全的ELl下。
[0004]進(jìn)一步依靠TrustZone技術(shù)可將對應(yīng)中斷的中斷號配置為安全中斷或非安全中斷,即使在產(chǎn)品業(yè)務(wù)OS下對IRQ/快速中斷請求(fast interrupt request, FIQ)中斷進(jìn)行屏蔽,安全中斷也可以觸發(fā),即OS下無法屏蔽該安全中斷的觸發(fā),例如將看門狗定時器中斷配置為安全中斷時,看門狗定時器中斷無法被屏蔽。
[0005]在ARM V8架構(gòu)中,定時產(chǎn)生安全中斷進(jìn)行監(jiān)測,防止軟件死鎖的場景出現(xiàn)。當(dāng)安全中斷在安全世界觸發(fā)后,則進(jìn)入安全世界的異常向量入口,并在安全世界實現(xiàn)和執(zhí)行與異常向量關(guān)聯(lián)的中斷處理函數(shù);當(dāng)安全中斷在非安全世界觸發(fā)后,也是進(jìn)入到安全世界EL3的異常向量入口,并在安全世界的EL3層級實現(xiàn)和執(zhí)行與異常向量關(guān)聯(lián)的中斷處理函數(shù)。
[0006]這種方式,中斷處理函數(shù)的所有執(zhí)行處于安全世界的EL3安全層級,而安全世界的EL3層級的無法實現(xiàn)OS下的調(diào)度和共享內(nèi)存操作,并且安全世界和非安全世界使用不同的頁表配置,無法滿足非安全世界下OS的相關(guān)訪問。
【發(fā)明內(nèi)容】
[0007]本發(fā)明實施例提供一種中斷處理方法及裝置,可以將與安全世界的異常向量表關(guān)聯(lián)的目標(biāo)中斷處理函數(shù)轉(zhuǎn)由非安全世界執(zhí)行,從而實現(xiàn)OS下的調(diào)度和共享內(nèi)存操作,滿足非安全世界下OS的相關(guān)訪問。
[0008]本發(fā)明實施例第一方面提供了一種中斷處理方法,可包括:
[0009]當(dāng)系統(tǒng)代碼在非安全世界運行至目標(biāo)位置定時產(chǎn)生安全中斷時,獲取安全世界的異常向量表;
[0010]判斷與所述異常向量表關(guān)聯(lián)的目標(biāo)中斷處理函數(shù)是否由非安全世界執(zhí)行;
[0011]若所述目標(biāo)中斷處理函數(shù)是由非安全世界執(zhí)行,則控制所述安全世界將所述目標(biāo)中斷處理函數(shù)的地址傳輸至非安全世界;
[0012]控制所述非安全世界根據(jù)所述地址查找所述目標(biāo)中斷處理函數(shù),并執(zhí)行所述目標(biāo)中斷處理函數(shù)。
[0013]基于第一方面,在第一方面的第一種可行的實施方式中,所述目標(biāo)中斷處理函數(shù)的地址為系統(tǒng)通過高級配置與電源接口 ACPI或者同步異常指令傳輸至安全世界的地址。
[0014]基于第一方面,在第一方面的第二種可行的實施方式中,所述判斷與所述異常向量表關(guān)聯(lián)的目標(biāo)中斷處理函數(shù)是否由非安全世界執(zhí)行之前,還包括:
[0015]獲取與所述異常向量表關(guān)聯(lián)的目標(biāo)中斷處理函數(shù)的目標(biāo)中斷號;
[0016]所述判斷與所述異常向量表關(guān)聯(lián)的目標(biāo)中斷處理函數(shù)是否由非安全世界執(zhí)行,包括:
[0017]根據(jù)預(yù)先設(shè)置的各個中斷號對應(yīng)的中斷處理函數(shù)執(zhí)行世界類別,判斷所述目標(biāo)中斷號對應(yīng)的目標(biāo)中斷處理函數(shù)是否由非安全世界執(zhí)行;所述執(zhí)行世界類別包括安全世界執(zhí)行或者非安全世界執(zhí)行。
[0018]基于第一方面的第二種可行的實施方式,在第一方面的第三種可行的實施方式中,所述執(zhí)行所述目標(biāo)中斷處理函數(shù)之后,還包括:
[0019]若檢測到所述目標(biāo)中斷處理函數(shù)執(zhí)行完成,控制所述非安全世界通過安全調(diào)用匯編指令向所述安全世界指示所述目標(biāo)中斷處理函數(shù)執(zhí)行完畢;
[0020]控制所述安全世界根據(jù)預(yù)先備份的數(shù)據(jù),恢復(fù)所述目標(biāo)位置的上下文數(shù)據(jù),并返回至所述非安全世界的所述目標(biāo)位置繼續(xù)執(zhí)行系統(tǒng)代碼。
[0021]基于第一方面的第二種可行的實施方式,在第一方面的第四種可行的實施方式中,所述方法還包括:
[0022]若所述目標(biāo)中斷號對應(yīng)的目標(biāo)中斷處理函數(shù)由安全世界執(zhí)行,則控制所述安全世界調(diào)用并執(zhí)行所述目標(biāo)中斷處理函數(shù)。
[0023]本發(fā)明第二方面提供一種中斷處理裝置,包括:
[0024]第一獲取模塊,用于當(dāng)系統(tǒng)代碼在非安全世界運行至目標(biāo)位置定時產(chǎn)生安全中斷時,獲取安全世界的異常向量表;
[0025]判斷模塊,用于判斷與所述異常向量表關(guān)聯(lián)的目標(biāo)中斷處理函數(shù)是否由非安全世界執(zhí)行;
[0026]第一控制模塊,用于若所述目標(biāo)中斷處理函數(shù)是由非安全世界執(zhí)行,則控制所述安全世界將所述目標(biāo)中斷處理函數(shù)的地址傳輸至非安全世界;
[0027]第二控制模塊,用于控制所述非安全世界根據(jù)所述地址查找所述目標(biāo)中斷處理函數(shù),并執(zhí)行所述目標(biāo)中斷處理函數(shù)。
[0028]基于第二方面,在第二方面的第一種可行的實施方式中,所述目標(biāo)中斷處理函數(shù)的地址為系統(tǒng)通過高級配置與電源接口 ACPI或者同步異常指令傳輸至安全世界的地址。
[0029]基于第二方面,在第二方面的第二種可行的實施方式中,所述裝置還包括:
[0030]第二獲取模塊,用于獲取與所述異常向量表關(guān)聯(lián)的目標(biāo)中斷處理函數(shù)的目標(biāo)中斷號;
[0031]所述判斷模塊具體用于根據(jù)預(yù)先設(shè)置的各個中斷號對應(yīng)的中斷處理函數(shù)執(zhí)行世界類別,判斷所述目標(biāo)中斷號對應(yīng)的目標(biāo)中斷處理函數(shù)是否由非安全世界執(zhí)行;所述執(zhí)行世界類別包括安全世界執(zhí)行或者非安全世界執(zhí)行。
[0032]基于第二方面第二種可行的實施方式,在第二方面的第三種可行的實施方式中,所述裝置還包括:
[0033]第三控制模塊,用于若檢測到所述目標(biāo)中斷處理函數(shù)執(zhí)行完成,控制所述非安全世界通過安全調(diào)用匯編指令向所述安全世界指示所述目標(biāo)中斷處理函數(shù)執(zhí)行完畢;
[0034]第四控制模塊,用于控制所述安全世界根據(jù)預(yù)先備份的數(shù)據(jù),恢復(fù)所述目標(biāo)位置的上下文數(shù)據(jù),并返回至所述非安全世界的所述目標(biāo)位置繼續(xù)執(zhí)行系統(tǒng)代碼。
[0035]基于第二方面第二種可行的實施方式,在第二方面的第四種可行的實施方式中,所述裝置還包括:
[0036]第五控制模塊,用于若所述目標(biāo)中斷號對應(yīng)的目標(biāo)中斷處理函數(shù)由安全世界執(zhí)行,則控制所述安全世界調(diào)用并執(zhí)行所述目標(biāo)中斷處理函數(shù)。
[0037]本發(fā)明實施例中,當(dāng)系統(tǒng)代碼在非安全世界運行至目標(biāo)位置定時產(chǎn)生安全中斷時,獲取安全世界的異常向量表,判斷與該異常向量表關(guān)聯(lián)的目標(biāo)中斷處理函數(shù)是否由非安全世界執(zhí)行,若該目標(biāo)中斷處理函數(shù)由非安全世界執(zhí)行,則控制安全世界將目標(biāo)中斷處理函數(shù)的地址傳輸至非安全世界,控制非安全世界根據(jù)該地址查找到目標(biāo)中斷處理函數(shù),并執(zhí)行該目標(biāo)中斷處理函數(shù),這種方式可以將與安全世界的異常向量表關(guān)聯(lián)的目標(biāo)中斷處理函數(shù)轉(zhuǎn)由非安全世界執(zhí)行,從而實現(xiàn)OS下的調(diào)度和共享內(nèi)存操作,滿足非安全世界下OS的相關(guān)訪問。
【附圖說明】
[0038]為了更清楚地說明本發(fā)明實施例中的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0039]圖1是本發(fā)明實施例提供的一種ARM V8架構(gòu)示意圖;
[0040]圖2是本發(fā)明實施例提供的一種中斷處理方法的流程示意圖;
[0041]圖3是本發(fā)明實施例提供的另一種中斷處理方法的流程示意圖;
[0042]圖4是本發(fā)明實施例提供的一種結(jié)合具體軟件的應(yīng)用場景示意圖;
[0043]圖5是本發(fā)明實施例提供的一種中斷處理裝置的結(jié)構(gòu)示意圖;
[0044]圖6是本發(fā)明實施例提供的一種硬件架構(gòu)示意圖。
【具體實施方式】
[0045]下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。
[0046]請參照圖1,是本發(fā)明實施例提供的一種ARM V8架構(gòu)示意圖,如圖所示,該系統(tǒng)架構(gòu)包括非安全世界和安全世界,其中安全/非安全層級如下圖所示,分為異常層級(Except1n Level,EL) 0/1/2/3共4個層級,其中EL3只有安全層級,EL2只有非安全層級,OS內(nèi)核態(tài)運行在非安全世界的ELl下。依靠TrustZone技術(shù)可將對應(yīng)中斷號配置為安全中斷或非安全中斷,即使在產(chǎn)品業(yè)務(wù)OS下對IRQ/FIQ中斷進(jìn)行屏蔽,安全中斷也可以觸發(fā),即OS下無法屏蔽該中斷的觸發(fā),例如看門狗定時器。
[0047]安全中斷觸發(fā)后,該安全中斷無法直接進(jìn)入OS下配置的非安全世界ELl的異常向量入口處理,而是進(jìn)入到安全世界EL3的異常向量入口,該異常向量由安全世界初始化,而EL3層級的安全世界無法實現(xiàn)OS下的調(diào)度和共享內(nèi)存操作(只有非安全世界才可以實現(xiàn)OS下的調(diào)度和共享內(nèi)存),并且安全世界和非安全世界使用不同的頁表配置,無法滿足非安全世界下OS的相關(guān)訪問,如日志記錄等操作。因此,本發(fā)明實施例針對這個問題提出一種中斷處理方法,可以當(dāng)與安全世界的異常向量關(guān)聯(lián)的目標(biāo)中斷處理函數(shù)需要在非安全世界執(zhí)行時,將該目標(biāo)中斷處理函數(shù)的地址由安全世界傳輸至非安全世界,并由非安全世界執(zhí)行該目標(biāo)中斷處理函數(shù),該目標(biāo)中斷處