s3c2410 ENIT0中断后不能返回

wangkun2046   2008-5-31 19:57 楼主
s3c2410  按键EINT0 时IRQ 中断 打印以个X

_start:
        ldr        pc, vect_reset
        ldr pc, vect_undef
        ldr pc, vect_swi
        ldr pc, vect_iabort
        ldr pc, vect_dabort
        ldr pc, vect_reset
        ldr pc, vect_irq
        ldr pc, vect_fiq

vect_reset:
        .word        _reset
vect_undef:
        .word        _irq
vect_swi:
        .word        _irq
vect_iabort:
        .word        _irq
vect_dabort:
        .word        _irq
vect_irq:
        .word        _irq
vect_fiq:
        .word        _irq

_reset:
        ...
        ...
        /*enable eint*/
        ldr r0, =INTMSK
        mov r1, #0x0
        str r1, [r0]

        ldr r0, =GPFCON
        mov r1, #0xaa
        str r1, [r0]

        ...
        ...
loop:
        /*串口打印z*/
        mov r0, #'z'
        bl put_char
        /*等1秒左右*/
        bl sleep
        b loop

_irq:
        subs lr, lr, #0x4
        stmfd sp!, {r0-r13, lr}
       
        mov r0, #'x'
        bl put_char

        ldmfd sp, {r0-r13, pc}^

为什么我这里每次按键后就一直在打印X没有返回?

回复评论 (1)

中断里一般要清零中断置位标志的吧,不知道2410需不需要这样
点赞  2008-6-1 21:03
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复