CCSsimulation中断模拟.ppt

上传人:牧羊曲112 文档编号:5420823 上传时间:2023-07-05 格式:PPT 页数:22 大小:274.99KB
返回 下载 相关 举报
CCSsimulation中断模拟.ppt_第1页
第1页 / 共22页
CCSsimulation中断模拟.ppt_第2页
第2页 / 共22页
CCSsimulation中断模拟.ppt_第3页
第3页 / 共22页
CCSsimulation中断模拟.ppt_第4页
第4页 / 共22页
CCSsimulation中断模拟.ppt_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《CCSsimulation中断模拟.ppt》由会员分享,可在线阅读,更多相关《CCSsimulation中断模拟.ppt(22页珍藏版)》请在三一办公上搜索。

1、实验2中断模拟实验,试验目的,掌握中断的含义和中断响应过程。掌握用CCS simulator模拟中断的方法。掌握中断应用程序的编写方法。,摘要,复习C54x中断操作模拟中断的方法实验内容及步骤,试验原理,中断是一些由硬件或软件产生的信号,能使CPU暂时停止执行正在执行的程序,转而执行由DSP程序开发者编写的中断服务程序(ISR Interrupt Service Routine)C54x既支持软件中断也支持硬件中断软件中断,是由指令(INTR、TRAP、RESET)产生的。硬件中断:外部中断通过DSP外部中断引脚接收到的片外设备产生的中断(例如ADC/DAC向DSP发出的中断)片上外设中断DS

2、P片上外设(如定时器、串口、DMA等)向CPU发出的中断当同一CPU时钟周期内有多个硬件中断发生时,CPU会按照中断优先级对它们进行响应!软件中断无优先级。,可屏蔽和非可屏蔽中断,DSP的中断可分为两大类:可屏蔽(Maskable)中断:可以通过软件被禁止/使能的中断。被禁止掉的中断即使产生,CPU 也不会去响应!被使能的中断,当它产生时 CPU 就会去响应它!非可屏蔽(Nonmaskable)中断:不能被禁止的中断。当这些中断产生时 CPU 会无条件响应!C54x 的非可屏蔽中断有:所有的软件中断!外部中断 NMI(DSP外部中断引脚NMI)复位中断 RS(DSP外部中断引脚RS)CPU在响

3、应 NMI 中断时,将不能被任何其他中断打断!包括复位中断!,IFR,IFR(Interrupt Flag Register)中断标志寄存器(地址0 x01)当一个可屏蔽中断产生时,IFR中相应的中断标志位会被置1,当CPU响应该中断后,该标志位才被清除!清除中断标志还可通过:软件或硬件复位;向标志位写1;使用INTR#K指令响应该中断,C5402 DSP 的 IFR 寄存器,IMR,IMR(Interrupt Mask Register)中断屏蔽寄存器(地址0 x00)当 ST1 的 INTM 位为 0 时,IMR 可用于禁止和使能可屏蔽中断,向 IMR 中的某个屏蔽位写 1 就能使能相应的

4、可屏蔽中断!如果写 0,则相应的中断被禁止!,C5402 DSP 的 IMR 寄存器,ST1:(0 x07),C54x 中断响应流程,中断请求产生Request,中断应答Acknowledgment,执行用户编写的ISR,IMR屏蔽位=1?,将当前PC值压入堆栈,产生应答信号 IACK,从ISR返回时,将先前压入堆栈的 PC 值弹出放入PC 中,程序继续从被中断处运行,CPU 如何跳转到 ISR 去执行?,中断 INT0 得到应答Acknowledgment,PMST:(0 x1D),NOP,B _MyInt0isr,NOP,NOP,执行 C 函数 MyInt0isr,INT0的中断向量,中断

5、向量表,中断向量(表)指针,4-word space,4-word space,4-word space,4-word space,摘要,复习C54x中断操作模拟中断的方法实验内容及步骤,Simulator 下模拟中断,编写引脚文件,指示出中断产生的时间!将引脚文件和相应的中断引脚进行“连接”!装载并运行程序后,CCS会根据引脚文件中设置的时间来产生模拟的中断信号!,引脚文件(.txt),引脚文件和中断引脚的“连接”,Tools Pin connect,实验内容,在C54x Device Simulator模式下,编写引脚文件模拟部中断0(INT0)的产生。编写程序响应 INT0 中断。,实验

6、步骤,使用CCS Setup添加“C5402 Device Simulator”配置到系统中;运行CCS,进入Simulator工作模式。编写引脚文件 intsim.txt 包含:10000(+10000)rpt EOS使用 Tools Pin Connect 工具将该引脚文件连接到引脚 INT0。建立一个CCS项目,包含下列文件main.c使能并打开中断isr.c中断服务函数vectors.asm中断向量表linker.cmd链接器命令文件,实验环境建立,#include#define IMR*(unsigned int*)0 x0000#define IFR*(unsigned int*)

7、0 x0001#define ST1*(unsigned int*)0 x0007#define PMST*(unsigned int*)0 x001Dint INTtimes;void main()asm(SSBX INTM);PMST=0 x00A0;IFR=0 xFFFF;IMR=0 x0001;asm(RSBX INTM);puts(interrupt enabled!);INTtimes=0;while(1)asm(RSBX INTM);,main.c,#include extern int INTtimes;interrupt void myisr()printf(%dn,+INT

8、times);,isr.c,.sect.vectors.ref _myisr.align 0 x80Unused.space 16*4*16int0:B _myisr NOP NOP NOPint1:RETE NOP NOP NOPint2:RETE NOP NOP NOP.end,vectors.asm,-lrts.lib-stack 0 x400-heap 0 x400MEMORYPAGE 0:VECT:o=0 x0080,l=0 x0080SRAM:o=0 x4000,l=0 x3000PAGE 1:REVS:o=0 x1000,l=0 x0400STACK:o=0 x1400,l=0 x0400IDRAM:o=0 x1800,l=0 x2800SECTIONS.vectors:VECT.text:SRAM.cinit:SRAM.stack:STACK.bss:IDRAM.const:IDRAM.cio:IDRAM.sysmemIDRAM,linker.cmd,实验内容和步骤,构建可执行模块。装载并运行后观察结果。修改程序,使其响应INT1中断。重新构建、装载并运行后观察结果。,实验报告要求,中断发生时程序是如何转移到ISR的?如何编程实现对中断的响应?附.c程序和.asm程序(中断向量表),并添加注释,说明一些关键语句的含义。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号