实验二任务书.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验二任务书详解

实验二实验目的:了解DMA通信基本原理,掌握内存与SDRAM间一维DMA通信方式、二维DMA通信方式以及相关控制方法。学习数字滤波器设计方法,掌握其调试步骤,使学生加深对IIR的理解,进一步提高对数字信号处理理论的认识。实验任务:实验1:内存与SDRAM间的一维DMA通信实验实验2:内存与SDRAM间的二维DMA通信实验实验3:无限脉冲响应数字滤波器(IIR)的设计实验实验内容:实验1内存与SDRAM间的一维DMA通信实验实验原理DMA是一种不需要处理器内核干预的数据传输机制,作为一种后台任务执行,即进行DMA传输时,处理器可以处理其它任务。如果使能了DMA中断,那么当数据传输结束后会产生中断信号,表示DMA传输已经完成。DMA传输方式包括:一维DMA、二维DMA、链式DMA、AutoDMA等,本次实验使用一维DMA方式,即传输存储器中一段连续的数据(地址是相邻接的)。若要利用DMA传输数据,首先应配置DMA传输控制块(TCB)寄存器。DMA传输的数据具有方向性,即从发送端(源)到接受端(目的),若为外部存储器DMA传输,则需要设置两个TCB参数,一个源TCB,用于描述源数据的地址、大小和每次传输数据的长度等;还有一个目的TCB,用于描述数据传入的目标地址、数据大小及每次传输数据的长度等。若要使能DMA中断,也需要在TCB中设置相应位。若使用链路或AutoDMA通道则只需一个目的TCB。设置好TCB寄存器后,DMA传输自动开始。TS201S一共14个DMA通道,4个通道(0~3)专用于外部存储器设备,8个通道(4~11)用于链路口,2个通道(12~13)用于自动DMA操作。本次实验使用DMA0通道实现内存与外部存储器SDRAM间的一维DMA通信。相关的寄存器:1〉TCB寄存器TCB寄存器是一个128位的四字组寄存器,由DI、DX、DY和DP寄存器组成:a)DI是DMA索引寄存器,包括了将要发送或者接收的数据的源地址或者目的地址,既可以指向内部存储器又可以指向外部存储器,也可指向链路口b)DX包含了一个16位(高)的计数值和一个16位的修改量,若使能了二维DMA则该寄存器保存的只是X方向的计数值和修改量c)DY与DX结合一起使用,保存了Y方向上的16位计数值和16位修改量。如果只进行一维DMA传输,就不需要设置该寄存器。d)DP寄存器包括了DMA所有控制信息,分为两个主要段对DP寄存器各位功能说明:位说明位说明0~14四字地址(TCB指针)25~26操作数据长度:01=32位,10=64位,11=128位15~16链指针选择存储单元17~21链目的通道27二维DMA使能22使能链式DMA28DMA请求优先级,0=正常优先级,1=高优先级23DMA请求使能24DMA中断使能29~31指定DMA设备类型2〉中断屏蔽寄存器(IMASK) IMASK是一个64位寄存器,由IMASKH和IMASKL组成,当IMASK中某位被设置成1的时,那么将响应这个位所对应的中断。DMA0中断对应在IMASKL中的第14位,所以我们要取消对DMA0中断的屏蔽,使能DMA0中断,可以通过如下指令实现:xr0=0x4000;; /*0x4000= B 0100 0000 0000 0000 */IMASKL=xr0;;xr0=0;;IMASKH=0也可以直接使用如下指令实现,原理是一样的,下面的方法更为直观一些。xr0=INT_DMA0;; /* INT_DMA0在头文件中的定义的值为0x4000*/IMASKL=xr0;;实验步骤:1)启动VisualDSP++,新建工程命名为”test2_1”,路径选择为”D:\DSP\”,并将源代码文件夹下默认生成的test2_1.c文件移除;2)新建空白文件(选择菜单FileNewFile),输入参考源代码,保存为DMA_1.asm,并将其添加到工程中;3)分析、理解源程序,并编译文件纠错;4)建立链接文件(选择菜单ToolsExpert LinkerCreate LDF)4)编译整个工程,若出现错误“The following symbols referenced in processor p0 could not be resolved: main [_main] referenced from ts_hdr_TS201.doj”则说明声明的程序段/数据段(变量)所存放到了不能被执行的位置,导致该程序段/数据段(变量)没有被分配到相应的存储空间。处理方式:打开生成的LDF链接文件,在打开的Expert Linker窗口中将红叉项下的DMA1.obj添加(用鼠标拖拽)到MSSD0存储区(由于TS201S将外部存储器SDRAM地址映射到了0x4000 0000到0x7FFF FFFF之间的四个部分:MSSD0~3,

文档评论(0)

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

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

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档