湘潭大学数字信号处理第一次实验报告

时间:2024.4.20

数字信号处理实验报告(第一次)

                                                                                                                  

     学    院:信息工程学院

     班    级:

     姓    名:

     学    号:

     指导老师:

     完成日期:20##-03-31

内容:

实验一、CCS的安装与CCS操作界面的熟悉

实验二、CCS操作

实验三、CMD文件和Gel文件的编写

实验一、CCS的安装与CCS操作界面的熟悉

一、实验要求和目的

1、学会安装与设置Code Composer Studio。

2、熟悉CCS软件的操作界面。

二、实验设备

CCS安装光盘(本次安装程序在D:\DSP\ccs2.0ForC5000)、装有Windows 98以上操作系统的PC机

三、实验内容及步骤

1.CCS的安装

  安装前需要卸载系统原来的C5000,进入控制面板进行卸载完毕后,再开始下面的步骤。

(1)找到CCS的安装软件,点击安装程序setup.exe,双击启动安装。安装完成后在

桌面上会有“CCS 2 C5000”和“SETUP CCS 2 C5000”两个快捷方式图标,分别对应CCS应用程序和CCS配置程序。

(2)双击运行“SETUP CCS 2 C5000”配置程序,配置驱动程序。本次实验没有用到实验箱,只需配置软件驱动程序。在弹出的“Import Configurantions”对话框中,先点击“Clear”键,清除以前的配置,然后选择“C5402 Simulator”,点击“Import”,最后点击“Save and Quit”按钮,完成配置。

2.CCS操作界面的熟悉

(1)在桌面上双击“CCS 2 C5000”,弹出一个TI仿真器并行调试管理器窗口。

(2)在管理器窗口的“open”菜单下选择“C54xx(C5402) Simulator”命令,将弹出一个CCS运行主窗口(如果直接弹出CCS运行主窗口,此步可略)。

(3) 点击Help_>Contents打开TMS320C54x Code Composer Stdio Help,在左边Contents列表中点击最后一个TMS320C5402 DSK,浏览了解其下所有子列表的内容,熟悉DSK板的基本硬件、配置及功能。

(4)对照教材介绍CCS的地方,逐一熟悉CCS中的12项菜单的功能,包括File、Edit、View、Project、Debug、Profiler、Option、GEL、Tools等菜单(结合实验二建立项目熟悉更好)。

(5)对照教材,逐一熟悉CCS的五种工具栏:Standard Toolbar、GEL Toolbar、Project Toolbar、Debug Toolbar、Edit Toolbar(结合实验二建立项目熟悉更好)。  

四、实验心得与体会

本次实验的主要内容是CCS的安装与CCS操作界面的熟悉,实验操作较为简单,但它却占据着举足轻重的地位,它为后来的实验奠定了一定的、必要的基础。实验操作过程中也有一些需要注意的地方,如安装路径、SETUP CCS 2 C5000的初始化设置等。实验过程中也需耐心地一步一步操作。总之,在老师和助教的帮助下较好地完成了本次的实验操作,达到了预期的实验目的,也为后续实验奠定了一定的基础。

实验二、CCS操作

一、实验目的

1. 掌握TMS320C5400系列汇编语言程序的基本格式,

2. 掌握程序编译、连接、运行和调试的基本过程

3. 熟悉Code Composer Studio的使用

二、实验设备

1. 集成开发环境Code Composer Studio(以下简称CCS)

2. 实验代码ccs_basic.s54、ccs_basic.cmd和ccs_basic.gel

三、实验内容

1.基本操作:

 1). 建立项目,并加入文件

a) 运行CCS setup,选择C5402 Simulator,选择Project→New菜单项,建立一个新的项目ccs_basic.pjt(注意建立路径),并选择Project→add files to new project 菜单项,加入文件ccs_basic.s54和ccs_basic.cmd;

b) 在工程视图中选中GEL files文件夹,单击鼠标右键,在弹出的菜单中选择Load GEL选项,载入ccs_basic.gel;

 2). 编译和连接

a) 编译:选择Project-->Build Option,在Compile表单的Category列表中,选择Basic选项,并设置Generate debug info为full symbolic debug选项,选择Files选项,并在设置Asm File Ext 中写入“s54”为汇编语言扩展名;

