《DSP实验指导书5..docx》由会员分享,可在线阅读,更多相关《DSP实验指导书5..docx(47页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、DSP 原理及应用试验指导书电气与电子工程学院名目系统概述.CCS 的安装试验一 CCS 入门试验.试验二 乘累加算法试验试验三 混合编程试验试验四 SDRAM 读写试验试验五 FLASH 读写试验试验六 QDMA 读写试验试验七 定时器试验试验八 PLL 锁相环试验系统概述SEED-DTKDSP Teaching Kit是一套可以满足大学本科、争论生和教师科研工作的综合试验设备。其以独特的多DSP 构造、强大的DSP 主板功能、丰富的外围试验电路、细心设计的试验程序、精湛的产品工艺形成的高性能产品。在这里主要介绍的是 SEED-DTK6713 试验箱,它由 SEED-DEC6713 板卡以及
2、SEED-DTK_MBoard 构成;其中主控板是SEED-DEC6713,母板是SEED-DTK_MBoard 板卡。此外,该款试验箱还可配置 DSK 板卡、图像处理卡等多种子卡。SEED-DTK6713 试验箱试验例程 SSED_DEC6713 板卡试验例程1. CCS 软件应用试验介绍 CCS 的使用,编写简洁的试验例程。2. DSP 片上资源应用试验本局部例程介绍的是 DSP 的片上资源。3. SSED_DEC6713 板卡应用试验SSED_DEC6713 板卡与试验箱资源的应用试验。包括:异步、同步串口通讯;扩展 I/O口使用;AD/DA 的使用。4. 算法试验包括 FFT,滤波FI
3、R、IIR ,卷积,自适应滤波器算法试验。5. 语音算法试验包括回声,混响,语音滤波等试验 。6. 参考试验包 括 USB使 用 实 验 、 自 举 程 序 的 编 写 以 及 SEED-DEC6713板 卡 与SEED-DTK_MBoard 板卡之间数据传递试验。 母板试验例程1. DSP5402 片上资源应用试验本局部例程主要是 DSP 片上资源的使用介绍。2. 试验箱外设试验试验箱母板资源的应用试验。包括:键盘、液晶、信号源的使用。 其他板卡试验程序该局部程序将依据试验箱的具体配置供给。SEED-DTK6713 的原理框图如下:试验箱整体配置 SEED-DTK6713 试验箱由以下几局部
4、构成:1. SEED-DEC6713 试验箱 DSP 根本系统2. 高性能的 32-位浮点 DSPTMS320C6713:主频可达 300MHz,处理性能高达2400MIPS3. DRAM:2M32-位可扩展至 4M32 位4Flash:256K16-位可扩展至 1M16 位5供给看门狗电路、电源监视、上电复位、手动复位62 路编程可选的 RS232/RS422/RS485 7AC97 标准的Audio 音频接口82 路 McASP SEED-Mboard 试验箱人机接口模块: 1处理器为 TMS320C5402 DSP 2SRAM:64K16-位可扩展至 256K16 位3. Flash:2
5、56K16-位用于存放二级标准汉字库及驻留试验程序4. 供给手动复位51 路 RS232 接口64 路 12 位 10S建立时间10V 输出 D/A717 键薄膜键盘8240*128 大屏幕液晶显示9交通登演示模块以上只介绍试验箱所用到资源,如想使用其他资源请参考各个模块的用户手册。试验箱特点 模块化的产品构造:SEED-DEC6713试验箱的 DSP 根本系统可替换其它系列的 DSP SEED-DECxxxx 产品SEED-Mboard人机接口模块、处理器为 TMS320C5402 DSP SEED-DTK_PWMDRV电机驱动模块 试验箱特点:1. 独具匠心设计的双 DSP 构造,可以完成
6、 DSP 间的通讯试验2. 各模块丰富的资源,最大化满足试验要求3. 全数字化试验过程,包括高精度信号发生器4. 丰富多彩的试验,可以满足多种专业的教学要求5. 内容详实的试验手册和试验报告6. 公开的底层函数,供给试验可扩展性7. 精湛的产品设计和加工工艺,表达出的专业产品制造试验箱功能实现 试验箱中 SEED-DEC6713 工作状态如下:1. Boot 模式:承受 CE1 8 位宽度的外部 FLASH(缺省状态) ;JP10、JP9 皆为短路。2. 串口通讯:承受的是 A 通道异步串行接口,RS232 全双工方式;JP4 短路, JP3 短路。3. 音频输出:立体声输出左、右声道耳机驱动
7、输出;JP1、JP2 的 2-3 短路。4. 边沿模式:小端模式缺省状态;JP11 开路 试验箱中 SEED-Mboard 模块工作状态如下:1工作方式的选择SEED-Mboard 的工作模式为 MC 工作方式。2BOOT 模式当 SEED-Mboard 处于 MC 工作方式时,只能用 FLASH 引导方式,既程序存放在FLASH 中,上电或复位后,DSP 将 FLASH 中的程序 BOOTLOAD 到 SRAM 中,程序在SRAM 中运行。3. 工作频率使用 10MHz 外部频率输入;当复位后,PLL 硬件初始化设置为 5 倍频。其芯片管脚CLKMD3CLKMD1 设置为 010; 便于 D
8、SP 读取 FLASH 的程序。 系统工作正常后, 可通过设置 CPU 的存放器 CLKMD,将 PLL 设为需要的倍频数。4. 串口通讯MCBSP0 用于 UART 通讯,因 MCBSP 是一种同步串口,而 UART 是一种异步串口, 所以 VC5402 没有直接和 UART 通讯的片内外设,只有通过软件方式,用 MCBSP 和 DMA 来完成 UART 通讯功能,在硬件电路上,BDX0 作为数据发送端,BDR0 和 BFSR0 作为数据接收端。5. 增加型 HPI 口SEED-Mboard 使用 HPI 口作为 GPIO 口,用做键盘扫描,HPI 口的 HD0-HD3,XF做输出,工作时置
9、为 0,而 HD4-HD7,BIO 做输入,工作时接上拉电阻,实现键盘操作。CCS 的安装本试验箱中主要使用SEED_DEC6713 板卡,其处理器为TI 的 TMS320VC6713,因此在这介绍CCS6000 的安装与使用。CCS 安装安装 C6000 系列 2.0 以上的 CCS 软件,步骤如下: 第一步:双击 Code Composer Studio 图标;其次步:依据光标依次执行;第三步:第四步:第五步:第六步:默认路径为 c:ti;第七步:第八步:第九步:第十步:可以安装 Adobe Acrobat Reader 用来阅读 PDF 文件;第十一步:重启动计算机,选择 YES;第十二
10、步:点击 exit,退出 Code Composer Stdio 安装;模拟仿真的设置1. 双击 图标进入CCS 环境。点击“Clear”按钮,原有的设备驱动程序配置。2. 做如下设置3. 点击“Import”按钮导入,保存退出后进入CCS 界面,就可以进展仿真试验了。硬件仿真器的安装硬件仿真器款式很多,如 PP 系列、USB 系列、PCI 系列等等,不同的系列仿真器的安装也不尽一样,在此我们将介绍常用的 USB 系列,其他系列的安装是类似的,具体请参见硬件仿真器所配的光盘内容。 下面介绍一下 SEED-XDSUSB2.0 仿真器的安装。 SEED-XDSUSB2.0 的驱动安装1. 将 US
11、B 仿真器的 USB 插头插入 PC 机的 USB 插槽中,启动计算机后识别SEED-XDSUSB2.0硬 件 , 识 别 后 安 装 其 驱 动 程 序 。双 击UtilitiesC6000SEED-XDSUSB2.0USBdriverDisk1 下的 setup.exe 文件。此文件是仿真器所配的光盘的内容2. 依据提示依次执行,同时默认路径为 CCS 的安装路径。3. 安装完毕后翻开掌握面板查看系统中的设备治理器,消灭如下结果,证明硬件连接成功,否则需检查硬件是否连接正确和 USB 驱动安装是否安装正确。4. 将仿真器 JTAG 插头与试验箱主控板 SEED-DEC6713 的 JTAG
12、 插头 J1 相连, 翻开试验箱电源开关。观看 SEED-DTK_MBoard 单元的+5V、+3.3V、+15V、-15V 的电源指示灯以及 SEED-DEC6713 的 D2 与 D4 的电源指示灯是否均亮; 假设有不亮的,请断开电源,检查电源。5. 将utilitesC6000SEED-XDSUSB2.0USBdriver下的 usb20emurst.exe 文件拷贝到计算机上,双击 usb20emurst.exe,假设消灭如下提示,证明仿真器与目标系统连接正常。 驱动程序的配置假设已经进展过配置,则不需要再进展配置了。1. 双击桌面上的 Setup CCS 2(6000)。“Clear
13、”原有的设备驱动程序配置。依据 DSP 的型号选择相应的 TI 原装驱动程序,依据 DSP 的型号选择相应的 TI 驱动程序,本试验箱承受 SEED-DEC6713,应选择 C671xXDS510 Emulator。2. 单击 Import a Configuration File。3. 进入以下图所示界面,选择 C671xXDS510 Emulator 后,单击 Import 后,点击Close 命令。4. 点中C671x XDS510 Emulator 驱动后, 鼠标右键, 在弹出的菜单中点击Properties。5. 在弹出的对话框中点击,添加 Auto_ generate board
14、data file with extra Configure。6. 点击 Browse,弹出一对话框。7. 在上一步操作中弹出的对话框中,选中 CCS 中 drivers 名目下的 seedusb2.cfg 文件,同时翻开。8. 点击图标 next。9. I/O Port 为 0x240,点击图标 Next。10. 依据系统 CPU 的个数选择 Add Single 的相应次数,然后点击 next。11. 点击图标 Finish。12. 关掉 CCS setup,保存设置。13. 启动 CCS,消灭 CCS 调试界面。 用户使用试验箱时,请留意以下几个方面1. 上电后正常状况是,SEED-DE
15、C6713 板卡的 D1、D3 常亮, SEED-DTK_Mboard板的电源指示灯都亮。2. 各个试验程序的编译环境如下:CCS 版本为 2.20.18。3. 各试验使用到资源可参考本书的附录内容。4. 留意:运行 FLASH 读写程序有可能会破坏 SEED-DEC6713 板卡的固化的自举序, 这样会使试验箱的自检程序无法正常运行。假设想运行试验箱自检程序,要重烧录SEED-DEC6713的FLASH程 序 。 即 运 行 光 盘 中 的BOOT文 件 夹 中 的DEC6713_FLASHBOOT 程序。具体烧录方法见 SEED-DTK6713 试验箱使用手册的第四章。试验一 CCS 入门
16、试验一、试验目的:1. 生疏 CCS 集成开发环境,把握工程的生成方法;2. 生疏 SEED-DEC6713 试验环境;3. 把握 CCS 集成开发环境的调试方法。二、试验内容:1. DSP 源文件的建立;2. DSP 程序工程文件的建立;3. 学习使用 CCS 集成开发工具的调试工具。三、试验背景学问: CCS 简介CCS(Code Composer Studio)是 TI 公司为DSP 推出的集成软件开发环境(IDE),是DSP 领域第一个完整的、开放型的集成开发环境,CCS 功能强大,供给了配置、建立、调试、跟踪和分析的工具,包括了应用程序开发所必需的功能,便于对实时信号处理程序的编制和
17、测试,能够加速开发进程,提高工作效率。CCS 的构成及接口见以下图所示:CCS 窗口及功能介绍如以下图所示:CCS 直观、易用,具有实时分析、观看DSP 的信息等功能。在CCS 里,能对数据进展图形化可视分析,有多种专业的画图工具,可以对信号做时域/频域的分析、做快速傅立叶(FFT)变换等,如以下图所示:CCS 常用功能如下1. 设置断点将光标放置在需要设置断点的程序行前,单击DebugBreakpoints,或单击工具栏按钮,即可完成一个断点的设置。单击工具栏按钮2. CCS 供给了如下 3 种方法对CPU 进展复位,可去除全部的断点。(1) Reset DSP:单击 Debug Reset
18、 CPU,初始化全部的存放器内容并暂停运行中的程序。使用此命令后,要重装载.out 文件后,再执行程序。(2) Restart:单击 Debug Restart ,将PC 值恢复到当前载入程序的入口地址。(3) Go main:单击 Debug Go main,将程序运行到主程序的入口处暂停。3. CCS 供给了 4 种方法来执行程序(1) 连续执行:单击 Debug Run ,程序运行,直到遇到断点为止。(2) 暂停执行:单击 Debug Halt ,程序停顿运行。(3) 动画执行:单击 Debug Animate,用户反复运行程序,直到遇到断点为止。(4) 自由执行:单击 Debug Ru
19、n Free ,制止全部断点运行程序。4. CCS 供给了 4 种单步执行操作(1) 单步进入:快捷键F8,Debug Step Into,当调试语句不是根本的汇编指令时,此操作进入语句内部。(2) 单步执行:点击 Debug Step Over,此命令将函数或子函数当作一条语句执行, 不进入内部调试。(3) 单步跳出:点击 Debug Step Out,此命令为从子程序中跳出。(4) 执行到光标处:快捷键Crtl+F10,单击 Debug Run to Cursor,此命令作用为将程序运行到光标处5. 查看内存与变量(1) 查看变量:使用 View Watch Window 命令。(2) 查
20、看存放器:使用 View Registers CPU Registers 命令。(3) 查看内存:使用 View Memory 命令。6. 显示图形(1) 翻开工程文件 tutorialvolume1volume.pjt,在 Project View 窗口中,双击 volume.c 文件,将光标置于主函数中的 dataIO( )这一行上,点击工具栏按钮 Toggle Probe Point,插入探测点。(2) 选择 FileFile I/O,在 File I/O 对话窗中可选择输入和输出文件。在File Input 栏中,单击Add File,选择 sine.dat 文件。留意:在文件类型框中
21、可以选择数据格式,sine.dat 文件包含正弦波形的十六进制值。(3) 单击Open,将该文件添加到File I/O 对话框的列表上,接着消灭sine.dat 文件掌握窗口。在运行程序时,可用这个窗口开头、停顿、重复、或快速前进来掌握数据文件。(4) 在 File I/O 对话框中,将Address 修改为inp_buffer,Length 修改为 100,选中Wrap Around。(5) 单击Add Probe Point,BreakProbeProfile Points 对话窗的Probe Point 栏就会消灭。单击Connect 栏尾处的下箭头,在其下拉菜单中选择 sine.dat
22、 文件,单击 Replace。Probe Point 列表将显示探测点已连接到sine.dat 文件,如以下图所示。在File I/O 对话框,单击“确定”按钮。File I/O 对话框(6) 选择View Graph Time/Frequenc。y 在弹出的Graph Property Dialog 对话窗中, 将 Graph Title,Start Address,Acquisition Buffer Size,Display Data Size,DSP Data Type 等的属性可转变为如以下图所示(也可依据具体需要设置属性)。向下滚动右侧的滚动条或调整对话框的大小可看到全部的属性。图
23、形显示属性对话框(7) 单击OK 按钮,将消灭所设的图形窗口,如以下图所示。可以在图形上右击,选择 Float In Main Table,这时图形将消灭在主窗口中,以便观看。正弦曲线图形窗口四、试验程序,包含文件: 五、试验预备1. 将 DSP 仿真器与计算机连接好;2. 将 DSP 仿真器的 JTAG 插头与 SEED-DEC6713 单元的 J2 相连接;3 启动计算机, 当计算机启动后 , 翻开 SEED-DTK6713 的电源。 观看SEED-DTK_MBoard 单元的 5V , 3.3V , 15V , 15V 的电源指示灯灯以及SEED-DEC6713 的电源指示灯 D1、D3
24、 是否均亮;假设有不亮的,请断开电源,检查电源。下面依据原文件、工程文件以及编译条件的设置来分别介绍一下 CCS 的使用。六、试验步骤创立源文件1. 双击 图标进入CCS 环境。2. 翻开 CCS 选择 File New Source File 命令3. 编写源代码并保存4. 保存源程序名为 math.c,选择 File Save5. 创立其他源程序如 d可重复上述步骤。创立工程文件1. 翻开 CCS,点击 Project-New,创立一个工程,其中工程名及路径可任意指定弹出如下对话框:2. 在 Project 中填入工程名,Location 中输入工程路径;其余依据默认选项,点击完成即可完成
25、工程创立;3. 点击 Project 选择 add files to project,添加工程所需文件;4. 在弹出的对话框中的下拉菜单中分别选择.c 点击翻开,即可添加源程序 math.c 添加到工程中;5. 同样的方法可以添加文件 math d、rts.lib 到工程中;在下面窗口中可以看到math.c、math d、rts.lib 文件已经加到工程文件中。设置编译与连接选项1. 点击 Project 选择 Build Opitions;2. 在弹出的对话框中设置相应的编译参数,一般状况下,按默认值就可以;3. 在弹出的对话框中选择连接的参数设置,设置输出文件名可执行文件与空间安排文件 ,
26、堆栈的大小以及初始化的方式。工程编译与调试1. 点击 Project Build all,对工程进展编译,如正确则生成 out 文件;假设是修改程序,可以使用 Project Build 命令,进展编译连接,它只对修改局部做编译连接工作。可节约编译与连接的时间。编译通过,生成.out 文件;2. 点击 File load program,在弹出的对话框中载入 debug 文件夹下的.out 可执行文件;3. 装载完毕;4. 点击 debug Go Main 回到 C 程序的入口;5. 翻开 File Workspace Save Workspace保存调试环境, 以便下次调试时不需要重进展设置
27、。只要 File Workspace Load Workspace即可恢复当前设置。 Hello World 程序1. 工程hello.pjt 包含如下文件:说明例如程序的功能 Hello.c:这是主程序文件 Hello d:声明白系统的存储器配置与程序各段的链接关系在以下图中可以看到已翻开的工程所包含的文件。根本应用程序例如2. 设置编译与链接选项。点击Project 菜单,选择Build Opitions 选项,在弹出的对话框中设置相应的编译参数,如以下图所示,一般状况下,按默认值就可以。编译选项设置对话框3. 在弹出的对话框中选择链接的参数设置,设置输出文件名(可执行文件与空间安排 文件
28、),堆栈的大小以及初始化的方式如以下图所示。链接选项设置对话框4. 工程编译与调试,点击 Project 菜单,选择 Build all 选项,对工程进展编译,如正确,则生成.out 文件;假设是修改程序,可以使用 Project Build 命令进展编译链接,它只对修改局部做编译链接工作。可节约编译与链接的时间。编译通过,生成.out 文件;5. 单击File 菜单,选择 load program 选项,在弹出的对话框中,载入debug 文件夹下的.out 可执行文件;装载完毕,单击debug /Go Main 回到C 程序的入口;6. 也可以选择Option Customize 选项,在弹
29、出的对话框中选择Program Load Options 页,选中Load Program After Build,即可在编译后自动装载程序;在Debug Properties 页, 选中Perform Go Main automatic,既可在装载完程序后自动转到main 函数,如以下图所示。用户选项设置对话框7. 翻开File 菜单,选择Workspace Save Workspace 保存调试环境,以便下次调试时不需要重进展设置,只要翻开File 菜单,选择Workspace /Load Workspace 即可恢复当前设置。试验二 乘累加算法试验一、试验目的:1. 了解乘累加运算在DS
30、P 各种算法中的意义;2. 生疏并掌常用汇编指令的使用;3. 把握乘累加运算的相关算法和流程; 二、试验内容:1. 开发软件CCS 环境的进一步生疏;2. 乘累加运算程序具体内容;3. 运行乘累加运算试验,观看相关存放器和数据存储空间值的变化; 三、试验背景学问:在数字信号处理的算法中,乘法和累加是根本的大量的运算。例如,在数字滤波、FFT、卷积、相关、向量和矩阵等运算中,都有大量的类似下式的运算:A ( k )B ( n - k )这一类的运算往往要占据DSP 处理器的绝大局部处理时间。通用计算机的乘法是用软件来实现的,一次乘法往往需要很多个机器周期才能完成。为了提高DSP 处理器的运算速度
31、, 它们都毫不例外地设置了硬件乘法器以及MAC乘累加一类的指令。C6713 具有相互独立的两套乘法器和加法器,这样就很便利的实时快速实现乘累加这一大量运算的功能。 四、试验要求:1. 生疏 CCS 软件的使用,能够进展单步执行、观看相关存放器、观看相关存储器数值的变化;2. 能够理解程序意思,理解每条指令及其相关存放器的使用3. 理解不同指令及其不同的延迟间隙五、试验程序功能与构造说明:这次试验我们主要实现累加和的功能,如式1所示C = A Biii1具体实现过程下面会进展具体讲解。1. 初始化相关存放器的值,并设置AMR寻址模式存放器和CSR掌握状态存放器这里我们可以看出:A5、A6、A7
32、三个存放器用作线性寻址的地址指针,并初始化其他相关存放器A2,A8,A9,A4,B0。2. 得到乘累加的单个元素值并存储,如公式中的:A 、 A12., B 、B12.。这里我们只取 10 个数分别进展乘累加运算。这里我们可以看出来,A8,A9 存放器分别对应式1中 A 和 B,这里进展了一个小循环,目的是得到分散的乘累加因子,并将它们存储到数据存储器中。3. 进展最终的乘累加运算这段程序我们可以看出来,将已经得到的相关元素进展相乘并累加,最终将所得到的结果赋值到A4 存放器中,即得到我们所需要的结果。六、试验步骤:1. 翻开乘累加的工程文件,并翻开其源代码。2. 翻开存放器观看窗口和数据存储
33、窗口,这里的数据存储窗口我们需要是从0x20230、0x21000、0x22023 地址开头的三段存储空间,如以下图所示3. 编译并运行程序,观看相关存放器值的变化和存储器值的变化状况,如下所示:试验三 混合编程试验一、 试验目的:1. 在了解纯 C 语言程序工程和汇编语言程序工程构造的根底上,学习在 C 工程中参加汇编编程的混合编程方法;2. 了解混合编程的留意事项;3. 理解混合编程的必要性和在什么状况下要承受混合编程。二、试验内容:1. DSP 源文件的建立;2. DSP 工程文件的建立;3. 把握 C 语言和汇编语言在 DSP 中混合的应用。三、试验背景学问:C 语言程序优缺点: 优点
34、易于开发和维护。由于用C 语言书写接近自然语言,其可读性强、利于理解,在编制、修改、实现算法方面比用汇编语言开发简洁。1. 可移植性强。2. 不简洁发生流水线冲突。编译器能供给完善的解决流水线冲突的结果。3. 有大量现存的算法可利用。4. 适用于人机界面的开发。 缺点 1代码量大。 2程序效率较低。3优化代码存在肯定困难。综上所述,我们一般用 C 语言设计应用程序的总体框架、解决人机接口和对速度效率要求不太高的简单算法。汇编语言程序优缺点: 优点1. 更能发挥系统特点。由于汇编语言掌控系统硬件的力量强于C 语言,设计出来的程序更加贴近硬件特性,往往能将硬件效能发挥到极致。2. 代码精练,效率高
35、。用汇编语言设计的程序,代码短、不简洁产生冗余。3. 代码量小。 缺点 1可读性差。不利于简单算法的开发和实现。2可移植性差。3简洁产生流水线冲突。由于排解冲突需要靠人来关心完成,这要求编程人员有较为丰富的开发阅历和对硬件工作机制的深刻理解。如何混合编程1. 混合工程: 在工程中可以同时包含C 语言程序和汇编语言程序, 无需更改编译选项。一般地,我们使用C 程序为主,参加汇编语言程序模块。2. 使用模块技术:在应用程序中划分出比较清楚的模块,不同模块可承受不同语言设计。强调效率和速度的模块承受汇编设计。尽量少用汇编语言设计程序。3. 如何找出需要用汇编程序设计的模块:(1) 用C 语言完成设计
36、后,运用CCS 的软件仿真功能,充分测试程序,找到程序运行中的瓶颈(速度方面的和空间方面的)。(2) 再使用分块仿真技术尽可能缩小模块。(3) 找到的模块单独写成子程序,存入独立的文件中。(4) 由于 CCS 编译器能产生 C 语言程序到汇编程序的中间文件, 观看需要优化的模块的汇编结果,进展人工优化。(5) 最终运用人工优化后形成的汇编程序模块,代替原来需要优化的 C 语言模块, 进展编译。(6) 程序中可使用内嵌汇编。比方:asm(“ MOV T1, *SP(#1)”); 编译器可直接使用内嵌的汇编语句生成最终代码。但需要语句中双引号中为合法的汇编语句,比方要以空格开头等等。何时使用混合编
37、程技术1. 当程序中需要操作与硬件亲热相关的设备,而用C 语言较难实现时。比方:在中断程序设计时需要设置中断向量表,向量表中空间有限用C 语言语句有困难,且需向量表要在内存中准确定位,这时可将设置中断向量表的局部用汇编语言代替。2. 当需要绕开C 编译器的规定,进展特别操作时。比方:C 语言规定,程序不能访问程序代码区,而系统功能需要进展类似访问时可承受限制较小的汇编语言程序设计。3. 当需要提高模块的效率(包括空间上和时间上两方面的),而 C 语言程序无法到达要求时。使用混合编程时的留意事项1. 在汇编程序中使用其他 C 语言模块中定义的变量或函数名称时, 需要在引用的名称前加一下划线。如:
38、C 中定义的变量为x,在汇编中引用时要用_x。2. 汇编语言写的子程序需要符合 C 语言的调用规章, 尤其是在默认的关心存放器使用上和栈的使用上要求兼容。3. 在汇编语言模块中,需要编程者自己消退流水线冲突。4. 在使用内嵌汇编技术时,需要考虑以下内容:(1) 要格外留神地处理,以免破坏C 语言操作环境。编译器在遇到内嵌汇编语句时, 不会对其中的汇编语句进展分析处理。(2) 避开从内嵌汇编语句跳转到 C 语言模块中,那将极简洁造成存放器使用上的混乱,从而产生难以预料的结果。(3) 不要在内嵌汇编语句中转变 C 语言模块中变量的值,但可以安全地读取它们的值。(4) 在汇编程序中不要使用内嵌汇编。
39、试验程序解释试验程序供给了一个使用 C 与汇编程序混合编程的实例,是一个用汇编语言模块优化自己编制的应用程序的实例。首先用户拿到的是一个纯用C 语言开发的工程,再依据假设, 需要将其中一个模块改造成用汇编语言模块优化的模块。通过试验过程,用户可充分了解混 合编程可以实行的步骤和方法。四、试验程序,包含文件:1. Complex.c:试验的主程序。2. ComProg.sa 定点加法汇编程序;3. DEC6713.gel:系统初始化4. link d: 声明白系统的存储器配置与程序各段的连接关系。五、试验预备:首先将光盘下 03. Examples of Program 04. SEED-DTK
40、6713 试验程序名目下的 3.1.4 ComplexProg 的文件夹拷贝到 D:盘根名目下。1. 将 DSP 仿真器与计算机连接好;2. 将 DSP 仿真器的 JTAG 插头与 SEED-DEC6713 单元的 J2 相连接;3. 翻开 SEED-DTK6713 的电源。观看 SEED-DTK_MBoard 单元的5V,3.3V,15V,15V 的电源指示灯以及 SEED-DEC6713 的电源指示灯 D2、D4 是否均亮;假设有不亮的,请断开电源,检查电源。六、试验步骤1. 双击 图标进入 CCS 环境。2. 装入 ComplexProg.pjt 工程文件, 添加 DEC6713.gel
41、 文件;3. 装载 ComplexProg.out 文件,进展调试;4. 执行程序,观看结果。试验四 SDRAM 读写试验一、试验目的:1. 生疏 DEC6713 外部存储器 SDRAM;2. 把握外部接口EMIF 的配置;3. 生疏 SDRAM 的读取操作。二、试验内容:1. 系统初始化;2. 外部接口的初始化;3. SDRAM 的读写操作。三、试验背景学问: SDRAM 简介SEED-DEC6713 模板上用单片 32-位 4-banks 的 SDRAM 来扩展外部大容量同步动态随机存储器,原理框图如以下图所示:由上图可见,SEED-DEC6713 模板上通过 4 个 0 电阻 R22R2
42、5 来兼容 2 种不同容量的 SDRAM,缺省配置时,SDRAM 的容量为 2M32-位,此时焊接 R22 和 R24, 不焊R23 和 R25;最大配置时,SDRAM 的容量为 4M32-位,此时焊接 R23 和 R25, 不焊 R22 和 R24。 SDRAM 地址安排SDRAM 被映射到 VC6713 的CE0 存储空间, 工作频率为 100MHz, 支持 8/16/32-位访问,字节地址为 0x8000 00000x80FF FFFF。 EMIF 接口 SDRAM 配置在对 SDRAM 进展读写访问前,需通过EMIF 的CE0 掌握存放器 CE0CTL 将CE0空间配置为 32-位 S
43、DRAM 存储器接口,及通过 SDCTL、SDTIM、SDEXT 等存放器设置SDRAM 的读写时序和参数。1. 配置VC6713 EMIF GBLCTL 存放器,使能 ECLKOUT,EMIF 输入时钟承受系统默认设置,即输入时钟为 SYSCLK3。2. 配置 CECTL0 存放器, 使 CE0 空间外扩 32 位 SDRAM,并设置相应的读写参数。3. 配置 SDCTL 存放器,各个参数由 SDRAM 容量大小以及ECLKOUT 周期确定。4. 配置 SDTIM 存放器,计算器当前值与周期由 SDRAM 速度指标、刷周期以及ECLKOUT 周期打算。有关 SDRAM 的访问时序和参数参见M
44、icron 128M SDRAMx32和Micron 064M SDRAMx32 。四、试验要求:通过本试验,把握外部存储器接口的配置,生疏 SDRAM 程序的读写。五、试验程序功能与构造说明: SDRAM 试验包含文件1. DEC6713_SDRAM.c:试验主程序,包含了系统初始化,访问外部存储器接口EMIF初始化,SDRAM 的读写程序等。2. DEC6713.c:对 SEED-DEC6713 各项资源操作的函数集,主要包含系统初始化函数,对 CPLD 的各个掌握函数。3. vecs.asm: 包含定时器中断的中断向量表。4. SEED_DEC6713 d: 声明白系统的存储器配置与程序各段的连接关系。5. DEC6713.gel:系统初始化程序 程序流程图六、试验预备首先将光盘下 03. Examples of Program 04. SEED-DTK6713 试验程序名目下的 3.2.5 SDRAM 的文件夹拷贝到 D:盘根名目下。1. 将 DSP 仿真器与计算机连接好;2. 将 DSP 仿真器的 JTAG 插头与 SEED-DEC6713 单元的 J2 相连接;3. 翻开 SEED-DTK6713 的电源。观看 SEED-DTK_MBoard 单元的5V,3.3V,15V,15V 的