首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

ARM开发板上uClinux内核移植(3)

ARM开发板上uClinux内核移植(3)

3

STRCC r2, [r0], #4;cc:Carry clear;save R2 to R0

address, R0 =R0+ 4。

BCC %B0

ldr r1,=_IRQ_BASEADDRESS

ldr r0,=ExceptionHanlderBegin ;if there isn't

'subs pc,lr,#4' at 0x18, 0x1c

ldr r3,=ExceptionHanlderEnd

0

CMP r0, r3

;put the vector table at _IRQ_BASEADDRESS(0xc000000)

LDRCC r2, [r0],

#4

STRCC r2, [r1], #4

BCC %B0

ldr r1,=DIsrIRQ;put the IRQ judge program at

_IRQ_BASEADDRESS+0x80(0xc000080)

ldr r0,=IsrIRQ ;if there isn't 'subs

pc,lr,#4' at 0x18, 0x1c

ldr r3,=IsrIRQEnd

0

CMP r0, r3

LDRCC r2,

[r0], #4

STRCC r2, [r1], #4

BCC %B0

ldr r1, =MyHandleIRQ ;MyHandleIRQ point to DIsrIRQ

ldr r0,

=ExceptionHanlderBegin

ldr r4, =_IRQ_BASEADDRESS;

sub r0, r1, r0

add

r0, r0,r4

ldr r1, =DIsrIRQ

str r1, [r0]

定义Handlexxx:

^ (_IRQ_BASEADDRESS)

HandleReset # 4

HandleUndef # 4

HandleSWI # 4

HandlePabort # 4

HandleDabort # 4

HandleReserved # 4

HandleIRQ # 4

HandleFIQ # 4

^ (_IRQ_BASEADDRESS+0x80)

DIsrIRQ # 4

;IntVectorTable

^

(_IRQ_BASEADDRESS+0x100)

HandleADC # 4

HandleRTC # 4

HandleUTXD1 # 4

HandleUTXD0 # 4

HandleSIO # 4

HandleIIC # 4

HandleURXD1 # 4

HandleURXD0 # 4

HandleTIMER5 # 4

HandleTIMER4 # 4

HandleTIMER3 # 4

HandleTIMER2 # 4

HandleTIMER1 # 4

HandleTIMER0 # 4

HandleUERR01 # 4

HandleWDT # 4

HandleBDMA1 # 4

HandleBDMA0 # 4

HandleZDMA1 # 4

HandleZDMA0 # 4

HandleTICK # 4

HandleEINT4567 # 4

HandleEINT3 # 4

HandleEINT2 # 4

HandleEINT1 # 4

HandleEINT0 # 4
继承事业,薪火相传
返回列表