如图2-1  2-2所示;

b) 连接:选择Project-->Build Option,在linker表单中的Autoinit mode选项中选择no autointialization模式,Output Filename中输入.\debug\ ccs_basic.out,Code Entry Point 中输入main,Map Filename中输入ccs_basic.map,然后保存选项设置.

c) 选择Project→Build构建整个项目,产生可执行文件ccs_basic.out;

d) 选择File->Load Program,装载可执行文件ccs_basic.out。

2.练习

1) 观察存储器映象文件ccs_basic.Map,理解存储器的配置情况;

2) 观察和修改存储器单元的内容

1). 观察存储器映象Map文件

选择File→Open打开ccs_basic.Map文件,可观察

a) 存储器的配置情况:页面0为程序空间,页面1为数据空间;

b) 程序文本段:起始地址0x1000,存储区长度为0x0021;

c) 数据段:其中需初始化数据段.data起始地址0x2005,存储区长度为4;

d) 不需初始化数据段.bss起始地址0x2000,存储区长度为5;

e) 堆栈段:起始地址0x0100,存储区长度为0x0400;

f) 向量段:起始地址0x0080,存储区长度为0x0080;

g) 全局符号在存储器中的位置:共14个符号,如符号.bss在存储器中的位置为0x2000。

将上述信息与cmd文件中的设置比较,理解cmd文件和连接器的关系。

ccs_basic.map的内容如下:

******************************************************************************

TMS320C54x COFF Linker           PC Version 3.70               

******************************************************************************

>> Linked Sat Mar 31 10:20:26 2012

OUTPUT FILE NAME:   <./Debug/ccs_basic.out>

ENTRY POINT SYMBOL: "main"  address: 00001000

MEMORY CONFIGURATION

                  name            origin    length      used    attr    fill

         ----------------------  --------  ---------  --------  ----  --------

PAGE  0: VECS                    00000080   00000080  00000080  RWIX

         PROM                    00001000   00001000  00000021  RWIX

PAGE  1: STACK                   00000100   00000400  00000000  RWIX

         DARAM                   00002000   00001000  00000009  RWIX

SECTION ALLOCATION MAP

output                                  attributes/

section   page    origin      length       input sections

--------  ----  ----------  ----------   ----------------

.text      0    00001000    00000021    

                  00001000    00000021     ccs_basic.obj (.text)

vectors    0    00000080    00000080    

                  00000080    00000080     ccs_basic.obj (vectors)

.bss       1    00002000    00000005     UNINITIALIZED

                  00002000    00000005     ccs_basic.obj (.bss)

.data      1    00002005    00000004    

                  00002005    00000004     ccs_basic.obj (.data)

GLOBAL SYMBOLS: SORTED ALPHABETICALLY BY Name

address    name

--------   ----

00002000   .bss

00002005   .data

00001000   .text

00002000   ___bss__

00002005   ___data__

00002009   ___edata__

00002005   ___end__

00001021   ___etext__

00001000   ___text__

00000000   __lflags

00002009   edata

00002005   end

00001021   etext

00001000   main

GLOBAL SYMBOLS: SORTED BY Symbol Address

address    name

--------   ----

00000000   __lflags

00001000   .text

00001000   ___text__

00001000   main

00001021   ___etext__

00001021   etext

00002000   .bss

00002000   ___bss__

00002005   end

00002005   ___data__

00002005   .data

00002005   ___end__

00002009   edata

00002009   ___edata__

[14 symbols]

2). 输出文件ccs_basic.out的运行和调试

a) 运行程序:将可执行文件装载到simulator中,选择Debug→Run 或按F5键运行程序,按shift F5键可中止程序的运行;选择Debug→Step into或按F8键可实现程序的单步执行。

b) 设置断点:把光标移到某一行,按F9键,这一行将会以红色高亮显示,表示在该行加了一个断点.

3). 观察和修改存储器单元的内容

a) 点击CCS操作界面左侧调试工具栏图标,出现寄存器窗口,在该窗口查看存储器的地址

