




已阅读5页,还剩48页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第4章 CCS应用实验目录实验4.1 CCS操作使用实验实验4.2 汇编语言DSP程序设计实验实验4.3 C语言DSP程序设计实验实验4.4 混合语言的DSP程序设计实验实验4.5 双精度数据加减运算汇编语言实验实验4.6 单精度小数乘法运算汇编语言实验实验4.7 浮点数乘除法运算实验实验4.8 库函数调用运算实验实验4.1 CCS操作使用实验 (一)实验目的要求1.学习工程创建的方法2.了解编译和调试功能3.学习使用观察窗口(二)主要仪器设备1.计算机2.CCS软件3.TMS320C64xx实验箱一台(三)实验原理和方法开发 TMS320C6xxx 应用系统一般需要以下几个调试工具来完成:1.软件集成开发环境(CCS):完成程序编译、目标文件产生、下载,进行程序和硬件的联合仿真调试。2.仿真器:实现硬件仿真调试时与硬件系统的通信、控制和读取硬件系统的状态和数据。CCS 通过工程来管理文件,一般包括以下几种文件:1)源程序文件:C 语言或汇编语言文件(*.c 或*.asm)2)头文件(*.h)3)命令文件(*.cmd)4)库文件(*.lib,*.obj)(四)实验内容与步骤 连接实验箱与PC机,打开电源给实验箱供电。1.在C:CCStudio_v3.3MyProjects下新建一个文件夹:practice。复制C:CCStudio_v3.3tutorialsim64xxconsultant下的所有文件到practice文件夹下。2、点击setup code composer studio v3.3,运行 CCS Setup,设置 CCS 在软件仿真(simulator)方式下运行。保存配置。3.点击 Code Composer Studio,启动 CCS。4.创建工程选择菜单“Project”的“New”项,建立practice.pjt工程文件。5.向工程添加文件添加main.c,doloop.c,lnk.cmd到工程。 查看源程序:Doloop.c,main.c。打开:lnk.cmd文件,编辑如下内容保存:-stack 0x400-heap 0x400MEMORY ISRAM : origin = 0x400, len = 0x1000000SECTIONS .vectors ISRAM .text ISRAM .data ISRAM .bss ISRAM .cinit ISRAM .const ISRAM .far ISRAM .stack ISRAM .cio ISRAM .sysmem ISRAM或者:/*/* c64xx_cov_lnk.cmd */* Copyright (c) 1996-2002 Texas Instruments Incorporated */*/-c-heap 5000-stack 5000/* Memory Map 0 */ MEMORY ON_CHIP : origin = 00000000h length = 00100000h EMIFA_CE0 : origin = 80000000h length = 10000000h EMIFA_CE1 : origin = 90000000h length = 10000000hSECTIONS .text ON_CHIP .stack ON_CHIP .bss ON_CHIP .cinit EMIFA_CE1 .cio EMIFA_CE0 .const ON_CHIP .data ON_CHIP .switch ON_CHIP .sysmem ON_CHIP .far EMIFA_CE06工程中添加库文件 添加C:CCStudio_v3.3C6000cgtoolslib目录下的rts6400.lib7.查看源程序文件 点击工程列表下文件,可以打开源程序文件main.c查看代码8.编译、创建目标文件点击菜单project-compile file,可以对文件进行编译再点击菜单Project-Build,建立目标文件成功建立的文件应该是错误和警告都为09调用目标文件 1)连接仿真器与目标板点击: Debug-connect,连接成功后,CCS左下角有提示。2)点击File-Load Program,选择practiceDebugpractice.out10.调试1)goto main2)设置断点在需要设置断点的行前双击鼠标,则在行前出现红色的原点,表示设置了断点;若在已经设置了断点的行前双击鼠标,则可以取消该断点。3)单步运行用F114)观察窗口点击view-watch window,则打开观察窗口(五)实验报告要求 1.写出实验报告,包括:目的和要求、仪器设备 2.写出实验步骤及内容实验4.2 汇编语言DSP程序设计实验(一)实验目的和要求:1.学习用汇编语言编制程序;2.了解在CCS下开发TMS320C64x汇编语言程序的步骤;3. 掌握汇编语言数据搬移、存储的方法;4.学习在CCS环境中调试汇编代码(二)主要仪器设备:1.计算机2.CCS软件3.TMS320C64xx实验箱一台(三)实验原理与方法 1.汇编语言程序在执行时直接从用户指定入口开始。 2.由于CCS的代码链接器默认支持C语言,在编制汇编语言程序时,需要设置链接参数,选择非自动初始化,注明汇编程序的入口地址。(四)实验步骤与内容1.运行 CCS Setup,设置 CCS 在模拟仿真(Simulator)方式下运行。选择模拟仿真调DM642 Device Cycle Accurate Simulator(Endianness选little)。2.启动 CCS 3.创建工程4. 设置工程编译选项 选择CCS菜单project-Build Options,点击Linker页,设置Autoinit Model为:No Autoinitialization(这点是与C语言程序设计不同)注意:若省略这一步,也不影响程序建立,只不过会出现警告:warning: entry point symbol _c_int00 undefined5. 输入源程序1)输入汇编源程序 选择File-New-Source File或使用工具条的快捷按钮,进入文件编辑窗口。录入汇编源程序: ;* ; 输入数据存放在:x,y ; 本例程完成运算:x+y ; 结果存放:z ; 其中:x,y,z都占32位 ;* .bss x, 4;排版要空一格,下同 .bss y, 4 .bss z, 4 ;.def start ;.def x, y, z .textstart: ;排版要顶格 mvkl x, A0;立即寻址,将变量x 的值放到寄存器A0 mvkh x, A0;立即寻址,将变量x 的值放到寄存器A0 mvkl y, B0;立即寻址,将变量y 的值放到寄存器B0 mvkh y, B0;立即寻址,将变量y 的值放到寄存器B0 mvkl z, B2;立即寻址,将变量z 的值放到寄存器B2 mvkh z, B2;立即寻址,将变量z 的值放到寄存器B2 mvkl 0x010a0f2a, A4;给A4 低16位赋值 mvkh 0x010a0f2a, A4;给A4 高16位赋值 mvkl 0x1ab31211, B4;给B4 低16位赋值 mvkh 0x1ab31211, B4;给B4 高16位赋值 stw A4, *A0;A4存入A0所指地址单元 nop 5 stw B4, *B0;B4存入B0所指地址单元 nop 5 ldw *A0, B1 ;将A0寻址单元的值读入B1 nop 5 ;避免流水线冲突 ldw *B0, A1;将B0寻址单元的值读入A1 nop 5 add A1, B1, A2 ;加法运算:A1+B1-A2 stw A2, *B2 ; 将A2的值存入B2所指地址单元 b $;一直在这里跳转,注意:b后有一个空格注意:汇编语句前需要留出空格,标号顶格输入,否则编译有错误提示。保存源程序到工程目录下,保存文件为:myasm.asm2)输入链接命令文件点击“File/New/Source File”或使用工具条的快捷按钮,进入文件编辑窗口。输入链接命令文件内容:-stack 400-heap 400MEMORY ISRAM : origin = 0x0, len = 0x1000000SECTIONS .vectors ISRAM .text ISRAM .bss ISRAM .cinit ISRAM .const ISRAM .far ISRAM .stack ISRAM .cio ISRAM .sysmem ISRAM保存源程序到工程目录下,命名为myasm.cmd。6.将上述编辑的源程序myasm.asm和链接命令文件myasm.cmd加入工程myasm.pjt。7. 编译源文件、建立目标文件(.out)8调用编程可执行程序 选择File-Load Program,选择myasmdebugmyasm.out,点击Debug-Restart后PC此时指向00000000 00000000地址。9.调试 用菜单debug-Step Into或F11可以单步运行。10. 观察开启CPU寄存器观察窗口:单击菜单ViewRegisterscore。使用单步运行,查看相应寄存器的值的变化。还可开启Watch window,Memory窗口,进行变量、存储空间的观察11.退出CCS(五)实验报告要求1.写出实验报告,包括:目的和要求、仪器设备 2.写出实验步骤及内容实验4.3 C语言DSP程序设计实验(一)实验目的和要求:1.掌握DSP芯片的C语言程序设计方法;2.掌握在CCS环境下用C语言开发的步骤;3.学会调试CCS下的C语言代码(二)主要仪器设备:1.计算机2.CCS软件3.TMS320C64xx实验箱一台(三)实验原理与方法1. 标准C 语言程序CCS 支持使用标准C 语言开发DSP 应用程序。C源程序文件名的后缀应为.c。CCS 在编译标准C 语言程序时,首先将其编译成相应汇编语言程序,再进一步编译成目标DSP 的可执行代码。最后生成的是COFF 格式的可下载到DSP 中运行的文件,其文件名后缀为.out。由于使用C 语言编制程序,其中调用的标准C 的库函数由专门的库提供,在编译链接时编译系统还负责构建C 运行环境。所以用户工程中需要注明使用C 的支持库。2. 命令文件的作用命令文件(文件名后缀为cmd)为链接程序提供程序和数据在具体DSP 硬件中的位置分配信息。通过编制命令文件,我们可以将某些特定的数据或程序按照我们的意图放置在DSP 所管理的内存中。命令文件也为链接程序提供了DSP 外扩存储器的描述。在程序中使用CMD 文件描述硬件存储区,可以只说明使用部分,但只要是说明的,必须和硬件匹配,也就是只要说明的存储区必须是存在的和可用的。3. 内存映射(map)文件的作用为了更精确地使用ROM 空间,我们就需要知道程序的大小和位置,通过建立目标程序的map 文件可以了解DSP 代码的确切信息。当需要更改程序和数据的大小和位置时,就要适当修改cmd 文件和源程序,再重新生成map 文件来观察结果。另外,通过观察map文件,可以掌握DSP 存储器的使用和利用情况,以便进行存储器方面的优化工作。(四)实验步骤与内容1. 准备将DSP实验设备与硬件仿真器相连接,连接电源线,打开电源开关。2设置CCS 在硬件仿真(Emulator)方式下运行,选择实际的仿真器。也可设置在模拟仿真(Simulator)方式下工作。3.启动CCS环境4创建工程。 选择菜单Project-New,创建ctest.pjt工程5建立源文件1)建立C语言源程序文件。选择FILE-New-Source,输入下列C代码,保存到文件ctest.c。int sel_max(int a, int b);void main() int x; int y; int z; x = 21; y = 98; while(1) z=sel_max(x,y); /函数调用 int sel_max(int a, int b) return(a=b)?a:b);2)建立链接命令文件点击“File/New/Source File”或使用工具条的快捷按钮,打开编辑窗,建立ctest.cmd文件,内容如下:-stack 400-heap 400MEMORY ISRAM : origin = 0x0, len = 0x1000000SECTIONS .vectors ISRAM .text ISRAM .bss ISRAM .cinit ISRAM .const ISRAM .far ISRAM .stack ISRAM .cio ISRAM .sysmem ISRAM6.工程添加文件 点击菜单Project-Add Files to project,分别加入ctest.c,ctest.cmd文件,再向工程添加C:CCStudio_v3.3C6000cgtoolslib下的文件rts6400.lib(这点与汇编程序设计不同)(注意:若不添加,则链接时会出现警告:warning: entry point symbol _c_int00 undefined)7编译、建立目标文件 产生ctest.out8.调用编程可执行程序1)连接仿真器与目标板点击: Debug-connect,连接成功后,CCS左下角有提示。2)选择File-Load Program,选择ctestdebugctest.out。9.调试 1)执行至C语言主程序入口点击Debug-go main。2)设置断点在需要设置断点的行前双击鼠标,则在行前出现红色的原点,表示设置了断点;若在已经设置了断点的行前双击鼠标,则可以取消该断点。3)单步运行 用菜单debug-Step Into或F11可以单步运行。 4)全速运行 用菜单debug-Run或F5可以全速运行。10. 观察开启CPU寄存器观察窗口:单击菜单ViewRegisterscore。使用单步运行,查看相应寄存器的值的变化。还可开启Watch window,Memory窗口,进行变量、存储空间的观察11.关闭工程 点击Project-Close。12.退出CCS(五)实验报告要求1.写出实验报告,包括:目的和要求、仪器设备 2.写出实验步骤及内容实验4.4 混合语言的DSP程序设计实验(一)实验目的和要求:1.掌握产生离散信号的方法2.掌握离散信号的图形表示(二)主要仪器设备:1.计算机2.CCS软件3.TMS320C64xx实验箱一台(三)实验原理与方法C语言易于开发和维护,可读性强、利于理解,在编制、修改、实现算法方面比用汇编语言开发容易。可移植性强。但由C语言开发的代码量大、程序效率较低、优化代码存在一定困难。 汇编语言控制系统硬件的能力强于C 语言,设计出来的程序更加贴近硬件特性,往往能将硬件效能发挥到极致,且汇编语言代码精练、效率高、代码短、不容易产生冗余。但汇编语言设计的程序可读性差,不利于复杂算法的开发和实现,可移植性差,容易产生流水线冲突。 大部分代码采用C语言设计,少部分要求高效率的代码采用汇编程序设计。这样,就要求混合语言的编程,即在一个工程中同时含有汇编语言程序和C语言程序。 混合编程有两种方式:一种方式是在C语言程序中采用内嵌入汇编语句,例如asm(“MOV T1, *SP(#1)”),另一种方式是一种语言调用另一种语言设计的子程序。在汇编程序中使用其他C 语言模块中定义的变量或函数名称时,需要在引用的名称前加一下划线。如:C 中定义的变量为x,在汇编中引用时要用_x。函数(父函数)在调用另一个函数(子函数)的时候,如果有参数需要传递,前10个参数放入寄存器A4、B4、A6、B6、A8、B8、A10、B10、A12、B12,如果是长整型、双精度浮点型或长精度浮点型,则放入寄存器对A5:A4, B5:B4, A7:A6等。如果被调函数返回整数、指针或单精度浮点型,将返回值放到寄存器A4中,如果返回双精度浮点型或长精度浮点型,则将返回值放在A5:A4寄存器对中。(四)实验步骤与内容1. 准备将DSP实验设备与硬件仿真器相连接,连接电源线,打开电源开关。2设置CCS 在硬件仿真(Emulator)方式下运行,选择实际的仿真器。也可设置在模拟仿真(Simulator)方式下工作。3.启动CCS环境4创建工程。 选择菜单Project-New,创建casm.pjt工程5建立源文件1)建立C语言源程序文件。选择FILE-New-Source,输入下列C代码,保存到文件myprojectscasmmain.c。int add(int a, int b);void main() int x; int y; int z; x = 2; y =3; while(1) z=add(x,y); /函数调用 2) 建立汇编语言源程序文件。选择FILE-New-Source,输入下列C代码,保存到文件myprojectscasmadd.asm。内容如下:.global _add_add:ADD .D1X A4, B4, A4B .S2 B3.end注意:汇编语句前需要留出空格,标号顶格输入,否则编译有错误提示。3)建立链接命令文件点击“File/New/Source File”或使用工具条的快捷按钮,打开编辑窗,建立myprojectscasmcasm.cmd文件,内容如下:-stack 400-heap 400MEMORY ISRAM : origin = 0x0, len = 0x1000000SECTIONS .vectors ISRAM .text ISRAM .bss ISRAM .cinit ISRAM .const ISRAM .far ISRAM .stack ISRAM .cio ISRAM .sysmem ISRAM7.工程添加文件 点击菜单Project-Add Files to project,分别加入main.c,add.asm和casm.cmd文件,再向工程添加C:CCStudio_v3.3C6000cgtoolslib下的文件rts6400.lib。8编译、建立目标文件 产生casm.out9.调用编程可执行程序1)连接仿真器与目标板点击: Debug-connect,连接成功后,CCS左下角有提示。2)选择File-Load Program,选择casmdebugcasm.out。10.调试 1)执行至C语言主程序入口点击Debug-go main。2)设置断点在需要设置断点的行前双击鼠标,则在行前出现红色的原点,表示设置了断点;若在已经设置了断点的行前双击鼠标,则可以取消该断点。3)单步运行 用菜单debug-Step Into或F11可以单步运行。 4)全速运行 用菜单debug-Run或F5可以全速运行。11. 观察开启CPU寄存器观察窗口:单击菜单ViewRegisterscore。使用单步运行,查看相应寄存器的值的变化。还可开启Watch window,Memory窗口,进行变量、存储空间的观察12.关闭工程 点击Project-Close。13.退出CCS(五)实验报告要求1.写出实验报告,包括:目的和要求、仪器设备 2.写出实验步骤及内容实验4.5 双精度数据加减运算汇编语言实验(一)实验目的和要求:1. 学会双精度的汇编语言表示2. 学会使用汇编编程来实现双精度数据的加减运算3进一步掌握CCS调试汇编程序的技巧(二)主要仪器设备:1.计算机2.CCS软件3.TMS320C64xx实验箱一台(三)实验原理与方法双精度数据是采用两个字保存一个数据,将数据分成高位和低位。C6x 的数据宽度为32 位,所以双精度的数据位数为64 位,使用两个寄存器保存该64 位的数据。实验程序使用A2保存加数的低32 位,B2 保存加数的高32位,A4 保存被加数的低32 位, B4 保存被加数的高32 位,结果的低32 位存储在A0和*A8 地址中,高32 位存储在B0和*B8地址中,此程序可以直接被C 语言调用。(四)实验步骤与内容1. 准备关闭DSP实验设备的电源开关。2设置CCS 在模拟仿真(Simulator)方式下工作。3.启动CCS环境4创建工程。 选择菜单Project-New,创建dadder64.pjt工程5. 设置工程编译选项 选择CCS菜单project-Build Options,点击Linker页,设置Autoinit Model为:No Autoinitialization6建立源文件1)建立汇编语言源程序文件。选择FILE-New-Source,输入下列汇编代码,保存到文件dadder64.asm。;* ; 该64位加法完成下列运算: B2A2+B4A4=B0A0 ; 结果保存在:*(B8)和 *(A8)的地址单元 ;其中寄存器A和B都是32位,由MVKL和MVKH配对进行32位的赋值 ;* .global _dadder64 .text_dadder64: MVKL .S1 0x04030201, A2 ;存放加数的16位:015位 到寄存器A2 MVKH .S1 0x04030201, A2 ;存放加数的16位:1631位 到寄存器A2 MVKL .S2 0x06050403, B2 ;存放加数的16位:3247位 到寄存器B2 MVKH .S2 0x06050403, B2 ;存放加数的16位:4863位 到寄存器B2MVKL .S1 0x09080605, A4 ;存放被加数的16位:015位 到寄存器A4 MVKH .S1 0x09080605, A4 ;存放被加数的16位:1631位 到寄存器A4 MVKL .S2 0x0a090807, B4 ;存放被加数的16位:3247位 到寄存器B4 MVKH .S2 0x0a090807, B4 ;存放被加数的16位:4863位 到寄存器B4 MVKL .S1 0x00000080, A8 ;存放结果地址的低32位的015位 MVKH .S1 0x00000080, A8 ;存放结果地址的低32位的1631位 MVKL .S2 0x00000088, B8 ;存放结果的高32位的015位(3247位) MVKH .S2 0x00000088, B8 ;存放结果的高32位1631位(4863位) ADD .L1 A2,A4,A1:A0 ;两个低32位相加,结果放到存储到A0,A1存放进位ADD.L2 B2,B4,B1:B0 ;两个高32位相加,结果放到存储到B0,B1存放进位 ADD.L2 A1,B0,B0 ;低32位相加的进位位加到高位和B0 STW.D1A0,*A8 ;保存结果的低32位STW.D2B0,*B8 ;保存结果的高32位 NOP5 B $ ;跳转到当前 2)建立链接命令文件点击“File/New/Source File”或使用工具条的快捷按钮,打开编辑窗,建立dadder64.cmd文件,内容如下:-stack 0x400-heap 0x400MEMORY ISRAM : origin = 0x0, len = 0x1000000SECTIONS .vectors ISRAM .text ISRAM .data ISRAM .bss ISRAM .cinit ISRAM .const ISRAM .far ISRAM .stack ISRAM .cio ISRAM .sysmem ISRAM7.工程添加文件 点击菜单Project-Add Files to project,分别加入dadder64.c,dadder64.cmd文件。8编译、建立目标文件 产生dadder64.out9.调用编程可执行程序 选择File-Load Program,选择dadder64debugdadder64.out。10.调试1)设置断点在需要设置断点的行前双击鼠标,则在行前出现红色的原点,表示设置了断点;若在已经设置了断点的行前双击鼠标,则可以取消该断点。2)单步运行 用菜单debug-Step Into或F11可以单步运行。 3)全速运行 用菜单debug-Run或F5可以全速运行。11. 观察开启CPU寄存器观察窗口:单击菜单ViewRegisterscore。使用单步运行,查看相应寄存器的值的变化。还可开启Watch window,Memory窗口,进行变量、存储空间的观察12.将加法运算修改为减法运算 只需将源程序替换为下列:;* ; 该64位加法完成下列运算: B2A2-B4A4=B0A0 ; 结果保存在:*(B8)和 *(A8)的地址单元 ;其中寄存器A和B都是32位,由MVKL和MVKH配对进行32位的赋值 ;* .global _dsub64 .text_dsub64: MVKL .S1 0x07080506, A2 ;存被减数的16位:015位 到寄存器A2 MVKH .S1 0x07080506, A2 ;存被减数的16位:1631位 到寄存器A2 MVKL .S2 0x09080605, B2 ;存被减数的16位:3247位 到寄存器B2 MVKH .S2 0x09080605, B2 ;存被减数的16位:4863位 到寄存器B2MVKL .S1 0x11020304, A4 ;存放减数的16位:015位 到寄存器A4 MVKH .S1 0x11020304, A4 ;存放减数的16位:1631位 到寄存器A4 MVKL .S2 0x02030405, B4 ;存放减数的16位:3247位 到寄存器B4 MVKH .S2 0x02030405, B4 ;存放减数的16位:4863位 到寄存器B4 MVKL .S1 0x00000080, A8 ;存放结果地址的低32位的015位 MVKH .S1 0x00000080, A8 ;存放结果地址的低32位的1631位 MVKL .S2 0x00000088, B8 ;存放结果的高32位的015位(3247位) MVKH .S2 0x00000088, B8 ;存放结果的高32位1631位(4863位) SUB .L1 A2,A4,A1:A0 ;两个低32位相减,结果放到存储到A0,A1存放借位SUB.L2 B2,B4,B1:B0 ;两个高32位相减,结果放到存储到B0,B1存放借位 SUB.L2 B0,A1,B0 ;高32位减借位,存储到高32位B0 STW.D1A0,*A8 ;保存结果的低32位STW.D2B0,*B8 ;保存结果的高32位 NOP5 B $ ;跳转到当前 重新编译、调试即可。13.关闭工程 点击Project-Close。14.退出CCS(五)实验报告要求1.写出实验报告,包括:目的和要求、仪器设备 2.写出实验步骤及内容实验4.6 单精度小数乘法运算汇编语言实验(一)实验目的和要求:1.掌握在TMS320C64XX实现单精度小数的乘法运算方法;2.掌握在TMS320C64XX调试汇编语言程序的方法(二)主要仪器设备:1.计算机2.CCS软件3.TMS320C64xx实验箱一台(三)实验原理与方法单精度数据是采用一个字保存一个数据。C6x 的数据宽度为32 位,所以单精度的数据位数为32 位,使用两个寄存器保存32位的小数数据。为方便起见,假设32位表示的是纯小数。设A2和B2分别存储32位的浮点小数(纯小数)。现在计算A2B2的乘积。方法是将32位分成两个16位数,32位乘法变为4次16位乘法,然后相加进位。设A2的高低16位分别是A2H和A2L,设B2的高低16位分别是B2H和B2L,四次乘法是:(1)A2L乘以B2L;(2)A2H乘以B2H;(3)A2L乘以B2H;(4)A2H乘以B2L。乘法相加如图。实验程序使用A2保存被乘数的32 位,B2 保存乘数的32位,结果的低64 位的低32位存储在A7中,高32 位存储在A8中。此程序可以直接被C 语言调用。(四)实验步骤与内容1. 准备关闭实验箱电源开关。2设置CCS 在模拟仿真(Simulator)方式下工作。3.启动CCS环境4创建工程。 选择菜单Project-New,创建mymulp.pjt工程5. 设置工程编译选项 选择CCS菜单project-Build Options,点击Linker页,设置Autoinit Model为:No Autoinitialization6建立源文件1)建立汇编语言源程序文件。选择FILE-New-Source,输入下列汇编语言代码,保存到文件mymulp.asm。;* ; 32bit相乘: ; A2*B2 ;结果为64位,保存在:A7(低32位),A8(高32位) ;* .global _mymulp .text_myglobal: MVKL 0x00010003, A2 ; MVKH 0x00010003, A2 ; MVKL 0x00020004, B2 ; MVKH 0x00020004, B2 ; MPY .M1 A2,B2,A7 ; 低16位相乘存入A7 MPYH .M1 A2,B2,A8 ; 高16位相乘存入A8 MPYHL .M1 A2,B2,A5 ; A2的高16位与B2的低16位相乘 MPYLH .M1 A2,B2,A6 ; A2的低16位与B2的高16位相乘 nop 5 SHL .S A5,16,A9 ; 左移16位 ADD .L1 A9,A7,A1:A0 ; 加到A7,进位存到到A1 MV .L1 A0,A7 ;和转存到A7 ADD .L1 A1,A8,A1:A0 ;加进位 MV .L1 A0,A8 nop 5 SHL .S A6,16,A9 ; 左移16位 ADD .L1 A9,A7,A1:A0 ; 加到A7,进位存到到A1 MV .L A0,A7 ;和转存到A7 ADD .L1 A1,A8,A1:A0 ;加进位 MV .L1 A0,A8 nop 5 SHR .S A5,16,A9 ; 右移16位 ADD .L1 A9,A8,A1:A0 ; 加到A8,进位存到到A1 MV .L1 A0,A8 ;和转存到A8 nop 5 SHR .S A6,16,A9 ; 右移16位 ADD .L1 A9,A8,A1:A0 ; 加到A8,进位存到到A1 MV .L1 A0,A8 ;和转存到A8 nop 5 b $ 2)建立链接命令文件点击“File/New/Source File”或使用工具条的快捷按钮,打开编辑窗,建立mymulp.cmd文件,内容如下:-stack 0x400-heap 0x400MEMORY ISRAM : origin = 0x400, len = 0x1000000SECTIONS .vectors ISRAM .text ISRAM .data ISRAM .bss ISRAM .cinit ISRAM .const ISRAM .far ISRAM .stack ISRAM .cio ISRAM .sysmem ISRAM7.工程添加文件 点击菜单Project-Add Files to project,分别加入mymulp.asm和mymulp.cmd文件。8编译、建立目标文件 产生mynulp.out9.调用编程可执行程序 选择File-Load Program,选择mymulpdebugmymulp.out。点击Debug-Restart。在simulator模式下在仿真器模式下10.调试1)设置断点在需要设置断点的行前双击鼠标,则在行前出现红色的原点,表示设置了断点;若在已经设置了断点的行前双击鼠标,则可以取消该断点。2)单步运行 用菜单debug-Step Into或F11可以单步运行。 3)全速运行 用菜单debug-Run或F5可以全速运行。 4)停止运行 用菜单debug-Halt或Shift+F5可以停止运行。11. 观察开启CPU寄存器观察窗口:单击菜单ViewRegisterscore。使用单步运行,查看相应寄存器的值的变化。还可开启Watch window,Memory窗口,进行变量、存储空间的观察。观察本实验结束后的寄存器:A7和A8的值,并用计算器计算进行比较。12.关闭工程 点击Project-Close。13.退出CCS(五)实验报告要求1.写出实验报告,包括:目的和要求、仪器设备 2.写出实验步骤及内容(六)思考题1将纯小数改写为16位整数加16位小数,如何设计汇编语言的乘法算法?2将纯小数表示为64位的双精度,如何设计汇编语言的乘法算法?实验4.7 浮点数乘除法运算实验(一)实验目的和要求:1.掌握浮点数乘除法的实现方法;2.掌握在TMS430C64xx下实现浮点乘除法运算;3进一步掌握在CCS下调试程序方法。(二)主要仪器设备:1.计算机2.CCS软件3.TMS320C64xx实验箱一台(三)实验原理与方法C语言中有浮点数的定义,双精度浮点有double定义,单精度用float定义。乘法操作符号为*,除法操作符号用/表示。变量是先定义(分配存储单元),然后才能使用。在分配存储单元前,先用pragma指令建立变量的存储单元起始地址。一个变量要在C语言中使用前,需要处理以下两步:(1)pragma指令建立变量的存储单元起始地址。例如:#pragma DATA_SECTION(a,a_buf) #pragma DATA_SECTION(a,a_buf) /将a建立在a_buf开始的数据区域,其中a_buf添加在.cmd文件中分配地址
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【中考专题】2026年中考数学专项提优复习:圆【附答案】
- 2025酒店客房代销品采购合同
- 2025年甘肃省平凉华亭市山寨回族乡招聘行政村村文书模拟试卷及答案详解一套
- 2025福建农信春季招聘考试服务热线考前自测高频考点模拟试题完整答案详解
- 2025标准合同模板:厨师劳务聘用合同样本
- 2025企业经营承包合同模板
- 2025福建福州市永泰县青少年业余体校外聘柔道教练员招聘1人模拟试卷及完整答案详解1套
- 2025广东深圳北京大学国际法学院招聘1人模拟试卷完整答案详解
- 2025福建闽南师范大学引进人才招聘97人模拟试卷附答案详解(完整版)
- 2025年福建省市场监督管理局直属事业单位公开招聘20人考前自测高频考点模拟试题(含答案详解)
- 2025年度陕西煤业化工集团有限责任公司高校毕业生(技能操作岗)招聘1868人笔试参考题库附带答案详解
- 物业管理安全生产责任制细则
- 2025四川金川集团股份有限公司技能操作人员社会招聘400人考试参考试题及答案解析
- 2025浙江嘉兴市海宁经济开发区、海昌街道网格员招聘1人考试参考题库及答案解析
- 动物防疫法解读
- (正式版)DB32∕T 5160-2025 《传媒行业数据分类分级指南》
- 2025年检查检验项目分级审核制度
- 辽沈战役精简课件
- 河道工程基础井点降水方案
- 第1课 高效传输秘籍-漫谈TCPIP和包交换教学设计-2023-2024学年初中信息技术(信息科技)七年级上册(2024)清华大学版(2024)(青海)
- 工业污水处理课件
评论
0/150
提交评论