在4510b上设置了时钟中断,可是发现0x18处的中断入口都未被运行,请教各位大侠!!!!
我的具体设置如下:
在地址0x18的中断入口处设指令: b timer_handle ;跳转中断处理
主程序中依次设置: 0x3ff4000处,INTMOD=0X0 ;设定所有中断都为普通中断
0x3ff4008处,INTMSK=0X1FFBFF ;打开TIMER0的中断掩码位
0x3ff6004处,TDATA0=0X3FFFFF ;设置计时器0的计时值
0x3ff6000处,TMOD=0X1 ;设定TIMER0为触发模式,并使能
是否是某个控制寄存器未设置导致,导致中断未触发,或是其他原因?????
有的CPU中断产生时,肯定会跳到0x18处,但是有可能不执行位于0x18处的指令(忽略指令,详见处理器数据手
册),所以你设置了断点后,就知道设置是否完全正确。
已在0x18处设了断点,没有跳转过去,所以怀疑中断设置错了,可是对照手册又好象没错???
将中断设置的程序贴在这里了,请各位指导一下。
;中断设置
ldr r1,=INTMOD
mov r0,#0x0
str r0,[r1]
ldr r1,=INTMASK
ldr r0,=0x1ffbff
str r0,[r1]
ldr r1,=INTPND
ldr r0,=0x1fffff
str r0,[r1]
;时钟设置
ldr r1,=IOPCON
ldr r0,[r1]
orr r0,r0,#0x40000000
str r0,[r1]
ldr r1,=TDATA0
ldr r0,=0x3ffff
str r0,[r1]
ldr r1,=TMOD
mov r0,#0x1
str r0,[r1]