b) 选择View→memory 或点击CCS操作界面左侧调试工具栏图标,在弹出的菜单中输入存储器地址,可观察存储器的内容。如存储器地址为0x2005中内容为0x000A。

c) 修改源汇编程序中数据段内容,可查看存储器单元内容的变化。在数据表格复制到数组a[]后,如果把a[0]的值由10改为1(修改文件时注意去掉其只读属性,后面类似),那么求和的结果将变为0x0026。

实验现象如下:

在数据表格复制到数组a[]后,如果把a[0]的值由10改为1(修改文件时注意去掉其只读属性,后面类似),那么求和的结果将为0x0026。如图所示:

由图可知,实验结果如预期所示。

四、试验程序代码

;******************************************************************************

;                       SJTU DSP Tech. Center

;        Copyright (c) 20## SJTU DSP Tech. Center. All Rights Reserved.

;  Description:

;            TMS320C54x Program for Students Experiment

;  History:

;             Date        Authors                 Changes

;             2003/07/15     Xu Sheng              Created.

;******************************************************************************

;Target:

;      Be familar with the use of CCS (Code Composer Studio)

;******************************************************************************

;An example to show how to write an assembly language source file

;      y=a1*x1+a2*x2

;******************************************************************************

;----------- Const definition

STACK_ADDR             .set         0x0500           ;bottom of stack

       ;allocate data in .bss section

       .bss a,2                                              ;allocate 5 word for variates

       .bss x,2

       .bss y,1

       ;allocate data in .data section

       .data

table:                                                              ;data follows ...

       .word 10,5

       .word 8,6

       .mmregs                                                   ;enable memory mapped registers

       .global    main                        ;define global symbols

;------------------------------------------------------------------------------

       .text

main:

       stm         #STACK_ADDR, SP            ;set stack

       stm         #0x00a8, PMST            ;relocate Interrupt Vector Table

      stm         #0x0000, SWWSR        ;no software wait for all memory

       ;================================================

       stm         #a, AR2                        ;AR1 point to a

       stm         #table, AR3

       rpt     #1                                 ;move 2 ai values

       mvdd    *AR3+, *AR2+            ;from data memory into data memory

       stm         #x, AR2                       ;AR1 point to a

       rpt     #1                                 ;move 2 xi values

       mvdd    *AR3+, *AR2+            ;from data memory into data memory

       call    SUM         ;call function to do sum

       ;dead loop part to lock PC in a know area when program ends

dead_loop:

       nop

       nop

       nop

       b            dead_loop

;================================================

;      y=a1*x1+a2*x2

SUM:

       stm       #a, AR3

       stm #x, AR4

       rptz        A, #1

       mac        *AR3+, *AR4+, A

       stl     A, *(y)

       ret

;------------------------------------------------------------------------------

;Interrupt Vector Table, for simplicity Only RESET interrupt is defined

       .sect "vectors"

int_RESET:

       b            main              ;when reset, jump to main

       nop

       nop

       .space      124*16           ;no other interrupt used, keep them space

;end of lab1.s54 

五、实验心得与体会

本次实验的主要内容是CCS操作。本实验是在实验一的基础上的深化,同时可以在某种程度上巩固实验一。在本次实验中,在老师和助教的指导下,学习并初步掌握了TMS320C5400系列汇编语言程序的基本格式,认识和掌握了程序编译、连接、运行和调试的基本过程及步骤,初步熟悉了Code Composer Studio的使用方法。同时,通过对存储器映象文件ccs_basic.Map的观察和学习探究,理解了存储器的配置情况,并通过观察和修改存储单元内容也得到了预期的实验结果。操作过程中也有一些需要注意的地方,如汇编语言格式设置,程序的操作步骤等。总之,在老师和助教的帮助下,加上自己认真对待的态度,最终较好地完成了本次的实验操作,达到了预期的实验目的,也为后续实验奠定了相应的基础。

   当然,我也深知,想要进一步学好DSP,用熟这个软件,还需自己花必要的时间和精力。

实验三、CMD文件和Gel文件的编写

一、实验目的

1. 掌握Gel文件的编写,

2. 熟悉Code Composer Studio的使用

二、实验设备

1. 集成开发环境CCS

