23
第第第第 Interrupt BIT / TI 1 第第第第 C6000 第第第第

第十二讲 C6000 的中断系统

Embed Size (px)

DESCRIPTION

第十二讲 C6000 的中断系统. 内容提要. C6000 的中断机制 中断的硬件响应 中断源的选择与使能控制 中断向量表 中断处理的时序与延迟 中断服务程序. 引子. 什么是中断 为什么需要中断系统 处理器需要怎样做支持中断 Storage of interrupt requests Program controlled enabling and masking Forced branch to a new program Saving the program state Cause identification State restoration - PowerPoint PPT Presentation

Citation preview

第十二讲 InterruptBIT / TI 1

第十二讲 C6000 的中断系统

第十二讲 InterruptBIT / TI 2

内容提要• C6000 的中断机制• 中断的硬件响应• 中断源的选择与使能控制• 中断向量表• 中断处理的时序与延迟• 中断服务程序

第十二讲 InterruptBIT / TI 3

引子• 什么是中断• 为什么需要中断系统• 处理器需要怎样做支持中断

– Storage of interrupt requests– Program controlled enabling and masking– Forced branch to a new program– Saving the program state– Cause identification– State restoration引自: Encyclopedia of Computer Science and Engineering

第十二讲 InterruptBIT / TI 4

概述— C6000 中断• 中断事件—— 32 个• 中断源——同时处理 14 个( 15 )• 中断事件选择• 外中断信号 4 (8/12) 个• 8 个控制寄存器

第十二讲 InterruptBIT / TI 5

概述—中断源优先级 中断名最高 RESET

NMIINT4INT5INT6INT7INT8INT9INT10INT11INT12INT13INT14

最低 INT15

•按优先级分为三类

第十二讲 InterruptBIT / TI 6

概述—中断事件 I中断选择号 中断缩写 描述

00000b DSPINT 主机发向DSP的中断00001b TINT0 Timer 0 中断00010b TINT1 Timer 1 中断00011b SD_INT EMIF SDRAM 定时器中断00100b EXT_INT4 外部中断管脚400101b EXT_INT5 外部中断管脚500110b EXT_INT6 外部中断管脚600111b EXT_INT7 外部中断管脚701000b DMA_INT0 DMA通道0中断01001b DMA_INT1 DMA通道1中断01010b DMA_INT2 DMA通道2中断01011b DMA_INT3 DMA通道3中断01100b XINT0 McBSP 0 发送中断01101b RINT0 McBSP 0 接收中断01110b XINT1 McBSP 1 发送中断01111b RINT1 McBSP 1 接收中断10000b 保留10001b XINT2 McBSP 2 发送中断[注]

10010b RINT2 McBSP 2 接收中断[注]

Other 保留

C6201/6202/6701 的中断事件 (16/18)

第十二讲 InterruptBIT / TI 7

概述—中断事件 II

中断选择号 中断缩写 描述00000b DSPINT 主机发向DSP的中断00001b TINT0 Timer 0 中断00010b TINT1 Timer 1 中断00011b SDINT EMIF SDRAM 定时器中断00100b EXT_INT4 外部中断管脚400101b EXT_INT5 外部中断管脚500110b EXT_INT6 外部中断管脚600111b EXT_INT7 外部中断管脚701000b EDMA_INT EDMA通道(0到15)中断01001b Reserved 保留01010b Reserved 保留01011b Reserved 保留01100b XINT0 McBSP 0 发送中断01101b RINT0 McBSP 0 接收中断01110b XINT1 McBSP 1 发送中断01111b RINT1 McBSP 1 接收中断Other 保留

C6211/6711 的中断事件 (13)

第十二讲 InterruptBIT / TI 8

中断处理—寄存器 控制寄存器 全称 功能

CSR Control status register 对中断进行整体使能/禁止IER Interrupt enable register 中断使能IFR Interrupt flag register 中断状态标志ISR Interrupt set register 手工设置IFR中的中断状态标志ICR Interrupt clear register 手工清除IFR中的中断状态标志ISTP Interrupt service table

