2440中断总结

    中断在任何CPU中地位都是至关重要的,2440中断的配置过程如下:

   一、中断初始化配置过程 

   1、如果是外部中断(其它的中断方式可不要设置),要设置触发方式:上升沿、下降沿、高电平、低电平、双沿触发(用到的是EINT0和EINT1寄存器)

    2、清中断源挂起寄存器,中断服务寄存器(可选、防止原有中断干扰)     用ClearSubPending(BIT_SUB_***)和 ClearPending(BIT_***);命令来清次级中断和中断源挂起寄存器  

    3.、设置中断模式(IRQ或FIQ可选,默认为IRQ)

    4 、 设置中断优先级(可选,一般默认即可)

    5、 打开外部中断屏蔽,用 EnableSubIrq(BIT_SUB_***);  EnableIrq(BIT_***); 命令

    6、 设置中断服务入口程序 pISR_***=(U32)__irp_***;(些处__irp_***是由用户自定义的)

    二、中断服务程序

    1、清中断源挂起寄存器

     2、清中断服务寄存器  防止反复进入中断

     3、执行中断服务程序

三、相关特殊寄存器的说明

   1、INTPND和SRCPND

     INTPND:中断挂起寄存器,指示中断响应的状态,相关中断的标志位,如果该中断响应,则其相应的位置1

    SRCPND:源中断挂起寄存器,指示中断响应的状态,相关中断的标志位,如果该中断响应,则其相应的位置1

    二者的相同点:都是指示中断响应的状态,都是中断挂起寄存器

    二者的不同点:当中断源响应中断服务程序时,相应的SRCPND的位置1,与此同时INTPND的相应的标志也会自动的置1.如果中断被屏蔽了,那么SRCPND里面相应的位也会置1,但是INTPND不会置1.

   所以在初始化中断和中断服务程序里面都要将相应的INTPND和SRCPND的位清零。

  2、外部中断相关总结

      外部中断中0-3与其它中断的操作是一样的,但是在4以后的操作就会有一些变化,在清其时和使能时不能只是用ClearPending(BIT_***)和EnableIrq(BIT_***);还必需用到EINTPEND来清除相应的位,和EINTMASK来使能相应的中断位

四、 同时具有源挂起寄存器和挂起寄存器的中断源

      SRCPND                                        SUBSRCPND
 INT_UART0                                 INT_RXD0,INT_TXD0,INT_ERR0
 INT_UART1                                 INT_RXD1,INT_TXD1,INT_ERR1
 INT_UART2                                 INT_RXD2,INT_TXD2,INT_ERR2
 INT_ADC                                      INT_ADC_S, INT_TC
 INT_CAM                                      INT_CAM_C, INT_CAM_P
 INT_WDT_AC97                         INT_WDT, INT_AC97

在使用上述中断时要将SRCPND和SUBSRCPND都打开才行,否则不能进入中断。

   以上是我使用2440中断的一些心得体会,如果有一些不正确的地方希望大家给出评论。

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值