耗子 发表于 2010-6-24 16:05:24

中断返回奇怪的问题

大哥大姐们:
      这几天在学习中断,今天卡在中断返回这里了,搞了一整天还是没搞好。不知道你们有没有碰到过这种问题,请教一下。
_address_6                              ;IRQ中断处理函数
        sub                lr,                lr,         #4
        stmdb        sp!,        { r0-r12,lr }
        bl                LEDcontrol            ;这句注释掉也是一样的问题存在
        ldr                r0,                =pINTPND
        ldr                r1,                =0xFFFFFFFF
        ldr                r1,               
        ldr                r0,                =pSRCPND
        ldr                r1,                =0xFFFFFFFF
        ldr                r1,               
        ldmia        sp!,        {r0-r12,pc}^          ;仿真到这里的时候运行不正常具体现象下面说明。

运行完ldmia        sp!,        {r0-r12,pc}^ 这句指令以后程序又跳到了_address_6开始运行了,所以中断一直退不出来。
看了一下SPSR寄存器里的内容没有拷贝到CPSR这寄存器里进去,还是原来的CPSR

耗子 发表于 2010-6-25 09:35:04

已经解决了,
ldr                r0,                =pINTPND
      ldr                r1,                =0xFFFFFFFF
      ldr                r1,               
      ldr                r0,                =pSRCPND
      ldr                r1,                =0xFFFFFFFF
      ldr                r1,               
清除中断标志事错误了,学习的道路曲折啊
页: [1]
查看完整版本: 中断返回奇怪的问题