dsp实验-CCS操作(精)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验二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 选项,选择File s选项,并在设置Asm File Ext 中写入“s54”为汇编语言扩展名;

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

d 构建整个项目,产生可执行文件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 文件和连接器的关系。答:cmd 文件为配置文件,配置文件在连接的过程中将定义DSP 的RAM 空间,

也就是对存储空间起一个配置作用。DSP 在程序中引入了各个段的概念,相应的连接时就需要进行各个段的分配。配置文件ccs.basic.cmd 内容如下:

MEMORY

{

PAGE 0:

VECS: org=0x0080, len=0x80

PROM: 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 0

vectors :> VECS PAGE 0

.bss :> DARAM PAGE 1

.data :> DARAM PAGE 1

}

可以发现以上信息基本与存储器映象文件ccs_basic.Map 中相同。memory

部分说明了存储空间的页数、长度、起始点和名称。Section 部分是对段的

配置说明:.text 段和向量段固定的连接至程序空间;.bss 段和.stack 段固定的连接至数据空间,存储类型为RAM。连接后的配置结果为向量段从第0 页的0x0080 地址开始存放,代码段从第0 页的0x1000 地址开始存放,堆栈段从第1 页的0x100 地址开始存放,数据段从第1 页的0x2000 地址开始存放。

2. 输出文件ccs_basic.out 的运行和调试实验代码如下:

STACK_ADDR .set 0x0500 ;设置堆栈底端地址

;在变量段分配数据,为未初始化的变量保留空间

.bss a,2

.bss x,2

.bss y,1

;在数据段分配数据,存入初始化数据

.data

table:

.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, PMST

stm #0x0000, SWWSR

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

stm #a, AR2 ;设置AR1 指向a

stm #table, AR3 ;设置AR3 指向table

rpt #1

mvdd *AR3+, *AR2+ ;循环一次,将0x000A 和0x0005 存放在地址0x2000 stm #x, AR2 ;设置AR2 指向x

rpt #1

mvdd *AR3+, *AR2+ ;将地址0x2005 低16 位的0x0008 和0x0006 存放到地址为0x2002 的存储器空间

call SUM ;执行sum 模块的功能

;死循环,使PC 在当程序结束时锁定在一个已知的区域

dead_loop:

nop

nop

nop

b dead_loop

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

相关文档
最新文档