ARM9 中斷學習

2021-07-15 12:38:08 字數 952 閱讀 2313

中斷的概念

指 cpu 在正常執行程式時,由於內部或外部事件引起 cpu 暫時中止執行現行程式,轉

去執行請求 cpu 為其服務的那個外設或事件的服務程式,待該服務程式執行完後又返

回到被中止的程式這樣乙個過程。

中斷的優先順序:

為使系統能及時響應並處理發生的所有中斷,系統根據引起中斷事件的重要性和緊迫程度,硬體將中斷源分為若干個級別,稱作中斷優先順序。

中斷的巢狀:

是指中斷系統正在執行乙個中斷服務時,有另乙個優先順序更高的中斷提出中斷請求,這時會暫時終止當前正在執行的級別較低的中斷源的服務程式,去處理級別更高的中斷源,待處理完畢,再返回到被中斷了的中斷服務程式繼續執行,這個過程就是中斷巢狀。

preserve8

先是在啟動**裡設定異常向量表

start

b reset

b halt

b halt

b halt

b halt

b halt

b _irq

b halt

reset

(關閉看門狗)

ldr sp,=(0x32000000+0x100000) ;在reset中設定reset異常的棧指標

mov r0,#0x53 ; 設定 arm9 的工作模式和中斷允許

msr cpsr_cxsf,r0

_irq

ldr sp,=(0x31000000+0x100000)

s***b sp!,

import do_irq

bl do_irq

ldmia sp!,^ ;壓棧內容出棧

halt

b halt

void do_irq() //中斷服務函式

{ unsigned int i;

for(i=0; i<4; i++) //四個按鍵

{ if(srcpnd1 & (1<

ARM9 中斷管理

s3c2410的中斷異常處理模組總共由以下暫存器構成 srcpnd source pending register intmod interrupt mode register intmsk interrupt mask register priority priority register int...

ARM9學習筆記之 MMU

我記得有一次我去應聘arm linux軟體工程師。結果被問到arm中的虛擬記憶體是怎麼管理的。由於我只對x86平台下的mmu了解,所以我被問倒了。原來我所學的只是皮毛。還有很多東西值得我去深入。要做arm linux下的驅動,熟悉虛擬記憶體應該是必須的。arm9中的虛擬記憶體是怎麼實現的呢?以下是我...

ARM9學習筆記之 彙編

arm系列晶元與pc系列 可能我說法不太準確 晶元在指令設計上就有本質的區別。arm中每條指令是精簡指令集要麼是32位,要麼是16位。而pc的指令是複雜指令集,一條指令可以由多個位元組組成。1.關於函式呼叫方法 在arm彙編中,函式呼叫非常靈活。1 bl指令 bl initmem 呼叫 initme...