- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
(DSP 戴明帧主编)第1章 TMS320C54x的结构原理-1.ppt
调用与返回 当调用子程序或函数时,DSP会中断原先的程序,转移到程序存储器的其他地址继续运行。 调用时,下条指令的地址被压入堆栈,以便返回时将这个地址弹出至PC,使中断的程序继续执行。 C54x的调用和返回都有两种形式:无条件调用与返回、有条件调用与返回。两者都能带延迟和不带延迟工作。 调用与返回 指令 说明 周期数(不延迟/延迟) CALL[D] 将返回地址压入堆栈,用指令所规定的地址加载PC 4/2 CALA[D] 将返回地址压入堆栈,用指令累加器的低16位加载PC 6/4 RET[D] 用栈顶的返回地址加载PC 5/3 RETE[D] 用栈顶的返回地址加载PC,并开放中断 5/3 RETF[D] 用RTN寄存器中的返回地址加载PC,并开放中断 3/1 表1-21 无条件调用与返回指令 指令 说明 周期数(条件满足/不满足) 不延迟 延迟 CC[D] 如果指令中所规定条件得到满足,则先将返回地址压入堆栈,然后用所指定的地址加载PC 5/3 3/3 RC[D] 如果指令中所规定条件得到满足,则将堆栈顶部的返回地址加载PC 5/3 3/3 表1-22 有条件调用与返回指令 调用与返回 条件操作 C54x有一些指令只有当一个或多个条件得到满足时才能执行。 例:BC pmad , cond [ , cond [ , cond ] ] 操作数符号 条件 说明 操作数符号 条件 说明 AEQ A=0 累加器 A 等于 0 AOV AOV=1 累加器 A 溢出 BEQ B=0 累加器 B 等于 0 BOV BOV=1 累加器 B 溢出 ANEQ A≠0 累加器 A 不等于 0 ANOV AOV=0 累加器 A 不溢出 BNEQ B≠0 累加器 B 不等于 0 BNOV BOV=0 累加器 B 不溢出 ALT A0 累加器 A 小于 0 C C=1 ALU 进位位置 1 BLT B0 累加器 B 小于 0 NC C=0 ALU 进位位清成 0 ALEQ A≤0 累加器 A 小于等于 0 TC TC=1 测试/控制标志置 1 BLEQ B≤0 累加器 B 小于等于 0 NTC TC=0 测试/控制标志清0 AGT A0 累加器 A 大于 0 BIO 低 信号为低电平 BGT B0 累加器 B 大于 0 NBIO 高 信号为高电平 AGEQ A≥0 累加器 A 大于等于 0 UNC 无 无条件操作 BGEQ B≥0 累加器 B 大于等于 0 表1-23 条件指令中的各种条件 条件操作 表1-24 多重条件指令中的条件组合 第1组 第2组 A类 B类 A类 B类 C类 EQ,NEQ,LT LEQ,GT,GEQ OV NOV TC NTC C NC BIO NBIO 多重条件组合要求: 同一组内,可以在A、B或C类中各选择一个条件,不能在同一类中选择两个条件 不同组内不能交叉组合 被测试的必须是同一个累加器 重复操作 重复执行单条指令 重复执行一个程序块 重复执行单条指令 指令:RPT 重复执行下条指令 RPTZ 重复执行下条指令,累加器清零 由重复计数器(RC)管理 重复执行次数=(RC)+1 操作数N的最大值为65535,即重复执行单条指令的最大次数为65536 表1-26 重复操作时变成单周期的多周期指令 优点:使一些多周期指令变成单周期指令 指令 说明 周期 FIRS 对称FIR滤波器 3 MACD 带延迟的乘法,并将乘法结果加到累加器 3 MACP 乘法,并将乘法结果加到累加器 3 MVDK 在数据存储器之间传送数据 2 MVDM 将数据存储器中的数据传送至MMR 2 MVDP 将数据存储器中的数据传送至程序存储器 4 MVKD 在数据存储器之间传送数据 2 MVMD 将MMR中的数据传送至数据存储器 2 MVPD 将程序存储器中的数据传送至数据存储器 3 READA 以累加器A中的数作地址读程序存储器,并将读出的数据传至数据存储器 5 WRITA 将数据存储器中的数据,按累加器A为地址传送至程序存储器 5 表1-26 重复操作时变成单周期的多周期指令 注:表中给出的周期数,均为指令不重复操作时的周期数。 程序块重复操作 指令:RPTB 重复执行下个程序块 由块重复计数器(BRC)、块重复起始地址寄存器(RSA)和块重复结束地址寄存器(REA)管理 重复执行次数=(BRC)+1 举例: 执行结果:RPTB的下条指令至NEXT的上一条指令之间的程序块重复执行100次 复位操作 复位是一个不可屏蔽的外部中断,它可以在任何时候使C54x进入已知状态。 至少5个时钟周期
文档评论(0)