第四章 车奶序流程控制.ppt

  1. 1、本文档共55页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四章 车奶序流程控制

5509DSP中的中断 中断使能寄存器(IER0、IER1) 用于对可屏蔽中断的使能。 将中断使能寄存器中相应位置1,表示允许一个可屏蔽中断 置0表示禁止响应可屏蔽中断。 RESET时全部置0,禁止所有可屏蔽中断。 5509DSP中的中断 中断可分为可屏蔽中断和非屏蔽中断两类。 可屏蔽中断:用软件将其设置为禁止中断或允许中断。 非屏蔽中断:不能被禁止,一旦产生,CPU立即响应中断。 可屏蔽中断 可以通过软件禁止和允许的中断称为可屏蔽中断, 55x 的可屏蔽中断都是硬件中断。 (1)C55x的可屏蔽中断有: 序号2~ 23的中断矢量:这22个中断都可以通过DSP引脚或 外设信号触发。 5509DSP中的中断 (2) 设置一个可屏蔽中断用到的寄存器 ST1_55中的INTM(中断模式位)位:允许(INTM =0)或禁止(INTM =1)所有的可屏蔽中断 IER0 和IER1; IFR0 和IFR1; DBIER0 和 DBIER1; 5509DSP中的中断 (3) 可屏蔽中断标准处理流程 CPU接受一个可屏蔽中断请求 CPU设置并锁存IFR0或IFR1中断相应位 IER0或IER1中断相应位为1,CPU才响应中断 INTM=0时,允许所有的中断,CPU才响应中断 完成流水线译码阶段的指令,清除流水线中其它的指令 清除IFR0或IFR1中断相应位,表示中断已被响应。 自动保护中断现场 INTM=1,DBGM=1,EALLOW=0(禁止访问非cpu仿真寄存器) ISR最后的返回指令,执行自动现场恢复 5509DSP中的中断 6、非屏蔽中断 CPU收到非屏蔽中断请求时,无条件响应并跳转到相应的中断服务程序(ISR)。 非屏蔽中断包括 硬件复位中断: 将 RESET_ 引脚电平置为低, 强制DSP复位并执行复位中断ISR。 硬件NMI_中断:将NMI_引脚电平置为低, 强制CPU执行相应ISR,它提供一个通用的无条件中断的硬件方式。 所有的软件中断:中断矢量序号为0~31中的任何一个软中断。 5509DSP中的中断 非屏蔽中断标准处理流程 5509DSP中的中断 产生软件中断的指令方式 INTR #k5: k5的5比特可以指32个软件中断中的任何一个,在执行ISR前自 动保护现场,并置INTM=1。 TRAP #k5: 与INTR #k5不同的是不置位INTM RESET:软件复位。 5509DSP中的中断 7、DSP复位 复位是一种非屏蔽中断,任何时候都可以对DSP进行复位 硬件复位:CPU放弃所有操作,清空指令流水线,复位CPU的寄存器,然后按照非屏蔽中断的标准处理流程执行复位ISR。 软件复位:由软件指令触发,复位时仅影响中断状态寄存器(IFR0,IFR1)和三个状态寄存器(ST0_55,ST1_55,ST2_55)。 DSP的硬件复位使中断矢量指针(IVPD,IVPH)的值为FFFFh,即指向0xFFFF00的地址,软件复位对它们没有影响。 第四章 程序流程控制 五、程序调用 当一个子程序被调用时,正在指令缓冲单元中译码的指令地址被保存到RETA寄存器或堆栈中,该地址用于返回时继续执行子程序调用前的指令。 1、无条件程序调用 程序执行到下列指令时就调用子程序。 CALL ACx:子程序的地址由ACx(23~0)值决定 CALL L16 :16比特长相对于PC的有符号的偏移量。 CALL P24 :24比特长的绝对地址。 堆栈生长方向 0x0FF* 0x0000 堆栈生长方向 (SP) 栈底 栈顶 1 2 3 4 . . . 先压栈,后SP-1。 先SP+1,后出栈。 第四章 程序流程控制 子程序调用过程: (1)在流水线寻址阶段(AD)将数据堆栈(SP)指针减1(字),然后将RETA的低16位压入数据堆栈。 (2)在流水线寻址阶段(AD)将系统堆栈(SSP)指针减1(字),然后将RETA的高8位和CFCT(控制流程关系寄存器,8位)的值压入系统堆栈。 (3)将调用子程序返回地址(CALL语句的下一条语句的地址)保存到RETA中,当前循环标志保存到CFCT中。 (4)将子程序的程序地址装入PC中,清除当前循环关系标志。 注意:循环关系指的是当前重复循环的类型和状态记录。 第四章 程序流程控制 2、无条件返回 RET ;执行无条件返回到主程序。 返回过程: (1)RETA中的返回地址装入PC,从CFCT中恢复循环关系标志; (2)从数据堆栈(SP)中恢复RETA的低16位,SP指针加1; (2)从系统堆栈(SSP)恢复RETA的高8位和CFCT,S

文档评论(0)

ctuorn0371 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档