DSP原理及应用课件第7章汇编语言程序设计.ppt

DSP原理及应用课件第7章汇编语言程序设计.ppt

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

第7章 汇编语言程序设计 7.1 程序流程控制 7.2 数据块传送 7.3 定点数的基本算术运算 7.4 长字运算和并行运算 7.5 FIR滤波器的DSP实现 7.6 IIR数字滤波器的DSP实现 7.7 FFT运算的DSP实现 7.1 程序流程控制 7.1.1 程序存储器地址生成 7.1.2 条件操作 7.1.3 分支转移 7.1.4 调用与返回 7.1.5 重复操作 7.1.6 TMS320C54x中断系统 7.1.7 堆栈的使用 7.1.1 程序存储器地址生成 程序存储器中存放指令代码、参数表和立即数。程序地址产生逻辑(PAGEN), 包括以下5个寄存器(如图7-1所示): 程序计数器(PC); 重复计数器(RC); 块重复计数器(BRC); 块重复起始地址寄存器(RSA); 块重复结束地址寄存器(REA)。 7.1.2 条件操作 7.1.3 分支转移 7.1.4 调用与返回 7.1.5 重复操作 1 1.单条指令的重复操作 RPT(重复执行下一条指令)和RPTZ(累加器清0后重复执行下一条指令)可重复执行其后的一条指令,重复的次数是指令操作数加1,这个值保存在16位的重复计数寄存器(RC)中,这个值只能由重复指令(RPT或RPTZ)加载,而不能编程设置RC寄存器中的值,一次给定指令重复执行的最大次数是65536。 7.1.5 重复操作 2 2.块重复操作指令 块重复指令RPTB用于将一个码块重复执行N+1次,N是装入块重复计数器(BRC)的值。一个码块可以有一条或多条指令。单条重复指令执行时关闭所有可屏蔽中断,而块重复操作执行期间可以响应中断。 7.1.6 TMS320C54x中断系统 1 1.中断类型 C54x支持软件中断和硬件中断。软件中断由程序指令产生(INTR、TRAP或RESET)。硬件中断由设备的一个信号产生,包括两种类型:①外部硬件中断由外部中断口的信号触发;②内部硬件中断由片内外设的信号触发。无论是硬件中断还是软件中断,都属于以下两种类型: (1)可屏蔽中断 (2)非屏蔽中断 7.1.6 TMS320C54x中断系统 2 2.中断标志寄存器(IFR)和中断屏蔽寄存器(IMR) 中断标志寄存器(IFR)是存储器映象的CPU寄存器。如图7-2所示为C5402中断标志寄存器(IFR)结构图。中断屏蔽寄存器(IMR)也是存储器映象的CPU寄存器,用来屏蔽外部和内部的可屏蔽中断,其结构图同IFR完全一致。 7.1.6 TMS320C54x中断系统 3 3.中断响应过程(如图7-3所示) (1)接受中断请求。 (2)响应中断。 (3)执行中断服务程序(ISR)。 7.1.6 TMS320C54x中断系统 4 4.重新映象中断向量地址 C54x的中断向量表是可重定位的,即在DSP复位时,中断向量表的起始地址固定为0FF80H,复位后,此表的起始地址可由用户指定。 中断向量可重新被映象到程序存储器的任何一个128字页开始的地方(除保留区域外)。中断向量地址由PMST中的中断向量指针IPTR(9位)和中断向量号(0~31)左移两位后组成。如图7-4所示。 7.1.7 堆栈的使用 1 堆栈被用于保存中断程序、调用子程序的返回地址,也用于保护和恢复用户指定的寄存器和数据,还可用于程序调用时的参数传递。返回地址是由DSP自动保存的。 用户编写的压栈指令和出栈指令将指定的内容压入和弹出堆栈,SP总是指向最后压入堆栈的数据,压栈之前SP减1,出栈之后SP加1。 7.1.7 堆栈的使用 2 C54x支持软件堆栈,在用户指定的存储区开辟一块存储区作为堆栈存储器。堆栈的定义及初始化步骤为: 1)声明具有适当长度的未初始化段; 2)将堆栈指针指向栈底; 3)在链接命令文件(.cmd)中将堆栈段放入 内部数据存储区。 7.2 数据块传送 1 C54x有10条数据传送指令,为: 数据存储器??数据存储器:MVDK Smem,dmad MVKD dmad,Smem MVDD Xmem,Ymem 数据存储器??MMR: MVDM dmad,MMR MVMD MMR,dmad MVMM mmr,mmr 7.2 数据块传送 2 程序存储器??数据存储器: MVPD Pmad,Smem MVDP Smem,Pmad READA Smem WRITA Smem .mmregs .def _c_int00 .data TBL: .word0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,1 7,18,19 .word 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 PROM:

文档评论(0)

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

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

1亿VIP精品文档

相关文档