s3c2410中断跳转过程

      在ARM中,中断是有IRQ(普通中断)和FIQ(快速中断)。FIQ的优先级要高于IRQ。

        中断的工作方式如下: 

中断是异常模式,当一旦有中断发生,那么就会停止现在正在进行执行的程序,PC指针进而跳入异常向量的地址处。异常地址处,一般存有中断服务子程序的地址,所以,接下来PC指针跳入中断服务子程序中。当完成中断服务子程序后,PC指针会返回到被 打断的程序的下一条地址处,继续执行程序。

         在写程序中,如何实现地址的跳转,举例如下:

汇编

_ISR_STARTADDRESS	EQU 0x33ffff00
// 中断服务启动栈地址

如果是定时中断

定义定时中断服务子程序:

void __irq Timer1_ISR( void )  
{
     ........  //函数体省略
}

现在要把定时中断的服务子程序与定时向量关联在一起,即PC指针指向定时中断向量,进而跳转到定时服务子程序中,过程如下:

pISR_TIMER1    EQU  (_ISR_STARTADDRESS+0x4c)

 pISR_TIMER1 = (int)Timer1_ISR; //这一步就是把定时中断服务子程序的地址放入定时中断向量中。
      整个中断跳转程序就是这样的过程。 



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值