实验一 DSP的常用指令实验
dsp实验注释
dsp实验注释实验一:简单指令程序运行实验代码(含注释):.mmregs.global _main_main:stm #3000h,sp ;sp为堆栈指针寄存器,stm为存储器映射寄存器寻址ssbx xf ;xf赋值为1,灯亮call delay ;调用delay函数,延迟0.5秒rsbx xf ;xf赋值为0,灯灭call delay ;调用delay函数b _main ;无条件调用_main函数nopnop;delay .5 second ;延时5秒delay:stm 270fh,ar3 ;ar3赋值207fh,十进制为9999dloop1:stm 0f9h,ar4 ;ar4赋值0f9h,十进制为249dloop2:banz loop2,*ar4- ;若不为0,ar4减1banz loop1,*ar3- ;若不为0,ar3减1,共进行10000*250次跳转retnopnop.end实验操作:可见XF灯以一定频率闪烁;单击“Halt”暂停程序运行,则XF 灯停止闪烁,如再单击“Run”,则“XF”灯又开始闪烁。
实验二:资料存储实验本实验程序将对0x1000开始的8个地址空间,填写入0xAAAA 的数值,然后读出,并存储到0X1008开始的8个地址空间。
在CCS 中可以观察DATA内存空间地址0X1000~0X100F值的变化。
代码(含注释):.mmregs.global _main_main:;store data ;存储数据stm 1000h,ar1 ;将立即数1000h送入辅助寄存器ar1 (内存地址) rpt #07h ;循环执行下一条指令,8次st 0aaaah,*ar1+ ;将立即数0xaaaah赋给辅助寄存器ar1的1000h地址内,;之后ar1的地址加1,8次;ar1的地址变1008,内存0x1000-- ox1007中的数据均为0xaaaah;read data then re-store ;读入数据重新存储stm 7h,ar3 ;令辅助寄存器ar3的初值为07hstm 1000h,ar1 ;重新将立即数1000h送入辅助寄存器ar1stm 1008h,ar2 ;将立即数1008h送入辅助寄存器ar2loop: ;进入循环ld *ar1+,t ;将辅助寄存器ar1的值0xaaaah存入T寄存器中,且ar1的地址加1 st t,*ar2+ ;将T寄存器内容0xaaaah存入辅助寄存器ar2 ,并且ar2的地址加1 banz l oop,*ar3- ;寄存器ar3的值不为0时,执行循环loop,ar3的地址值减1直至为0时退出循环here:b here.end ;结束(地址0x1000-- 0x100F,程序完成对16个内存单元赋值)实验操作:1.用“View”下拉菜单中的“Memory”查看内存单元;2.输入要查看的内存单元地址,本实验要查看0x1000H~0x100FH单元的数值变化,输入地址0x1000H;3.查看0x1000H~0x100FH单元的初始值,单击“Run”运行程序,也可以“单步”运行程序;4.单击“Halt”暂停程序运行;5.查看0x1000H~0x100FH单元内数值的变化;6.关闭各窗口,本实验完毕。
北邮-DSP数字信号处理 实验-实验报告
北京邮电大学电子工程学院电子实验中心<数字信号处理实验>实验报告班级: xxx学院: xxx实验室: xxx 审阅教师:姓名(班内序号): xxx 学号: xxx 实验时间: xxx评定成绩:目录一、常规实验 (3)实验一常用指令实验 (3)1.试验现象 (3)2.程序代码 (3)3.工作原理 (3)实验二数据储存实验 (4)1.试验现象 (4)2.程序代码 (4)3.工作原理 (4)实验三I/O实验 (5)1.试验现象 (5)2.程序代码 (5)3.工作原理 (5)实验四定时器实验 (5)1.试验现象 (5)2.程序代码 (6)3.工作原理 (9)实验五INT2中断实验 (9)1.试验现象 (9)2.程序代码 (9)3.工作原理 (13)实验六A/D转换实验 (13)1.试验现象 (13)2.程序代码 (14)3.工作原理 (18)实验七D/A转换实验 (19)1.试验现象 (19)2.程序代码 (19)3.工作原理 (37)二、算法实验 (38)实验一快速傅里叶变换(FFT)算法实验 (38)1.试验现象 (38)2.程序代码 (38)3.工作原理 (42)实验二有限冲击响应滤波器(FIR)算法实验 (42)1.试验现象 (42)2.程序代码 (42)3.工作原理 (49)实验三无限冲击响应滤波器(IIR)算法实验 (49)1.试验现象 (49)2.程序代码 (49)3.工作原理 (56)作业设计高通滤波器 (56)1.设计思路 (56)2.程序代码 (57)3.试验现象 (64)一、常规实验实验一常用指令实验1.试验现象可以观察到实验箱CPLD右上方的D3按一定频率闪烁。
2.程序代码.mmregs.global _main_main:stm #3000h,spssbx xf ;将XF置1,D3熄灭call delay ;调用延时子程序,延时rsbx xf ;将XF置0,D3点亮call delay ;调用延时子程序,b _main ;程序跳转到"_MAIN"nopnop;延时子程序delay:stm 270fh,ar3 ;将0x270f(9999)存入ar3loop1:stm 0f9h,ar4 ;将0x0f9(249)存入ar4loop2:banz loop2,*ar4- ;*ar4自减1,不为0时跳到loop2的位置banz loop1,*ar3- ;*ar3自减1,不为0时跳到loop1的位置ret ;可选择延迟的返回nopnop.end3.工作原理主程序循环执行:D3熄灭→延时→D3点亮→延时。
DSP实验报告
姓名:班级:自动化15 学号:2015实验一数据存储实验一实验目的1。
掌握TMS320F2812程序空间的分配;2。
掌握TMS320F2812数据空间的分配;3。
能够熟练运用TMS320F2812数据空间的指令。
二实验步骤与内容实验步骤1.在进行DSP实验之前,需先连接好仿真器、实验箱及计算机,连接方法如下所示:2.F2812CPU板的JUMP1的1和2脚短接,拨码开关SW1的第二位置ON;其余OFF3.E300底板的开关SW4的第2位置ON,其余位置OFF.其余开关设置为OFF.4.上电复位在硬件安装完成后,确认安装正确、各实验部件及电源连接无误后,启动计算机,接通仿真器电源,此时,仿真器上的指示灯应点亮,否则DSP开发系统与计算机连接存在问题。
5.运行CCS程序1)待计算机启动成功后,实验箱220V电源置“ON",实验箱上电2)启动CCS5.5,工作环境的路径选择:E:\E300Program\E300TechV-2812\normal ;6.成功运行CCS5.5程序后,出现如下图所示界面:7.右键点击Project Explorer窗口下的工程文件“e300_01_mem”,选择“Open Project"命令打开该工程,如下图所示,可以双击才看左侧源文件;8.点击菜单栏Project/Build All命令编译整个工程,编译完成后点击按钮进入仿真模式,完全进入后如下图所示:9.用“View"下拉菜单中的“Memory/Browser”查看内存单元,参数设置如下图:注意:下面的参数设置都是以16进制。
此时可以观测到以0x003F9020为起始地址的存储单元内的数据;10.单击按钮,开始运行程序,一段时间后,单击按钮,停止程序运行,0x003F9020H~ 0x3F902FH单元的数据的变化,如下图所示:11.关闭Memory Browser窗口,点击按钮,退出仿真模式。
实验一 DSP指令实验
实验一DSP指令实验实验目的:了解DSP的结构及管脚功能(请参阅TMS320C5000系列原理说明书)掌握DSP的基本指令实验要求:让学生了解怎样连接对DSP进行简单的编程操作,运算控制等基本汇编语言及算术语言实验测试及除错验证。
实验说明:DSP指令实验,主要是对54系列DSP一个基本的了解实验,主要是熟悉54系列的语句、了解54系列DSP的基本框架、了解DSP的特征。
该实验所需硬件主要是TMS320C5402DSP芯片,以及发光二极管等有可观性电路。
实验过程是:让学生了解怎样连接对DSP进行简单的编程操作,运算控制等基本汇编语言及算术语言实验测试及除错验证。
实验步骤:安装CCS的Simulator方式:双击桌面上的Setup CCS C5000 图标,关闭Import Configuration 窗口,在System Configuration中的My System的下面可看到一个类似板卡的图标,如果该图标的名称是“tisim54x”的话,就可直接关闭该窗口,不存盘退出。
如果该图标的名称不是“tisim54x”的话,在该图标上点击右键,选择remove删除该结构,然后在Available Board Types中双击“tisim54x”的图标(如果有的话),弹出Board Properties的对话框点击“next”、“finish”然后关闭Code Composer Setup窗口,存盘退出即可。
如果在Available Board Types中没有“tisim54x”的图标,则在右边框内单击“Install a Device Driver”,在路径“c:\ti\driver\”中打开tisim54x.dvr 文件,在Available Board Types中可看到“tisim54x”的图标,然后按上述操作。
即生成CCS 的Simulator方式。
1、以Simulator方式启动CCS,在[Project]-[Open]菜单中打开ex1.mak;2、在左边树状列表框内双击[Project]展开目录树,双击[ex1.asm]打开源程序文件(或者打开自己编写的程序),参考程序中的注释仔细阅读源程序;3、在[Project]-[Build]菜单中编译项目文件,编译成功后在下端的状态窗口中显示Build Complete,0 Errors,0 Warnings;4、在[File]-[Load Programm]中加载输出执行代码文件ex1.out,此时,反汇编窗口将显示在前端,当前PC指针为0000:0080(黄色高亮显示),指令代码将以汇编语言方式显示,可以在反汇编窗口中点击鼠标右键,在弹出菜单中选择[Properties]-[Dis-Assembly Options]打开反汇编选项对话框,在[Dis-Assembly Style]选项中选择[Algebraic],以算术语言方式显示指令代码(注意:此时可能标号显示异常,按PageUP再按PageDown即可刷新显示);5、选择[View]-[CPU Registers]-[CPU Register](或点击左边工具栏的快捷按钮)打开处理器映射寄存器窗口;6、选择[View]-[Memory](或点击左边工具栏的快捷按钮),在弹出的[Windows Memory Options]对话框的Address文本框中输入0x0200,Page下拉框中选中Data,确定后将打开数据存储器查询窗口,此时数据存储器地址0x0200~0x0203将对应ex1.asm中声明的标号DAT0~DAT3;7、调整[Dis-Assembly][memory][CPU Registers]三个窗口的大小,以便于观察;8、依次把光标移动到反汇编窗口中标号为bk?(?表示从0开始的整数)的标号行下的指令处,选择菜单[Debug]-[Breakpoint](或者点击快捷按钮)设置断点,断点设置后,都将以紫色高亮显示;9、选择[Debug]-[Run](也可以按快捷键F5或点击快捷按钮)执行程序;10、程序将在第一个断点bk0处停止,bk0标号下的指令将以半黄半紫高亮显示,在处理器映射寄存器窗口和数据存储器查询窗口中双击相应操作数的内容,即可进行修改(注意:如步骤6所述,DAT0~DAT3对应地址为0X0200~0X0203),试修改下一条指令操作数的内容,然后按F5执行程序,再在处理器映射寄存器窗口中或数据存储器查询窗口中观察指令执行结果;11、重复执行9、10步骤,依次观察加法指令、减法指令、乘法指令、除法指令、平方指令以及3数累加宏指令的执行结果;12、上指令执行完毕后,程序转到bk0处,可再次进行熟悉运算控制的实验。
dsp实验报告CCS 设置和常用指令
北京联合大学智慧城市学院实验报告课程名称:DSP 技术与应用实验名称: CCS设置和常用指令班级:通信14姓名学号:2017 年 10 月 21 日实验一 CCS 设置和常用指令一、实验目的熟悉CSS设置方法;会建立汇编语言源文件;会建立工程项目;会将文件加入到工程;会使用汇编、链接命令;会加载、运行程序。
二、实验内容1、编写汇编语言常用的装入和存储指令、算术指令、逻辑指令、程序控制指令50句。
2、使用汇编命令检查所编写的汇编语言源语句格式是否正确,如果有错误则找出并改正,直到没有错误为止。
三、实验设备每组PC 机一台;CCS-DSP 集成开发环境。
四、实验步骤1)CCS 设置及源文件编写、汇编、链接、加载、运行过程1、仿真器驱动的安装2、打开CCS,双击Setup CCS 环境设置3、连接试验箱系统4、建立新工程Project New5、建立新文件,编写源文件、链接命令文件6、加新建的文件到项目7、汇编源、链接文件8、加载、运行程序2)编写常用汇编语言指令装入和存储指令、算术指令、逻辑指令、程序控制指令共计50 句。
使用汇编命令菜单Project-Compile file,检查语句,如果有错误改正之,直到汇编没有错误为止。
五、实验报告1、CCS 工作环境设置过程:要有截图和说明。
新建工程并建立工作区建立ASM文件并保存2、编写的汇编语言语句和程序,要有截图。
3、汇编、链接、运行的结果:要有截图和说明。
4、实验结论通过本次实验,我熟悉了CCS的集成开发环境和运行环境,同时熟悉了CSS设置方法,在编译器里面进行源文件的编写,将文件添加到工程,最后经行加载、运行程序。
今天的这次实验让我对DSP的汇编语言有了更深一步的了解,在编译的过程中,我们组遇到了很多问题,但是最后通过查书和其他组的帮助,将问题一一解决。
及时地完成了任务。
附录:SUBB 1,B;从累加器中减去带借位减操作数DELAY 16;储存器单元延迟ADDC 1000h,A;带进位的加法SUBC 1000h,A;有条件减法SQUR 1000h,A;1000位置的数字的平方加到累加器A中DADD 12,A;双精度12加到累加器AADD 1H,A ; 操作数1加至累加器AADD 2H,2,A ; 操作数2移位后加至累加器AABS A;取绝对值CMPL A;累加器取反EXP A;求累加器中数据的指数MAX A;求累加器A最大值MIN B;求累加器B最小值NORM A;归一化SAT A;累加器饱和运算SUB #30,A;从累加器中减去30ADD #10,B;10加到累加器BMPY #20,A;20和累加器相乘MAC #10,#40,A;10和40相乘放到累加器A中SUB 3,A ;从累加器A中减去操作数3ROR B;累加器B经过进位位循环右移OR #1,B;1和累加器B相或XOR 10,A;10和累加器相异或RETE;开中断,从中断返回RETF;开中断,从中断快速返回ROL A;累加器A经过进位位循环左移SFTC A;累加器A条件移位BITT 1;测试由T寄存器指定的位AND 14,A ;操作数14与累加器A相与AND #1,A;1与累加A相与CMPM 1,#1k;储存单元与长立即数比较BACC A;按累加器规定地址转移PSHD 1;将1压入堆栈CALA A;按累加器的地址调子程序RPT #10;重复执行下调指令11次FRAME 1;堆栈指针偏移一个立即数值LD 31,16,A ;操作数左移16位后加载至累加器。
实验一 DSP的常用指令实验
DSP实验:常用指令及数据存储实验
DSP实验一:常用指令及数据存储实验一、实验目的1、了解DSP开发系统的组成和结构;2、熟悉DSP开发系统的连接;3、熟悉CCS的开发界面;4、熟悉C54X系列的寻址系统;5、熟悉常用C54X系统指令的用法6、掌握TMS320C54的程序空间和数据空间的分配7、熟悉操作TMS320C54数据空间的指令二、实验设备计算机、CCS2.0版软件,DSP仿真器、实验箱。
三、实验系统相关资源1、DSP芯片引脚XF连接LED5,可通过ssbx,rsbx改变XF的值来控制LED52、系统时钟频率为10MHz3、TMS320VC54存储器分配图四、实验步骤1、用仿真机将计算机与数字信号处理实验箱连接好,并依次打开实验箱电源、仿真机电源,然后运行CCS软件。
2、新建一个工程:点击Project-new,输入项目名Exp1, 并将工程文件保存在自己定义的文件夹下,注意文件夹一定要用英文名,不要将文件夹取名为中文名,因为CCS软件不能识别以中文命名的文件夹。
3、编写源程序:3.1 新建一个源文件File-New-Source File,出现文本编辑窗口3.2 复制以下代码到编辑窗口;File Name:exp01.asm;the program is compiled at no autoinitialization mode.mmregs.global _main;声明_main可被其他模块引用,程序加载到目标板后,;会自动跳转到标号为_main的汇编指令STACK: .usect ".stack",10h.text_main:stm #STACK+10h,sp ;设置堆栈指针STM #0, CLKMD ; (to divider mode before setting) TstStatu1:LDM CLKMD, AAND #01b, A ;poll STATUS bitBC TstStatu1, ANEQSTM #0xF7FF, CLKMD ; set C5402 DSP clock to 10MHz loop:ssbx xf ;将XF置1,熄灭LED5call delay ;调用延时子程序,延时rsbx xf ;将XF置0,点亮LED5call delay ;调用延时子程序,b loop ;程序跳转到"loop";延时子程序delay:stm 270fh,ar3 ; 270fh=9999loop1:stm 0f9h,ar4 ; 0f9h=249loop2:banz loop2,*ar4-banz loop1,*ar3-ret.end注意:(1)源代码的书写有一定的格式,每一行代码分为三个区:标号区、指令区和注释区。
DSP实验54x常用指令实验pp
实验一C54x常用指令实验一:实验目的1.了解C54x常用的寻址方式2.了解C54x常用的指令3.熟悉C54x汇编程序的编写二:实验原理寻址方式是指指令中操作数的获取方式,熟悉并灵活运用各种寻址方式是学习编写汇编程序的重要环节。
下面简单说明C54x的一些常用寻址方式及其简要说明:1.立即寻址(1)可以对累加器A,B载入立即数。
(2)可以对存储器映射寄存器(MMR: memory-mapped register)载入立即数。
(3)可以对ASM载入立即数,ASM是状态寄存器ST1的(4-0)位。
ASM的取值范围是-16~15。
(4)可以对DP载入立即数,DP是状态寄存器ST0的(8-0)位,作为数据空间直接寻址时的高9位(A15~A7),与指令中包含的低7位地址(A6~A0)结合形成绝对地址。
2.直接寻址方式采用直接寻址方式时,应当注意:当CPL=0时,绝对地址=DP(9)+Offset(7);当CPL=0时,绝对地址=SP(16)+Offset(7);3.间接寻址这种寻址方式利用辅助寄存器ARx(x=0,1,2,3,4,5,6,7)对数据寄存器空间进行访问。
数据空间的地址被存储在ARx当中,ARx加星号(*)前缀表示的是ARx地址所指向的存储器单元。
而且保存在ARx中的地址在存储单元访问前/后可以进行修改,如下所示。
45.绝对寻址:说明(略)6.存储器映像寄存器寻址:说明(略)7.堆栈寻址:说明(略)在本实验中,学生通过自行编写一些程序来了解和熟悉C54x的一些常用指令和数据寻址方式,关于C54x的指令和数据寻址方式的详细介绍,请参考课程讲稿以及T1公司相应的文档。
三:实验内容及步骤1.创建一个新工程创建一个新工程的步骤如下:(1)CCS运行环境设置参考实验一。
(3)运行CCS,在Project菜单中选择New命令,弹出如图1.1所示的ProjectCreation对话框。
设CCS 安装在D:\ti目录下,在Project栏中输入需要创建的工程名字:qinhua1其默认名为*.pjt。
DSP常用汇编语言指令简介
5. 控制指令举例
Example1:BIT0h,15 ;(DP = 6)把内存地址=300h 单元内容的最低位(BIT0)送给TC。 Example2:LDP #0h;使用立即数方式装载 数据页,也可以采用直接寻址和间接寻址方式装 载。 Example3:PUSH ;把累加器的低16位压入堆 栈。 Example4:SETC C;置进位C=1,也可以设置 以下的控制位为1或者为0,例如:CNF、INTM、 OVM、SXM、TC和XF。类似的指令还有: CLRC。
2. 工作寄存器等指令举例
Example4:ADRK #80h ;把当前工作寄存器内容 加一个立即数80h(注意立即数范围:00~FFh)。类 似的指令还有SBRK。 Example5:BANZ指令使用举例。例: MAR *, AR0 ;当前ARP=AR0 LAR AR1, #03h ;AR1内容赋值为03h LAR AR0, #60h ;AR0内容赋值为60h ZAC ; 累加器ACC清零 loop: ADD *+, AR1 ;把当前工作寄存器AR0指向 的内存单元数值加到ACC,然后AR0内容加1,当前工 作寄存器指针指向AR1 BANZ loop, *-AR0 ;判断AR0是否为0,否则程序 转到loop,同时AR0的内容减1。 南航自动化学院DSP技术应用实验 返回到第10页 室
南航自动化学院DSP技术应用实验 室
1. 累加器等指令举例
Example 1:ADD 1,1;(假设DP = 6),把 第6个数据页的第一个内存单元内容左移一 位加到累加器 Example 2:LACC *,4; (与SXM有关) Example 3:ROL;把累加器内容循环左移 Example 4:SACL *,0,AR7 ;把当前工作寄 存器指示内容左移0位送入累加器的低8位 Example 5:RPT #15 SUBC * ;累加器减去当前寄存 器指的内容,连续减16次,结果存累加器
dsp1-6实验指令
实验二、CCS操作Cmd文件(实验二、三、四)MEMORY{PAGE 0:VECS: org=0x0080, len=0x80PROM: org=0x1000, len=0x1000 /* 4k words */PAGE 1:STACK: org=0x100, len=0x400 /* 1k words */DARAM: org=0x2000, len=0x1000 /* 4k words */}SECTIONS{ .text :> PROM PAGE 0vectors :> VECS PAGE 0.bss :> DARAM PAGE 1.data :> DARAM PAGE 1}S54文件;An example to show how to write an assembly language source file; y=a1*x1+a2*x2;******************************************************************************STACK_ADDR .set 0x0500 ;设置堆栈底端地址;在变量段分配数据,为未初始化的变量保留空间.bss a,2.bss x,2.bss y,1;在数据段分配数据,存入初始化数据.datatable:.word 10,5 ;初始化a1=10,a2=5.word 8,6 ;初始化x1=8,x2=6.mmregs ;开启系统默认的寄存器.global main ;定义全局符号;------------------------------------------------------------------------------.text ;开始编写程序main:stm #STACK_ADDR, SP ;设置堆栈stm #0x00a8, PMSTstm #0x0000, SWWSR;================================================stm #a, AR2 ;设置AR1 指向 astm #table, AR3 ;设置AR3指向tablerpt #1mvdd *AR3+, *AR2+ ;循环一次,将0x000A和0x0005存放在地址0x2000 stm #x, AR2 ;设置AR2指向xrpt #1mvdd *AR3+, *AR2+ ;将地址0x2005低16位的0x0008和0x0006存放到地址为0x2002的存储器空间call SUM ;执行sum模块的功能;死循环,使PC在当程序结束时锁定在一个已知的区域dead_loop:nopnopnopb dead_loop;================================================; y=a1*x1+a2*x2SUM:stm #a, AR3 ;设置AR3指向astm #x, AR4 ;设置AR4指向xrptz A, #1 ;清零寄存器A,并设置将下条乘加指令循环一次mac *AR3+, *AR4+, A ;完成a1*x1+a2*x2,最终的结果存放在A中stl A, *(y) ;将寄存器A的底16位存放在地址0x2004ret;------------------------------------------------------------------------------.sect "vectors" ;定义初始化了的带名称的段int_RESET:b main ;当有复位中断时,跳转至mainnopnop.space 124*16 ;若没有其他的中断,保留空间初始化时将A与X互换位置实验三:使用者如果希望修改其功能,可以直接编写gel文件,保存并重新装载。
DSP实验报告 基本指令操作
实验二基本指令操作周二第三大节一实验目的(1)了解DSP数据表示格式(2)了解DSP汇编语言的编写格式(3)了解DSP配置文件的编写(4)了解DSP汇编与C混合编写的方法二实验内容1、css下的汇编语言实现2、css下的C语言与汇编语言混合编程三、实验过程例1 用汇编语言实现乘积累加的运算,y=∑(Ai*Xi)把data段的40个数据移动到bss段的a和x中,每个分别存放20个数据,然后分别取出a和x中位置相对应的一些数据,用块循环的方法完成数据的乘积和累加的运算。
最后结果保存在y中。
.title "asm.asm".mmregs.bss a,20.bss x,20.bss y,2STACK .usect "STACK",30.datatable: .word 1,2,3,4,5,6,7,8,9,10,11,12.word 13,14,15,16,17,18,19,20.word 1,2,3,4,5,26,27,28,29,30.word 1,2,3,4,5,6,7,8,9,10.def start.textstart: STM #a,AR1RPT #39MVPD table,*AR1+LD #0,BSTM #a,AR2STM #x,AR3STM #y,ar5STM #4,BRCRPTB done-1LD *AR2+,TMPY *AR3+,AADD A,Bdone: STH B,*ar5+STL B,*ar5end: b end.end相应的配置文件为:-e startMEMORY{PAGE 0:EPROM: org=0100H,len=1000H PAGE 1:SRAM org=02000H,len=1000H }SECTIONS{.text :> EPROM PAGE 0.data :> EPROM PAGE 0.bss :> SRAM PAGE 1.STACK :> SRAM PAGE 1}运行后,Memory下的结果例2 汇编程序和C程序混合编程的方法在一个工程中分别包含汇编源程序和C源程序,实现相互之间函数和变量的调用。
dsp系统常用指令实验
实验八DSP系统常用指令实验
一、实验目的
1.了解DSP开发系统的组成和结构。
2.熟悉DSP开发系统的连接。
3.熟悉DSP的开发软件配置及使用。
4.熟悉C54X系列的寻址系统。
5.熟悉常用C54X系列指令的用法。
二、实验设备
计算机,DSP仿真器,THRS-1型试验箱
三、实验步骤与内容
1、系统连接
进行DSP实验之前,先必须连接好仿真器、试验箱及计算机,连接方法如下:
2、上电复位
在硬件安装完成猴,确认安装正确、各实验部件及电源连接正常后,连通仿真器电源或启动计算机,此时,仿真盒上的“红色小灯”应点亮,否则DSP开发系统与计算机连接有问题。
3、运行CCS程序
待计算机启动成功后,试验箱220V电源置“开”,试验箱上电,启动CCS。
仿真器上的“绿色小灯”应点亮,并且CCS正常启动,表明系统连接正常:否则仿真器的连接、JTAG 接口或CCS相关设置存在问题,掉电;检查仿真器的连接、JTAG接口连接;或检查CCS 相关设置是否正确。
附(具体仿真器和仿真软件CCS的应用方法参考THRS-1使用说明书)
四、程序框图
其中初始化包括SP及PMST寄存器值的设定。
延时子程序为一嵌套循环。
dsp实验报告
dsp实验报告实验一:CCS入门实验实验目的:1. 熟悉CCS集成开发环境,掌握工程的生成方法;熟悉SEED-DEC643实验环境; 掌握CCS集成开发环境的调试方法。
2.学习用标准C 语言编写程序;了解TI CCS开发平台下的C 语言程序设计方法和步骤; 熟悉使用软件仿真方式调试程序。
3. 学习用汇编语言编写程序; 了解汇编语言与 C 语言程序的区别和在设置上的不同;了解TMS320C6000 汇编语言程序结果和一些简单的汇编语句用法学习在CCS 环境中调试汇编代码。
4. 在了解纯C 语言程序工程和汇编语言程序工程结构的基础上,学习在C 工程中加入汇编编程的混合编程方法; 了解混合编程的注意事项;理解混合编程的必要性和在什么情况下要采用混合编程5. 熟悉CCS集成开发环境,掌握工程的生成方法; 熟悉SEED-DEC643实验环境;掌握CCS集成开发环境的调试方法。
实验原理:CCS 提供了配置、建立、调试、跟踪和分析程序的工具,它便于实时、嵌入式信号处理程序的编制和测试,它能够加速开发进程,提高工作效率。
CCS 提供了基本的代码生成工具,它们具有一系列的调试、分析能力序。
使用此命令后,要重新装载.out 文件后,再执行程序。
使用 CCS常遇见文件简介1. program.c: C 程序源文件;2. program.asm: 汇编程序源文件;3. filename.h: C 程序的头文件,包含DSP/BIOS API模块的头文件;4. filename.lib: 库文件;5. project.cmd: 连接命令文件;6. program.obj: 由源文件编译或汇编而得的目标文件;7. program.out: 经完整的编译、汇编以及连接后生成可执行文件; 8. program.map: 经完整的编译、汇编以及连接后生成空间分配文件; 9.project.wks: 存储环境设置信息的工作区文件。
P.S(CMD文件中常用的程序段名与含义1. .cinit 存放C程序中的变量初值和常量;2. .const 存放C程序中的字符常量、浮点常量和用const声明的常量;3. .text 存放C程序的代码;4. .bss 为C 程序中的全局和静态变量保留存储空间;5. .far 为C 程序中用far声明的全局和静态变量保留空间;6. .stack 为 C 程序系统堆栈保留存储空间,用于保存返回地址、函数间的参数传递、存储局部变量和保存中间结果;7. .sysmem 用于 C 程序中malloc、calloc 和 realloc 函数动态分配存储空间。
DSP实验报告参考
以下仅供参考实验原理和步骤你们自己写,我只写了问题分析和讨论。
实验一CCS5000软件及使用实验问题分析与讨论在运行CCS C5000应用软件前,一定要先通过Setup CCS C5000做好相应的运行环境的软件和硬件驱动程序的配置。
通过这次实验,熟悉了软件仿真的基本步骤,掌握了:检查、修改CPU寄存器和存储单元的内容,断点的设置、检查和撤销,用观察窗口检查变量等程序调试的基本方法。
实验二常用指令实验问题分析与讨论实验通过两个循环嵌套语句实现延时,通过调用语句两次调用延时程序实现开发板上和DSP的XF引脚连接的发光二极管闪烁。
实验中可以通过改变AR3或AR4两个辅助寄存器中的数来改变延时的时间来控制发光二极管的闪烁周期。
通过实验熟悉了分支转移和调用语句的使用。
实验三基本算术运算实验问题分析与讨论实验程序实现了两个浮点数相加及产生正弦信号的功能。
通过菜单view-→watch window可以查看变量X0,Y0,Z0和数组sin_value[ ]的值。
如果要在内存中查看,通过菜单view→memory,输入地址时对于变量要加取地址符号&,而数组就用数组名(数组名就表示地址)。
可以通过view→graphic菜单将内存从sin_value地址开始的100个正弦信号的数据显示出来。
C语言定点乘法模拟运算程序如下:int x,y,z;long temp;temp = (long)x;z = (temp×y) >> (Qx+Qy-Qz);C语言定点除法模拟运算程序如下:int x,y,z;long temp;temp = (long)x;z = (temp<<(Qz-Qx+Qy))/y;实验四DSP中断实验问题分析与讨论实验程序实现了定时器每发生200次中断才能使XF引脚的电平改变一次,也就是实验板上的发光二极管闪烁一次。
中断前IFR寄存器的内容为0x0000,中断后为0x0080。
实验一 DSP的常用指令实验
4、在[File]-[Load Programm]中加载输出执行代码文件ex1.out,选择[View]-[ [Disassembly ]。此时,反汇编(Disassembly)窗口将显示在前端,当前PC指针为0000:2080(黄色箭头指示),指令代码将以汇编语言方式显示,可以在反汇编窗口中点击鼠标右键,在弹出菜单中选择[Properties]-[Disassembly Options]打开反汇编选项对话框,在[Disassembly Style]选项中选择[Algebraic],以算术语言方式显示指令代码(注意:此时可能标号显示异常,按PageUP再按PageDown即可刷新显示);
11、重复执行9步骤,依次观察并记录加法指令(结果: A)、减法指令(结果: A)、乘法指令(结果:A)、除法指令(结果: DAT2:商; DAT3:余数)、平方指令(结果:A)以及3数累加宏指令(结果:DAT3)的执行结果;
12、以上指令执行完毕后,程序转到bk0处,可再次进行熟悉运算控制的实验。
7、调整[Disassembly][memory][CPU Registers]三个窗口的大小,以便于观察;
8、依次把光标移动到反汇编(Disassembly)窗口中标号为bk?(?表示从0开始的整数)的标号行下的指令处,点击鼠标右键,在弹出菜单选择 [Toggle breakpoint](或者点击快捷按钮)设置断点,断点设置后,该行前显示红色圆点;
2、了解TMS320C5402的存储空间分配。
3、进行DSP的基本编程调试。
二、实验原理:
DSP实验1-2正玄波输出调试
南昌航空大学实验报告2011 年 10 月 12 日课程名称: DSP 技术及应用 实验名称: 正玄波输出调试 班 级: 080611 学生姓名: 学号: 08061108 指导教师评定: 签名:一、实验目的掌握CCS 集成开发环境,学会使用CCS 开发DSP 应用程序。
了解最基本的DSP 开发步骤。
二、实验步骤1、 CCS 的安装CCS 的安装主要包括四个环节:底层硬件驱动程序安装、CCS 集成开发环境安装、驱动程序安装、驱动程序的配置。
以下以TI 公司的中国代理合众达公司开发的DSP 仿真器安装为例,介绍CCS 集成开发环境的整个安装过程。
1. 底层硬件驱动程序安装(1) 硬件连接目前有四种类型连接的DSP 仿真器:微机串行接口仿真器SEED-XDS 、微机并行接口仿真SEED-XDSPP 、微机USB 接口仿真器SEED-XDSUSB 、微机PCI 插卡接口仿真器SEED-XDSPCI ,用户应根据使用的DSP 仿真器连接好硬件。
(2)底层硬件驱动程序安装硬件连接完毕后,启动计算机会自动识别硬件,识别后在安装向导下(也可以用Windows 的“控制面板”的“添加/删除硬件”进入安装向导)安装其驱动程序,例如要安装C3000系列微机USB 接口仿真器SEED-XDSUS ,应安装目录为\utilites\C3000\SEED-XDSUSB\USBdriver\下的驱动程序,安装完毕后打开控制面板查看系统中的设备管理器,出现如图5-3所示结果,证明硬件连接成功。
2.CCS 集成开发环境安装CCS 是TI 公司开发的软件,准备使用什么系列的DSP ,则应安装对应的CCS ,例如:对于F206系列,需要安装CCS2000类型的CCS ,而对于3000或4000系列的DSP ,则需要安装的是C3x/4x 的CCS 。
在软件的光盘“CC ”文件夹中执行SETUP 后,出现图5-5所示,双击图中的Code Composer 图标,即进入安装向导,按提问和选择进行安装。
DSP原理及应用的实验教学
TMS320C54X的数据寻址方式
立即寻址 绝对寻址 累加器寻址 直接寻址 间接寻址 存储器映象寄存器寻址 堆栈寻址
寻址指令中用到的缩写符号及其含义
缩写符号 Smem Xmem Ymem dmad 16位单数据存储器操作数 含义
在双操作数指令及某些单操作数指令中所用的16位双数据存储器操 作数,从DB总线上读出
.title "ex9“
FG_ADDR .set 1002H ;set伪指令。将一个值分 配 给一个符号。1002H I/O口地址定义。 DATA .set 60h ; ram data
LOOP:
4. 调试
输入信号的频谱图
输入信号的时域波形
输出信号频谱图
输出信号时域波形
实验课内容简介
实验参考资料
\\电子资料\\电子文档\\SZDSPⅡ型开发实验平台 54X.doc \\电子资料\\ 说明书\\ \\电子资料\\ DEVELOPMENT DATA\\5000资 料\\TMS320C54x DSP 参考(Mnemonic Instruction Set).pdf
实验安排
基础实验
\\DSP基础实验程序.rar
打开 实验箱
课程设计类实验
\\5402licheng IO实验 数码显示实验 定时器实验 交通灯实验 同步串口 语音录、放实验 语音处理综合实验
b1io b2shuma b4ds b6jt b3tongbu a12lf szSpeechFIR
目的累加器(A或令系统
TMS320C54x的指令表示方法
C54x的助记符指令是由操作码和操作数两部分组成
DSP常用语言指令简介
2. 工作寄存器等指令举例
z Example1:MAR
*+,AR1;把当前工作寄 存器的内容加1,然后再改变工作寄存器为 AR1。 z Example2:LAR AR4,#8123h;把AR4的 值改变为立即数。 LAR AR0,16;(DP=6)把 地址=310H的内存单元内容装入AR0。 z Example3:SAR AR0,*+;(如果当前工 作寄存器=AR1)把AR0的内容拷贝到AR1 南航自动化学院DSP技术应用实验 指向的内存单元。 室
南航自动化学院DSP技术应用实验 室
z Example1:BCND
xxx, LEQ, C ;如果累加 器<=0并且进位C=1,那么程序就跳转到标 号xxx处执行;否则,程序顺序执行。根据 累加器ACC的内容产生的转移条件如下表格 所示。类似的指令还有:CC xxx。 z Example2:BANZ。第七页举例。
南航自动化学院DSP技术应用实验 室
1. 累加器等指令举例
z Example
1:ADD 1,1;(假设DP = 6),把 第6个数据页的第一个内存单元内容左移一 位加到累加器 z Example 2:LACC *,4; (与SXM有关) z Example 3:ROL;把累加器内容循环左移 z Example 4:SACL *,0,AR7 ;把当前工作寄 存器指示内容左移0位送入累加器的低8位 z Example 5:RPT #15 SUBC * ;累加器减去当前寄存 器指的内容,连续减16次,结果存累加器
南航自动化学院DSP技术应用实验 室
1. 累加器等指令举例
Example 6: AND 16 ;(假设DP = 4),把地址 =210H的内存单元内容和ACC相逻辑“与”,结果存 入累加器。 z Example 7:SFL ;把整个的ACC内容左移一位,低 位填0,最高位送入进位位,不受SXM影响。 z Example 8:SFR ;把整个的ACC内容右移一位,高 位根据SXM进行符号位扩展。例如: 1.执行前ACC=B0001234h,SXM=0,执行后ACC= 5800091Ah; 2.执行前ACC=B0001234h,SXM=0,执行后ACC =5800091Ah;
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
10、程序将在第一个断点bk0处停止,在处理器映射寄存器窗口和数据存储器查询窗口中双击相应操作数的内容,即可进行修改(注意:如步骤6所述,DAT0~DAT3对应地址为0X0260~0X0263),试修改下一条指令操作数的内容,然后按F10单步执行程序,再在处理器映射寄存器窗口中或数据存储器查询窗口中观察指令执行结果;
5、选择[View]-[CPU Registers]-[CPU Register](或点击左边工具栏的快捷按钮)打开处理器映射寄存器窗口;
6、选择[View]-[Memory](或点击左边工具栏的快捷按钮),在弹出的[Windows Memory Options]对话框的Address文本框中输入0x0260,Page下拉框中选中Data,确定后将打开数据存储器查询窗口,此时数据存储器地址0x0260~0x0263将对应ex1.asm中声明的标号DAT0~DAT3;
3、在[Project]-[Build]菜单中编译项目文件,编译成功后在下端的状态窗口中显示Build Complete,0 Errors,0 Warnings;
4、在[File]-[Load Programm]中加载输出执行代码文件ex1.out,选择[View]-[ [Disassembly ]。此时,反汇编(Disassembly)窗口将显示在前端,当前PC指针为0000:2080(黄色箭头指示),指令代码将以汇编语言方式显示,可以在反汇编窗口中点击鼠标右键,在弹出菜单中选择[Properties]-[Disassembly Options]打开反汇编选项对话框,在[Disassembly Style]选项中选择[Algebraic],以算术语言方式显示指令代码(注意:此时可能标号显示异常,按PageUP再按PageDown即可刷新显示);
1、鼠标左键双击桌面“Setup CCS 2 ('C5000)”图标启动CCS Setup,鼠标左键依次单击“C5402 Simulator”,“Import”,“Save and Quit”,“是(Y)”启动CCS,在[Project]-[Open]菜单中打开ex1.pjt;
2、在左边树状列表框内双击[Project]展开目录树,双击[ex1.asm]打开源程序文件,参考程序中的注释仔细阅读源程序;
2、了解TMS320C5402的存储空间分配。
3、进行DSP的基本编程调试。
二、实验原理:
借用计算机的资源仿真DSP的内部结构,以学习DSP的基本编程。
三、实验设备、仪器:
安装有WINDOWS98以上操作系统和CCS2.0(`C5000)的计算机。
四、实验内容(含简略步骤、电路图):
用CCS编程环境进行DSP的基本算术运算指令的编程调试。
13、修改[ex1.asm],使DAT0=组号(ST #组号,DAT0),重复上述操作,记录加法指令、减法指令、乘法指令、除法指令、平方指令以及3数累加宏指令的执行结果。
五、实验过程原始记录(现象记录、数据、图表、计算等):
六、结果及分析(含问题讨论):
七、参考文献:
实验指导教师签名:
年月日
7、调整[Disassembly][memory][CPU Registers]三个窗口的大小,以便于观察;
8、依次把光标移动到反汇编(Disassembly)窗口中标号为bk?(?表示从0开始的整数)的标号行下的指令处,点击鼠标右键,Байду номын сангаас弹出菜单选择 [Toggle breakpoint](或者点击快捷按钮)设置断点,断点设置后,该行前显示红色圆点;
西华大学实验报告(理工类)
电气信息学院专业实验中心实验室:6A-222实验时间 :2014年6月10日
学 生 姓 名
学 号
成 绩
学生所在学院
年级/专业/班
课 程 名 称
DSP技术及应用
课 程 代 码
实验项目名称
DSP的常用指令实验
项 目 代 码
1
指 导 教 师
李天倩
项 目 学 分
一、实验目的:
1、熟悉CCS编程环境及TMS320C54xDSP的基本算术运算指令。
11、重复执行9步骤,依次观察并记录加法指令(结果: A)、减法指令(结果: A)、乘法指令(结果:A)、除法指令(结果: DAT2:商; DAT3:余数)、平方指令(结果:A)以及3数累加宏指令(结果:DAT3)的执行结果;
12、以上指令执行完毕后,程序转到bk0处,可再次进行熟悉运算控制的实验。