pointer中断向量表的起始地址

NRP Nonmaskable interruptreturn pointer

存放不可屏蔽中断的返回地址

IRP Interrupt return pointer 存放可屏蔽中断的返回地址中断控制寄存器

-->GIE

-->poll

第十二讲 InterruptBIT / TI 9

中断处理—寄存器

控制寄存器地址

控制寄存器名字 描述

019C0000h Interrupt multiplexer high 选择CPU中断10~15的对应中断源

019C0004h Interrupt multiplexer low 选择CPU中断4~9的对应中断源

019C0008h External interrupt polarity 选择外中断信号(INT4~INT7)的触发极性

中断控制寄存器

第十二讲 InterruptBIT / TI 10

中断处理—中断识别的控制

•外部事件被捕获•每一个中断的单独使能•中断的全局使能

第十二讲 InterruptBIT / TI 11

中断处理—管脚‘C6000

INT4~7

NMI

/RESET

IACK

INUM

•4 个可屏蔽的外部中断•2 个不可屏蔽中断•中断响应和标识

第十二讲 InterruptBIT / TI 12

中断处理—外中断信号的识别•异步信号被同步 ( 延迟 2~3)•中断标志被置位•输出中断确认信号以及中断号

第十二讲 InterruptBIT / TI 13

中断处理—后处理

CPU的操作 描述0 IFR (bit) 清除响应的中断标志位GIE PGIE 保存当前 GIE值

0 GIE 全局禁止中断保存下一个 EP地址 在 IRP/NRP中保存返回地址向量 PC 将向量地址调入 PC

1 IACK管脚 输出 IACK信号INUM(0~3) INUM管脚显示当前的中断

中断被识别之后,如果被使能…

第十二讲 InterruptBIT / TI 14

中断处理—响应过程

•排空流水线•信号—处理总共延迟 6 +5 cycle

第十二讲 InterruptBIT / TI 15

ISR— 中断向量•每一个中断源对应中断向量有相对固定的存放位置•每个中断向量长度 8word•c6000 的中断向量实际是对应中断的 ISR

第十二讲 InterruptBIT / TI 16

ISR— 向量表

如果 ISR 足够小

第十二讲 InterruptBIT / TI 17

ISR— 大的 ISR

第十二讲 InterruptBIT / TI 18

ISR— ISTP

• 给出中断向量表的基地址• 256-word 边界对齐• 用于 IST 的重定位• reset 向量必须在地址 0 处

ISTP

第十二讲 InterruptBIT / TI 19

ISR— 环境的保护• 保存在 ISR 中使用的寄存器• 如果需要嵌套中断,必须保存 CSR 和 IR

P• 可以应用堆栈,在汇编程序进行环境保护• C 编译器可以自动完成有关环境的保护

第十二讲 InterruptBIT / TI 20

ISR — C ISR & VECTOR

•必须在 C 的 ISR 中采用 interrupt 关键字•没有入口参数•没有返回值•由 C 编译器完成环境的保护•利用 IER/CSR cregister 进行中断的禁止 / 使能•建议:内部避免程序调用

第十二讲 InterruptBIT / TI 21

ISR — C ISR & VECTOR

当采用 C ISRs 时,如何创建与 C 环境兼容的中断向量?

1. 保护有关的寄存器2. 安全的跳转向 ISR

第十二讲 InterruptBIT / TI 22

ISR — 返回主程序完成返回的代码:

•当转向 ISR 时,下一个 EP 的地址自动被保存在 IRP/NRP 中•在 ISR 的末尾,由 B IRP/NRP 完成跳转返回•执行 B IRP 时, PGIEGIE

•执行 B NRP 时, NMIE=1

第十二讲 InterruptBIT / TI 23

内容总结• 中断响应事件与响应条件• 中断服务的自动处理的任务• 什么是 ISPT• 中断的返回• 中断软件的编制