CCS simulation 中断模拟实验_第1页
CCS simulation 中断模拟实验_第2页
CCS simulation 中断模拟实验_第3页
CCS simulation 中断模拟实验_第4页
CCS simulation 中断模拟实验_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

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

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

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

5、ledgment,PMST: (0 x1D),NOP,B _MyInt0isr,NOP,NOP,执行 C 函数 MyInt0isr,INT0的 中断向量,中断向量表,中断向量(表)指针,4-word space,4-word space,4-word space,4-word space,.,摘要,复习C54x中断操作 模拟中断的方法 实验内容及步骤,.,Simulator 下模拟中断,编写引脚文件,指示出中断产生的时间! 将引脚文件和相应的中断引脚进行“连接”! 装载并运行程序后,CCS会根据引脚文件中设置的时间来产生模拟的中断信号!,.,引脚文件(.txt),.,引脚文件和中断引脚的“连接

6、”,Tools Pin connect,.,实验内容,在C54x Device Simulator模式下,编写引脚文件模拟部中断0 (INT0) 的产生。 编写程序响应 INT0 中断。,.,实验步骤,使用CCS Setup添加“C5402 Device Simulator”配置到系统中;运行CCS,进入Simulator工作模式。 编写引脚文件 intsim.txt 包含: 10000 (+10000) rpt EOS 使用 Tools Pin Connect 工具将该引脚文件连接到引脚 INT0。 建立一个CCS项目,包含下列文件 main.c 使能并打开中断 isr.c 中断服务函数 v

7、ectors.asm 中断向量表 linker.cmd 链接器命令文件,.,实验环境建立,.,#include #define IMR *(unsigned int *)0 x0000 #define IFR *(unsigned int *)0 x0001 #define ST1 *(unsigned int *)0 x0007 #define PMST *(unsigned int *)0 x001D int INTtimes; void main() asm( SSBX INTM); PMST = 0 x00A0; IFR = 0 xFFFF; IMR = 0 x0001; asm( R

8、SBX INTM); puts(interrupt enabled !); INTtimes = 0; while(1) asm( RSBX INTM); ,main.c,.,#include extern int INTtimes; interrupt void myisr() printf(%dn, +INTtimes); ,isr.c,.,.sect .vectors .ref _myisr .align 0 x80 Unused .space 16*4*16 int0: B _myisr NOP NOP NOP int1: RETE NOP NOP NOP int2: RETE NOP

9、 NOP NOP .end,vectors.asm,.,-lrts.lib -stack 0 x400 -heap 0 x400 MEMORY PAGE 0: VECT: o=0 x0080, l=0 x0080 SRAM: o=0 x4000, l=0 x3000 PAGE 1: REVS: o=0 x1000, l=0 x0400 STACK: o=0 x1400, l=0 x0400 IDRAM: o=0 x1800, l=0 x2800 SECTIONS .vectors: VECT .text: SRAM .cinit: SRAM .stack: STACK .bss: IDRAM .const: IDRAM .cio: IDRAM .sysmem IDRAM ,linker.cmd,.,实

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论