230 likes | 429 Views
第十二讲 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
E N D
第十二讲 C6000的中断系统 BIT / TI
内容提要 • C6000的中断机制 • 中断的硬件响应 • 中断源的选择与使能控制 • 中断向量表 • 中断处理的时序与延迟 • 中断服务程序 BIT / TI
引子 • 什么是中断 • 为什么需要中断系统 • 处理器需要怎样做支持中断 • 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 BIT / TI
概述— C6000中断 • 中断事件——32个 • 中断源——同时处理14个(15) • 中断事件选择 • 外中断信号4 (8/12)个 • 8个控制寄存器 BIT / TI
概述—中断源 • 按优先级分为三类 BIT / TI
概述—中断事件 I C6201/6202/6701的中断事件(16/18) BIT / TI
概述—中断事件 II C6211/6711的中断事件(13) BIT / TI
中断处理—寄存器 -->GIE -->poll 中断控制寄存器 BIT / TI
中断处理—寄存器 中断控制寄存器 BIT / TI
中断处理—中断识别的控制 • 外部事件被捕获 • 每一个中断的单独使能 • 中断的全局使能 BIT / TI
中断处理—管脚 • 4个可屏蔽的外部中断 • 2个不可屏蔽中断 • 中断响应和标识 BIT / TI
中断处理—外中断信号的识别 • 异步信号被同步(延迟2~3) • 中断标志被置位 • 输出中断确认信号以及中断号 BIT / TI
中断处理—后处理 中断被识别之后,如果被使能… BIT / TI
中断处理—响应过程 • 排空流水线 • 信号—处理总共延迟 6 +5 cycle BIT / TI
ISR—中断向量 • 每一个中断源对应中断向量有相对固定的存放位置 • 每个中断向量长度8word • c6000的中断向量实际是对应中断的ISR BIT / TI
ISR—向量表 如果ISR足够小 BIT / TI
ISR—大的ISR BIT / TI
ISR— ISTP ISTP • 给出中断向量表的基地址 • 256-word 边界对齐 • 用于IST的重定位 • reset向量必须在地址0处 BIT / TI
ISR—环境的保护 • 保存在ISR中使用的寄存器 • 如果需要嵌套中断,必须保存CSR和IRP • 可以应用堆栈,在汇编程序进行环境保护 • C编译器可以自动完成有关环境的保护 BIT / TI
ISR — C ISR & VECTOR • 必须在C的ISR中采用interrupt关键字 • 没有入口参数 • 没有返回值 • 由C编译器完成环境的保护 • 利用IER/CSR cregister进行中断的禁止/使能 • 建议:内部避免程序调用 BIT / TI
ISR — C ISR & VECTOR 当采用C ISRs时,如何创建与C环境兼容的中断向量? 1.保护有关的寄存器 2.安全的跳转向ISR BIT / TI
ISR — 返回主程序 完成返回的代码: • 当转向ISR时,下一个EP的地址自动被保存在IRP/NRP中 • 在ISR的末尾,由B IRP/NRP完成跳转返回 • 执行 B IRP时,PGIEGIE • 执行 B NRP时,NMIE=1 BIT / TI
内容总结 • 中断响应事件与响应条件 • 中断服务的自动处理的任务 • 什么是ISPT • 中断的返回 • 中断软件的编制 BIT / TI