DSP中断类型和中断信号简记(转)

中断类型和中断信号如下:

三种中断类型:RESET#,NMI,INT4-INT15,优先顺序如下:

 

  • 复位中断:

    最高级别,用来停止CPU工作,并返回到一个已知的状态.

    1. 它是低电平有效,其他的中断是转向高电平的上升沿有效.

    2. 为了正确初始化CPU,在RESET#再次变成高电平之前必须保持10个时钟.

    3. 复位操作使得所有的指令执行都被打断,所有的寄存器返回到他们的默认状态.

    4. 复位中断服务取指包必须放在地址为0的内存中.

    5. 复位不受转移指令的影响.

    • 不可屏蔽中断NMI

      它通常用来向CPU发出严重硬件中断的警报.为了实现NMI,在中断使能寄存器中的不可屏蔽中断使能位(NMIE)必须置1.如果NMIE置1,阻止NMI处理的唯一可能是包括屏蔽中断发生在转移指令的延迟间隙里.

    • INT4-INT15
      C6000有12个可屏蔽中断,他们被连接到芯片外部或片内外设,也可以由软件控制或者不用.中断发生时,将中断标志寄存器(IFR)得相应位置置1.假如一个INT不发生在转移指令的间隙里,它还必须满足下列条件才能得到响应.

    • 状态控制寄存器(CSR)中的全局中断使能位置1
      中断使能寄存器(IER)中断NMIE位置1.
      IER中的相应使能位置置1。
      在IFR中没有更高优先级的中断标志(IF)位为1

    • 中断响应信号(IACK ,INUMx)
      IACK ,INUMx信号用来通知C6000片外硬件:在CPU内一个中断已经发生并且正在处理时,会由IACK信号指出CPU已经开始处理一个中断,INUMx信号(INUM3~INUM0)指出正在处理的是哪一个中断(即IFR中的中断位).例如如果INUMx信号从高到低为0111,表明正在处理INT7中断.
      二:中断服务表(IST)
      中断服务表(IST)是包含中断服务代码的取指包的一个地址表当CPU开始处理一个中断时,他要参照IST进行.IST包包含16个连续取指包,每个服务取指包都含有8条(32位字)指令.因此中断服务表中的地址以32字节增长.

    • 控制状态寄存器CSR
      它有低两位用来控制中断,bit0---GIE,bit1---PGIE.
      PGIE保存先前的GIE值,即在响应可屏蔽中断时,保存GIE的值,而GIE被清0,这样在处理一个可屏蔽中断时,就防止了另外的一个可屏蔽中断的发生.当从中断返回时,通过BIRP指令可使PGIE的值重新回到GIE.

    • 中断初始化的过程
      1. 初始化中断服务表指针(ISTP):intr_init(); 
      2. 选择用哪一个中断: intr_map(CPU_INT7,ISN_EXT_INT7); 
      3. 清中断: INTR_CLR_FLAG(CPU_INT7); 
      4. 中断服务子程序与中断号挂钩: intr_hook(Int7_ISR,CPU_INT7); 
      5. 打开非屏蔽中断: INTR_ENABLE(CPU_INT_NMI); 
      6. 打开所选中断: INTR_ENABLE(CPU_INT7); 
      7. 全局中断使能: INTR_GLOBAL_ENABLE();
      其中的第二条中的两个参数分别可以为下列的值:

    • 中断处理函数都是小写的,而宏定义都是大写的,在 C 语言的语法里是要注意的,否则会出现找不到函数或者函数未定义。

    • example:
      中断源需要映射到CPU中断,这个是通过加载中断选择数到需要的中断选择域中.intr_map(CPU_INT8,ISN_DMA_INT0);
      当中断多路器寄存器配置后,ISR就可以跟CPU挂钩并使能了.
      interrupt void exampleISR(void)
      {
      isrFlag= TRUE;
      return;
      }
      intr_hook( exampleISR, CPU_INT8 );
      INTR_ENABLE( CPU_INT8 );
      现在DMA通道0的中断事件就可以调用exampleISR .

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值