dsp程序控制和中断管理.pptxVIP

  1. 1、本文档共56页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第3章 程序控制和中断管理; 在执行当前指令的同时,程序流要求处理器生成下一条指令的程序地址,预定程序的路线。 程序地址的产生见下图:;程序地址产生框图; 程序地址产生逻辑使用的硬件;程序地址产生源;3.1.1程序计数器;装入PC中的地址;3.1.2堆栈;访问堆栈的指令:;PSHD和POPD 当子程序或中断嵌套超过8级时,利用此指令在数据存储区中建立一个堆栈。PSHD把数据存储器中的值压入栈顶,POPD将栈顶值弹出到数据存储器。 ;3.1.3微堆栈;3.1.4流水线操作; 流水线操作一般是不可见的???但下列情况例外: (1)紧跟在修改全局存储器分配寄存器(GREG)后的单字、单周期指令使用先前的全局映射。 (2)在流水线操作的执行阶段,NORM指令修改ARP,并使用当前辅助寄存器,如果随后的两个指令要改变当前辅助寄存器的内容或ARP,则它们将在流水线的译码阶段进行,这将导致NORM指令使用错误的辅助寄存器值,并导致随后的指令使用错误的ARP值。所以在NORM后不要安排改变当前辅助寄存器和ARP内容的指令。; 转移、调用和返回改变指令流的顺序,转到新的地址单元去执行指令。 转移仅使控制转换到新的地址单元;调用要将返回地址保存到硬件堆栈的栈顶;返回指令将堆栈中的返回地址弹到程序计数器。;3.2.1 无条件指令;无条件调用 执行无条件调用时,将指定的程序存储器的地址加载到PC上,并从该地址开始执行程序。加载到PC的地址可以来自转移指令的第二个操作数,也可能是累加器的低16位。加载PC 之前将返回地址保存到堆栈。子程序或函数执行之后,返回指令将返回地址从堆栈加载到PC,从调用指令后的那条指令开始执行。 无条件转移指令有CALL 、CALA(调用累加器指定单元处的子程序)。;无条件返回 执行无条件返回指令(RET)时,将栈顶的值加载到PC,并从该地址继续执行程序。 ;3.2.2 有条件指令;使用多个条件; 条件指令必须能测试到状态位的最新值。直到流水线的执行阶段,即前一条指令执行后一个周期才能认为条件稳定。流水线控制器在条件稳定之前停止对条件指令后的任何指令译码。;条件转移(BCND、BANZ): 该指令使程序转移到程序存储器的任何地址,只有满足一个或多个由用户指定的条件时,才能实现转移。此时,PC装载转移指令的第2个字,并从该地址开始继续执行此指令。 无条件转移指令有BCND(条件转移)和BAND(若当前辅助寄存器不为0,则转移)。 ; 条件调用(CC): 该指令可使程序根据处理数据的不同在多个子程序间进行选择,只有当用户指定的一个或多个特定条件满足时才能调用。此时,PC装载调用指令的第2个字,并将返回地址保存在堆栈中,然后执行子程序。 ; 条件返回 返回指令(RET): 与调用或中断配合使用。调用或中断把返回指令保存到堆栈里,被调用的子程序或中断服务程序以返回指令结束,该指令将返回地址从堆栈弹到PC。 条件返回指令(RETC): 当用户指定的一个或多个条件满足时才执行。利用该指令可使子程序或中断服务程序有多种返回路径。 ;3.3重复指令;3.4中断;3.4.1 中断的分类; 可屏蔽中断 可以通过软件将它们禁止或允许的中断。均为硬件中断。当硬件设备或外部引脚成功地请求了可屏蔽中断时,与其对应的一个或几个标志被激活,无论是否响应此中断,这些标志均被设置为1。 不可屏蔽中断 不能通过软件将其禁止或允许的中断。包括所有软件中断和两种外部硬件中断 和 。; 外设事件要引起中断,必须保证:外设事件的中断使能位被使能,CPU内核级的6个可屏蔽中断中,能控制该外设事件高级中断至少有一个被使能。在外设事件发生时,首先将其在外设中断控制器中的标志位置1,然后会在中断标志寄存器IFR中的INTx位由硬件置1,表明正在等待CPU响应,从而引起CPU内核的INT1~INT6中的一个产生中断。;中断响应的延时; 当CPU接受中断请求时,并不知道是哪一个外设事件引起的中断请求。为了让CPU能够区别这些引起中断的外设事件,DSP控制器给每个中断分配了一个特定的入口地址,称为中断向量。 在每个外设中断请求有效时都会产生一个唯一的外设中断向量,这个外设中断向量被装载到外设中断向量寄存器(PIVR)中。CPU应答外设中断时,从PIVR中读取相应中断的向量,并产生一个转到该中断服务程序入口的向量。当某个中断发出请求,而且允许中断,则CPU先将当前的PC加1压入堆栈,即保护返回地址;然后,CPU自动地将该请求中断的向量地

文档评论(0)

1234554321 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档