日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]/****************************************************說 明 :ARM中斷區(qū)別-LPC2142與S3C2440的區(qū)別***************************************************/ LPC 與三星ARM的區(qū)別就是三星固定了中斷向量的地址,而LP

/***************************************************
*說 明 :ARM中斷區(qū)別-LPC2142與S3C2440的區(qū)別
***************************************************/

LPC 與三星ARM的區(qū)別就是三星固定了中斷向量的地址,而LPC的就沒有。例如三星的S3C2440

所有的中斷源都有相對應(yīng)的中斷向量。

關(guān)于三星ARM

(1)使用向量中斷

ENTRY

b ResetHandler ; 0x00

b HandlerUndef ; 0x04

b HandlerSWI ; 0x08

b HandlerPabort ;0x0c

b HandlerDabort ; 0x10

b .; 0x14

b HandlerIRQ ; 0x18

b HandlerFIQ ; 0x1c

ldrpc,=HandlerEINT0; 0x20

ldrpc,=HandlerEINT1

ldrpc,=HandlerEINT2

ldrpc,=HandlerEINT3

ldrpc,=HandlerEINT4567

ldrpc,=HandlerTICK; 0x34

b.

b.

ldrpc,=HandlerZDMA0; 0x40

ldrpc,=HandlerZDMA1

ldrpc,=HandlerBDMA0

ldrpc,=HandlerBDMA1

ldrpc,=HandlerWDT

ldrpc,=HandlerUERR01; 0x54

b.

b.

ldrpc,=HandlerTIMER0; 0x60

ldrpc,=HandlerTIMER1

ldrpc,=HandlerTIMER2

ldrpc,=HandlerTIMER3

ldrpc,=HandlerTIMER4

ldrpc,=HandlerTIMER5; 0x74

b.

b.

ldrpc,=HandlerURXD0; 0x80

ldrpc,=HandlerURXD1

ldrpc,=HandlerIIC

ldrpc,=HandlerSIO

ldrpc,=HandlerUTXD0

ldrpc,=HandlerUTXD1 ; 0x94

b.

b.

ldrpc,=HandlerRTC; 0xa0

b.

b.

b.

b.

b .

b.

ldrpc,=HandlerADC; 0xb4


精析:很大不同的是ldr pc,=HandlerEINT0開始不同,三星ARM恰當(dāng)利用了這些地址,很方便完成中斷的跳轉(zhuǎn)。


(2)不使用向量中斷

ENTRY

b ResetHandler ; for debug

b HandlerUndef ; handlerUndef

b HandlerSWI ; SWI interrupt handler

b HandlerPabort ; handlerPAbort

b HandlerDabort ; handlerDAbort

b .; handlerReserved

b IsrIRQ

b HandlerFIQ

. . . . . .

IsrIRQ

sub sp,sp,#4 ; reserved for PC

stmfd sp!,{r8-r9}

ldr r9,=I_ISPR

ldr r9,[r9]

mov r8,#0x0

0 movs r9,r9,lsr #1

bcs %F1

add r8,r8,#4

b %B0

1 ldr r9,=HandleADC

add r9,r9,r8

ldr r9,[r9]

str r9,[sp,#8]

ldmfd sp!,{r8-r9,pc}

.. . . . .

HandleADC # 4

HandleRTC # 4

HandleUTXD1 # 4

HandleUTXD0 # 4

.. . . . .

HandleEINT3 # 4

HandleEINT2 # 4

HandleEINT1 # 4

HandleEINT0 # 4 ; 0xc1(c7)fff84

精析:

很大不同的是IsrIRQ,還有的是IsrIRQ沒有進(jìn)行sub lr,lr,#4的操作。

原因是這里沒有出現(xiàn)過函數(shù)調(diào)用,那么lr仍然

是進(jìn)入中斷前保存的lr的值.由于當(dāng)函數(shù)加上__irq關(guān)鍵字(中斷服務(wù)函數(shù))時(shí),

編譯器在執(zhí)行中斷服務(wù)函數(shù)之前自動添加上

sub lr,lr,#4

stmfd sp!,{r0-r3,r12,lr}(只壓棧r0-r3,r12,lr原因時(shí)ARM內(nèi)核進(jìn)入中斷時(shí)默認(rèn)壓棧r4-r7)

.....

ldmfd sp!,{r0-r3,r12,pc}^

注意:IsrIRQ是不可重入的。

; 在這里不出現(xiàn)sub lr,lr,#4原因是這里沒有出現(xiàn)過函數(shù)調(diào)用,那么lr仍然

; 是進(jìn)入中斷前保存的lr的值.由于當(dāng)函數(shù)加上__irq關(guān)鍵字(中斷服務(wù)函數(shù))時(shí),

; 編譯器在執(zhí)行中斷服務(wù)函數(shù)之前自動添加上

; sub lr,lr,#4

; stmfd sp!,{r0-r3,r12,lr}(只壓棧r0-r3,r12,lr原因時(shí)ARM內(nèi)核進(jìn)入中斷時(shí)默認(rèn)壓棧r4-r7)

; .....

; ldmfd sp!,{r0-r3,r12,pc}^

; 注意:IsrIRQ是不可重入的。

關(guān)

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