您的当前位置:首页湘潭大学数字信号处理第一次实验报告

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

来源:锐游网


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

学 院:信息工程学院

班 级: 姓 名:

学 号:

指导老师:姚志强

完成日期:2012-03-31 内容:

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

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

1

实验一、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的初始化设置等。实验过程中也需耐心地一步一步操作。总之,在老师和助教的帮助下较好地完成了本次的实验操作,达到了预期的实验目的,也为后续实验奠定了一定的基础。

2

实验二、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.练习

3

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

4

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

5

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。

6

实验现象如下:

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

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

四、试验程序代码

;****************************************************************************** ; SJTU DSP Tech. Center

; Copyright (c) 2003 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

7

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

8

.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的使用

9

二、实验设备

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 -------- ---- ---------- ---------- ----------------

10

.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

11

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 */ }

测试其功能。

12

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

四、实验结果和提示

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

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

图3-1 GEL菜单

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

图3-2 新的子菜单

13

最终的实验现象:

五、实验心得与体会

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

14

因篇幅问题不能全部显示,请点此查看更多更全内容

Top