下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、arm中斷處理的安全性與高效性研究在系統(tǒng)中常用的risc處理器是核,它具有體積小、功耗低、成本低、性價(jià)比高的特點(diǎn)。然而,不管是哪種型號(hào)的arm處理器,也無(wú)論該嵌入式系統(tǒng)中是否有操作系統(tǒng),中斷處理,特殊是irq中斷,始終是必需的,而中斷處理的核心問(wèn)題是上下文的保存。能否平安而又高效地保存上下文,將影響一個(gè)嵌入式系統(tǒng)的性能與穩(wěn)定。筆者對(duì)arm處理器的一般中斷處理、任務(wù)切換中斷處理、可重人中斷處理和基于優(yōu)先級(jí)的可重人性中斷處理的上下文保存技術(shù)舉行分析與總結(jié)。為保證理論的正確性,核心的程序代碼都經(jīng)過(guò)了試驗(yàn)的檢測(cè)。1 系統(tǒng)中斷處理簡(jiǎn)介arm處理器的中斷主要有兩種:irq一般中斷和fiq迅速中斷。迅速中斷
2、本質(zhì)上與一般中斷沒(méi)有太大的差別,它們?cè)谔幚頇C(jī)制上有許多相同的地方。irq中斷是最常見(jiàn)的也是最為影響系統(tǒng)性能的,所以對(duì)它的討論與處理也就最有價(jià)值。下面簡(jiǎn)要地介紹一下irq異樣發(fā)生時(shí)arm處理器的工作過(guò)程。在irq中斷發(fā)生時(shí),arm處理器的硬件會(huì)自動(dòng)執(zhí)行以下工作:將被中斷任務(wù)模式的cpsr值保存到irq模式中的spsr寄存器中;將被中斷任務(wù)模式的pc值保存到irq模式中的lr寄存器中;將模式自動(dòng)切換到irq模式,并將cpsr中的bit7位置1禁止后繼irq中斷的發(fā)生;pc被給予0xl8的地址值,程序?qū)?xl8片開(kāi)頭執(zhí)行。結(jié)合圖1,可以更好地理解arm中斷處理機(jī)制的工作過(guò)程。2 一般中斷處理有些a
3、rm嵌入式系統(tǒng)可能對(duì)中斷的要求比較低,即發(fā)生中斷后首先查詢相應(yīng)的中斷源,然后舉行中斷服務(wù),最后從中斷服務(wù)程序中返回到被中斷處繼續(xù)運(yùn)行程序。如何在這種容易應(yīng)用中保證平安又高效地處理中斷呢?“平安”就意味著中斷發(fā)生時(shí)上下文被完好保存不被破壞,“高效”就是說(shuō)保存盡可能少的寄存器(固然是建立在平安的基礎(chǔ)上的)。由圖1可知,在一般中斷處理中,中斷服務(wù)就可以在irq模式中運(yùn)行。按照atpcs的調(diào)用規(guī)章,在子程序調(diào)用中arm編譯器保存了r4r11寄存器,因此就沒(méi)有須要再次保存。那么剩下的寄存器就必需予以保存,防止從中斷服務(wù)程序返回后被破壞??梢杂脜R編語(yǔ)言和書(shū)寫(xiě)處理代碼。首先假設(shè)初始化代碼中已正確建立了irq
4、堆棧。全部已使能中斷的查詢與服務(wù)將同時(shí)發(fā)生的中斷所有服務(wù),以提高效率ldmfd sp!,r0-r3,r12,r14 ;復(fù)原上下文在上述保存上下文中沒(méi)有須要保存spsr。因在非嵌套的中斷處理程序中,它不會(huì)被任何挨次的中斷所破壞。假如用c語(yǔ)言來(lái)書(shū)寫(xiě)該處理程序,可以用法關(guān)鍵字一irq來(lái)解釋,以告知編譯器實(shí)現(xiàn)如下的操作:保存atpcs規(guī)定的被破壞的寄存器;保存其他中斷處理程序中用到的寄存器;同時(shí)將(lr-4)給予程序計(jì)數(shù)器pc,實(shí)現(xiàn)中斷程序的返回并且復(fù)原cpsr寄存器的內(nèi)容。一般中斷處理的c語(yǔ)言程序可以按如下格式編寫(xiě):可見(jiàn),無(wú)論是用c語(yǔ)言還是匯編語(yǔ)言來(lái)編寫(xiě),它們的工作原理都是一樣的。圖2給出了一般中斷
5、處理過(guò)程中,arm寄存器的保存暗示圖(虛線是壓棧保存,實(shí)線是彈棧復(fù)原)。圖中與程序處理的步驟相對(duì)應(yīng),可以協(xié)助理解處理器上下文的保存過(guò)程。3 任務(wù)切換有操作系統(tǒng)的嵌入式系統(tǒng)中,中斷的發(fā)生要求保存所有寄存器的內(nèi)容到任務(wù)的棧中,它不是基于平安的考慮是由于可能中斷會(huì)導(dǎo)致任務(wù)的切換。任務(wù)切換發(fā)生時(shí)全部任務(wù)的寄存器的值都要保存到該任務(wù)的棧中。下個(gè)任務(wù)的上下文將從該任務(wù)棧中得以復(fù)原處處理器的寄存器中。下面就本問(wèn)題作出分析并給出實(shí)現(xiàn)的程序代碼。從圖1中斷處理寄存器的保存可知,中斷發(fā)生后任務(wù)的cpsr和pc兩寄存器的值在irq模式的spsr和lr中,所以不能容易地切換到任務(wù)運(yùn)行的模式中,否則被中斷任務(wù)返回時(shí)的c
6、psr和pc將不行見(jiàn)(由于它們保存在irq模式的專用寄存器中,在其他模式中無(wú)法操作)。此時(shí),可以考慮設(shè)置一些變量區(qū)作為媒介,將其予以轉(zhuǎn)存到任務(wù)運(yùn)行模式的棧中去。下面假設(shè)任務(wù)切換是在svc模式中運(yùn)行的。結(jié)合上面的分析,可以有圖3所示的保存任務(wù)切換的暗示圖(虛線是壓棧保存,實(shí)線是彈棧復(fù)原;lr_frame和spsr_frame是變量區(qū))。結(jié)合圖3任務(wù)切換中斷處理中的步驟,可以用匯編語(yǔ)言寫(xiě)出相對(duì)應(yīng)的中斷處理程序:4 可重入性中斷假如希翼在處理中斷時(shí)仍能響應(yīng)其他中斷哀求以此來(lái)縮短中斷延時(shí),就必需設(shè)計(jì)可重人性中斷??芍厝胄灾袛嗍翘幚矶鄠€(gè)中斷的一種辦法,但它也同時(shí)帶來(lái)新的問(wèn)題。在irq中斷模式中,假如挺直
7、重新允許了irq中斷,此時(shí)由于執(zhí)行一條bl命令而將子程序返回的地址保存在lr_irq中,而在此間中斷發(fā)生了。新來(lái)的中斷會(huì)將其返回地址裝入lr_irq中,此時(shí)舊中斷子程序的返回地址必將被籠罩從而導(dǎo)致系統(tǒng)紊亂。此種情形是無(wú)法通過(guò)將lr_irq壓棧來(lái)解決的,如程序語(yǔ)句:但是仍不能排解在保存lr之前中斷發(fā)生的可能性。要解決上述lr_irq被破壞的問(wèn)題,就必需切換處理器的模式,頻繁的是切換到svc處理模式。在svc模式中,通過(guò)bl調(diào)用子程序時(shí)會(huì)將返回地址保存在lr_svc之中。此時(shí)新中斷發(fā)生(由于它會(huì)將返回地址保存到lr_irq而不是lr_svc),不會(huì)破壞舊中斷中子程序返回地址了。有了基于上述的原理分
8、析再來(lái)編寫(xiě)可重入性中斷的代碼就思路清楚了。但是為了保證處理的高效性,盡可能地及早允許中斷以縮短延時(shí),在保存完lr_irq和spsr_irq后,就馬上切換到svc模式中并重新允許中斷,4所示(虛線是壓棧保存,實(shí)線是彈棧復(fù)原)。結(jié)合圖4中的處理步驟,可以比較清楚地寫(xiě)出可重入中斷處理的匯編語(yǔ)言程序:5 基于優(yōu)先級(jí)的可重入中斷在上面的可重人中斷中可能發(fā)生這種情形,某高優(yōu)先級(jí)中斷在中斷服務(wù)程序中由于重新允許了中斷哀求而被另一低優(yōu)先級(jí)中斷所打斷,于是高優(yōu)先級(jí)中斷不得不等到低優(yōu)先級(jí)中斷完畢后方可繼續(xù)運(yùn)行。這樣一來(lái),高優(yōu)先級(jí)中斷服務(wù)的延遲將越發(fā)增大。為了削減上述高優(yōu)先級(jí)中斷的延遲,特殊引入了基于優(yōu)先級(jí)的可重人
9、性中斷。它的原則是:在中斷服務(wù)程序中只允許高于本中斷的其他中斷源予以哀求中斷,因此一個(gè)高優(yōu)先級(jí)的中斷將比一個(gè)低優(yōu)先級(jí)的中斷優(yōu)先得到服務(wù),這是大多數(shù)嵌入式系統(tǒng)中所必須的。實(shí)行的辦法是,當(dāng)某優(yōu)先級(jí)中斷發(fā)生時(shí),在其中斷處理程序中可以用法屏蔽位將低于或等于該優(yōu)先級(jí)的中斷予以屏蔽。特殊需要注重的是,在退出本中斷時(shí)要復(fù)原原中斷寄存器的值。在此假設(shè)有這樣幾個(gè)中斷寄存器(其實(shí)arm的無(wú)數(shù)處理器都有此類的中斷控制寄存器):irqmask,中斷源屏蔽寄存器;irqstatus,中斷標(biāo)記寄存器;irqclear,清除中斷標(biāo)記寄存器。同時(shí)假設(shè)中斷的優(yōu)先級(jí)是從高位(bit31)到低位(bito)遞減的,那么首先可以預(yù)定義如下的屏蔽變量值:本程序的上下文保存與可重人中斷處理基本相同。增強(qiáng)的部分在于中斷屏蔽碼的查詢與設(shè)置,相應(yīng)的處理步驟可以參考圖4。結(jié) 語(yǔ)本文重點(diǎn)討論了a
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年煤礦資產(chǎn)轉(zhuǎn)讓正式協(xié)議版B版
- 2024版代付款服務(wù)與信用評(píng)估合同模板3篇
- 2024年新人專業(yè)技能培養(yǎng)與考核服務(wù)合同2篇
- 2024年度生產(chǎn)車間承包與設(shè)備租賃及維修合同3篇
- 2024年度綠色建筑合作開(kāi)發(fā)項(xiàng)目房地產(chǎn)聯(lián)建合作協(xié)議書(shū)3篇
- 單價(jià)、數(shù)量、總價(jià)(教學(xué)實(shí)錄)2024-2025學(xué)年三年級(jí)上冊(cè)數(shù)學(xué)滬教版
- 2024年按揭房產(chǎn)轉(zhuǎn)讓與貸款利率調(diào)整風(fēng)險(xiǎn)協(xié)議3篇
- 2023七年級(jí)數(shù)學(xué)下冊(cè) 第7章 一元一次不等式與不等式組7.1 不等式及其基本性質(zhì)教學(xué)實(shí)錄 (新版)滬科版
- 2024年旅游用地買(mǎi)賣協(xié)議3篇
- 2024年三方投資協(xié)議范本:高科技研發(fā)中心共建合同3篇
- 乙烯裂解汽油加氫裝置設(shè)計(jì)
- 計(jì)劃分配率和實(shí)際分配率_CN
- 小學(xué)語(yǔ)文作文技巧六年級(jí)寫(xiě)人文章寫(xiě)作指導(dǎo)(課堂PPT)
- NLP時(shí)間線療法
- JJG596-2012《電子式交流電能表檢定規(guī)程》
- 醫(yī)療質(zhì)量檢查分析、總結(jié)、反饋
- 《APQP培訓(xùn)資料》
- 通信線路架空光纜通用圖紙指導(dǎo)
- 家具銷售合同,家居訂購(gòu)訂貨協(xié)議A4標(biāo)準(zhǔn)版(精編版)
- 食品加工與保藏課件
- 銅芯聚氯乙烯絕緣聚氯乙烯護(hù)套控制電纜檢測(cè)報(bào)告可修改
評(píng)論
0/150
提交評(píng)論