2. 实验代码ccs_gel.s54、ccs_gel.cmd和ccs_gel.gel

三、实验内容

1. 建立项目并添加相应文件,连接编译(步骤同实验二一样),双击打开CMD文件,对照教材理解CMD文件的编写结构,改变其中的内容,增加自定义段,保存并重新编译,比对前后两次编译得到的Map文件的异同。

abcd.map的内容如下:

******************************************************************************

TMS320C54x COFF Linker           PC Version 3.70               

******************************************************************************

>> Linked Sat Mar 31 10:57:48 2012

OUTPUT FILE NAME:   <./Debug/abcd.out>

ENTRY POINT SYMBOL: 0

MEMORY CONFIGURATION

                  name            origin    length      used    attr    fill

         ----------------------  --------  ---------  --------  ----  --------

PAGE  0: VECS                    00000080   00000080  00000080  RWIX

         PROM                    00001000   00001000  00000021  RWIX

PAGE  1: STACK                   00000100   00000400  00000000  RWIX

         DARAM                   00002000   00001000  00000009  RWIX

SECTION ALLOCATION MAP

output                                  attributes/

section   page    origin      length       input sections

--------  ----  ----------  ----------   ----------------

.text      0    00001000    00000021    

                  00001000    00000021     ccs_gel.obj (.text)

vectors    0    00000080    00000080    

                  00000080    00000080     ccs_gel.obj (vectors)

.bss       1    00002000    00000005     UNINITIALIZED

                  00002000    00000005     ccs_gel.obj (.bss)

.data      1    00002005    00000004    

                  00002005    00000004     ccs_gel.obj (.data)

GLOBAL SYMBOLS: SORTED ALPHABETICALLY BY Name

address    name

--------   ----

00002000   .bss

00002005   .data

00001000   .text

00002000   ___bss__

00002005   ___data__

00002009   ___edata__

00002005   ___end__

00001021   ___etext__

00001000   ___text__

00000000   __lflags

00002009   edata

00002005   end

00001021   etext

00001000   main

GLOBAL SYMBOLS: SORTED BY Symbol Address

address    name

--------   ----

00000000   __lflags

00001000   .text

00001000   ___text__

00001000   main

00001021   ___etext__

00001021   etext

00002000   .bss

00002000   ___bss__

00002005   end

00002005   ___data__

00002005   .data

00002005   ___end__

00002009   edata

00002009   ___edata__

 [14 symbols]

ccs_basic.map的内容见实验2,此处从略。

对比可以看出:两者大体相同,只是ENTRY POINT SYMBOL不同。文中有做标记。

2. 了解GEL文件的功能。Gel文件不是DSP开发必须的文件,而是给CCS使用的文件,它帮助设置CCS的仿真环境,而且可以完成一些常用的调试操作,如硬件设置等。Gel文件的编写是采用类似C语言的编程语言,观察当前的Gel文件的编写。

3. 使用者如果希望修改其功能,可以直接编写gel文件,保存并重新装载。Menuitem是一级子菜单,hotmenu是二级子菜单,其中的处理可以直接填写或调用其他的函数。修改Gel文件,添加menuitem和hotmenu。

menuitem "C54x Experiment";

hotmenu C5402_Textout()

{

GEL_TextOut(“Hello,GEL is a solid tool !\n”);

}

hotmenu C5402_DSK_Test()  /*此功能实现需要用到DSK板,可暂不添加,如做测试,需将此中文注释去掉*/

{

*(int *)0x0@io = 0xff07; /* turn on LED */

}

测试其功能。

4. 查询help了解所有Gel的函数功能,并修改文件实现一个其它的Gel函数。

四、实验结果和提示

1. 当设备被选用后,与其关联的gel文件将被使用,其中的StartUp函数将被调用。可修改其中的内容,如PMST寄存器的数值,并测试。

2. 如果当前CCS中装载了gel文件,那么就会出现相应的菜单项,如图3-1所示。

图3-1 GEL菜单

 3. 添加代码后,重新装载Gel文件将出现新的子菜单,如图3-2所示,并测试新菜单的功能。

图3-2 新的子菜单

最终的实验现象:

五、实验心得与体会

