異常向量表

2021-08-06 05:35:14 字數 2335 閱讀 2129

1.1異常-exceptions

異常:因為內部或者外部的一些事件,導致處理器停下正在處理的工作,轉而去處理這些發生的事件。

<>

1.2異常型別

arm處理器支援7種型別的異常

1.3異常向量

當一種異常發生的時候,arm處理器會跳轉到

對應該異常的固定位址去執行異常處理程式,而

這個固定的位址,就稱之為

異常向量。

reset (重啟,休眠->工作)

undefined instructions (自己定義的中斷)

software instructions (軟中斷swi)

prefetch abort (instruction fetch memory abort 預取指令中斷)

data abort (data access memory abort 資料訪問中斷)

irq (interrupt 中斷)

fiq (fast interrupt 快速中斷)

cp15如果配置為高位模式,使用high vector address

2.**編寫

start.s檔案編寫

.text

.global _start

_start:

b reset

ldr pc, _undefined_interrupt

ldr pc, _software_interrupt

ldr pc, _prefetch_abort

ldr pc, _data_abort

ldr pc

,_not_used         這裡因為手冊裡irq從0x00000018開始,而沒從0x00000014開始。所以彙編中要留個空

ldr pc, _irq

ldr pc, _fiq

_undefined_interrupt:

.word undefined_interrupt     uboot中的寫法,如果用ldr pc, = 

undefined_interrupt。其實也可以。

_software_interrupt:

.word software_interrupt

_prefetch_abort:

.word prefetch_abort

_data_abort:

.word data_abort

_not_used:

.word not_used

_irq:

.word irq

_fiq:

.word fiq

undefined_interrupt:

nopsoftware_interrupt:

nopprefetch_abort:

nopdata_abort:

nopnot_used:

nopirq:

nopfiq:

nopreset:

nop gboot.lds編寫

output_arch(arm)

這個標明了輸出的架構格式

entry(_start)                    設定了cpu從哪個位址開始

sections .=

align

(4);

.data :.=

align

(4);

bss_start =

.;                    記錄bss段的起始位址

.bss :

bss_end =

.;                        記錄bss段的結束位址}

makefile編寫

all :

start

.oarm-linux-ld -tgboot.lds -o gboot.elf $^

arm-linux-objcopy -o binary gboot.elf gboot.bin

#從這裡

先寫,可以寫個通用的方式

%.o : %.

sarm-linux-gcc -g -c $^

#然後給c檔案留個位置

%.o : %.c

arm-linux-gcc -g -c $^

0給主人留下些什麼吧!~~

設定異常向量表

異常 因為內部或者外部的一些事件,導致處理器停下正在處理的工作,轉而去處理這些發生的事件。arm處理器支援的異常型別為 由圖可知,arm處理器支援7種異常型別,分別是重新啟動,未定義指令,軟中斷,預取異常,資料異常,中斷,快速中斷。異常向量 當一種異常發生的時候,arm處理器會跳轉到對應該異常的固定...

ARM的異常及向量表

arm具有7種異常,分別為 1 復位 2 未定義指令 3 軟中斷 4 預取指令終止 5 資料終止 6 中斷請求 irq 7 快速中斷請求 fiq 用一句通俗的話去表達arm的運 況,那就是arm總會在執行在以上7種異常情況的某一種之下。初初了解arm時總會難於去了解這個 異常 是什麼樣的乙個意思,到...

中斷向量表

中斷向量表 中斷源的識別標誌,可用來形成相應的中斷服務程式的入口位址或存放中斷服務程式的首位址 稱為中斷向量。在pc at中由硬體產生的中斷標識碼被稱為中斷型別號 當然,中斷型別號還有其他的產生方法,如指令中直接給出 cpu自動形成等 即在中斷響應期間 8259a 產生的是當前請求中斷的最高優先順序...