武漢華嵌ARM異常處理小結

2022-01-04 04:10:54 字數 663 閱讀 6477

handlerirq ;中斷響應,從向量表直接跳來sub r14,r14,#4 ;計算返回位址stmfd r13, ;保護現場,一般只需要保護bl irqhandler ;跳到具體的異常處理函式ldmfd r13,^ ;恢復現場

有程式可以看出,通過」sub r14,r14,#4」計算中斷函式的返回位址。那有人一定會問,為什麼計算返回位址的時候要減去4呢?

位址指令

0x100 mov r0,#0x00

0x104 mov r0,#0x00

0x108 mov r1,#0x01

0x10c mov r2,#0x02

看上個**片段,比如在執行位址為0x104的mov指令時,突然來了乙個irq中斷,這個中斷打斷了mov指令的執行,這個時候就要去跳轉到異常處理函式,之後還要返回0x104位址重新執行mov指令。當中斷發生時,lr裡面儲存了使用者模式下pc的值,那麼當執行位址為0x104的mov指令時,pc的值應該是0x10c,前面介紹過,當發生跳轉時,處理器會對lr進行乙個自動的更新動作:lr=lr-0x4,這樣lr裡面的位址是0x10c-0x04=0x108。

但是0x108並不是我們要的位址,因為中斷發生在位址為0x104的mov指令執行的時候,所以中斷處理完後應該返回這個位址。這就是在計算返回位址的時候lr減去4的原因。對於fiq中斷和預取指中止異常,計算返回位址方法和irq相同。

武漢華嵌嵌入式培訓Linux下Qt多執行緒程式設計

作者 武漢華嵌嵌入式培訓中心技術部 1 使用linux平台下的執行緒函式。以下是給出的 片段 此處為連線訊號和槽,通過qt介面中兩按鈕來控制兩個槽函式 connect pthred1start,signal clicked this,slot pthread1start connect pthred...

武漢禮儀會場布置之華農中天建築現場觀摩會

武漢禮儀之2010華農中天建築現場觀摩會現場布置作為武漢禮儀公司,在一般的現場布置上我們武漢禮儀公司是專家,而客戶只是說說想法,由禮儀公司完成整個策劃和布置過程。但是武漢南方禮儀公司曾面臨過這樣的挑戰,那是在2010年的夏天顧客是園林綠化專家,對於會場布置要求非常高,尤其是綠飾方面,好在武漢南方禮儀...