本次实验的主要内容是CMD文件和Gel文件的编写。本实验是以实验一和实验二为基础,并加以深化。在本次实验中,在老师和助教的指导下,学习并初步掌握了CMD文件和Gel文件的编写,进一步熟悉了Code Composer Studio的使用方法。在老师和助教的帮助下,加上自己不断的摸索,最终也较为顺利地出现了预期的实验现象,从而较好地完成了本次的实验操作,达到了预期的实验目的,也为后续实验奠定了相应的基础。从这几次的实验操作,我深刻认识到,必须在学好相关DSP的基础知识的基础上,加强软件操作的练习,才能更好地学好DSP。

更多相关推荐:
数字信号处理实验报告

南京信息工程大学数字信号处理实验报告学院:电子与信息工程学院班级:11通信1班学号:XXX姓名:XX指导教师:XX20XX/12/6实验一Matlab基本知识和信号处理工具箱一、实验目的1、了解Matlab的基…

数字信号处理实验报告 - 1

数字信号处理第一次实验报告学院:信息工程学院专业:电子信息工程二班学号:***姓名:实验一:系统响应及系统稳定性1.实验目的(1)掌握求系统响应的方法。(2)掌握时域离散系统的时域特性。(3)分析、观察及检验系…

数字信号处理实验报告

数字信号处理实验报告专业电子信息工程学号111308336姓名张强伟实验一数字滤波器的结构一实验目的1加深对数字滤波器分类与结构的了解2明确数字滤波器的基本结构及其相互间的转换方法3掌握用MATLAB进行数字滤...

数字信号处理实验报告

北京信息科技大学实验报告课程名称数字信号处理实验项目IIR数字滤波器设计实验仪器计算机MATLAB软件学院信息与通信工程学院班级姓名学号实验日期指导老师实验成绩实验二IIR数字滤波器设计一实验目的1熟悉用双线性...

数字信号处理实验报告一

西南大学学生实验报告姓名杨剑学号2220xx3220xx058班级1班专业电科实验日期20xx年9月29日实验学时2学时实验名称基本信号的产生和序列的基本运算实验目的学习使用MATLAB产生基本信号绘制信号波形...

哈工大 数字信号处理实验报告

实验一用FFT作谱分析实验目的1进一步加深DFT算法原理和基本性质的理解因为FFT只是DFT的一种快速算法所以FFT的运算结果必然满足DFT的基本性质2熟悉FFT算法原理和FFT子程序的应用3学习用FFT对连续...

数字信号处理实验报告2

实验一序列的产生姓名高洪美学号0819xx9213班级生医5班一实验目的熟悉MATLAB中产生信号和绘制信号的基本命令二实验环境基于WindowsPC的MATLAB三实验内容1单位样本和单位阶跃序列2指数信号3...

DSP(数字信号处理)实验报告5

本科学生实验报告学号124090314姓名何胜金学院物电学院专业班级12电子实验课程名称数字信号处理实验教师及职称杨卫平开课学期至填报时间日云南师范大学教务处编印12345678910

数字信号处理实验报告三 哈尔滨工程大学

三实验程序及结果31正弦信号混叠A程序gtgtnn079gtgtsinussin2pi3008000nngtgtstemnnsinusb程序gtgtplotnnsinuscgtgtnn079sinussin2p...

中南大学数字信号处理实验报告

中南大学数字信号处理实验报告学生姓名学号指导教师学院专业班级完成时间2目录实验一实验二常见离散时间信号的产生和频谱分析3实验结果与分析5数字滤波器的设计14实验结果与分析173实验一常见离散时间信号的产生和频谱...

数字信号处理实验报告1

离散傅立叶变换的性质及应用实验报告学院电子信息学院专业班级实验数据第1题1代码如下functionamphadft1xNlengthxwexpj2piNfork1Nsum0forn1Nsumsumxnwk1n1...

20xx级数字信号处理实验报告1

20xx级数字信号处理实验报告实验名称实验一数字信号的产生和基本运算1实验要求因为现实世界里存在的是模拟信号因此数字信号处理的第一个问题是将信号离散化得到一个数字信号然后再进行数字处理1常用数字信号序列的产生熟...

数字信号处理实验报告(35篇)