Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2298971
  • 博文数量: 395
  • 博客积分: 10994
  • 博客等级: 上将
  • 技术积分: 5586
  • 用 户 组: 普通用户
  • 注册时间: 2010-12-17 19:49
文章存档

2014年(1)

2013年(10)

2012年(74)

2011年(303)

2010年(7)

分类: 嵌入式

2011-05-03 17:45:07

 

下面是我上dsp实验时设置ccs2.0时的试验步骤,记下来,用于以后操作 

其中某些操作可以参考如下网址(有图文解释):

 

实验一 CCS的使用与简单应用程序的建立

()  实验目的

1.       了解CCS 2.0的安装和配置

2.       了解DSP开发系统和计算机与目标系统的连接方法。

3.       掌握CCS2.0的操作环境和基本功能,掌握TMS320C54x的软件开发过程。

1       学习创建工程和管理工程的方法。

2       了解基本的编译和调试功能。

3       学习使用观察窗口。

4       了解图形功能的使用。

()  实验设备

计算机、DSP硬件仿真器、SZ-DSPF开发教学平台

()  实验硬件设置

做实验之前,需要接通该实验所需的硬件电路,然后开始做实验。注意在做DSP实验时开始按了SZ-5416D主控模块上的K1硬件复位后,程序运行中不要再按复位键,以免实验由于DSP复位而失败。

()  实验内容

1.       CCS2.0的安装配置(选做)

2.       DSP开发系统和计算机与目标系统的连接

3.       CCS2.0的操作系统和基本功能

1       创建工程和管理工程

2       编译调试程序

3       观察窗口的使用

4       图形功能的使用

()  实验原理

1.       安装CCS2.0(选做)

1       打开安装目录,双击setup.exe,进入安装程序;

2       选择”Code Composer Studio”,按照安装提示进行安装。安装完毕后,桌面上出现两个图标“CCS 2 ('C5000) ”和“Setup CCS 2 ('C5000)”。

2.       安装DSP开发系统驱动程序(选做)

1       将计算机上的USB接口一端连接到仿真器上,一端连接到电脑上,仿真器上红色电源灯亮表示接口联通。

2       连接硬件USB数据线后,计算机提示找到新硬件,请选择安装\dsp drivers\usb emulate driver(szdsp)\目录下的tds jtag.sys文件,进行安装。

3       打开\USBDRI2.2\目录下的setup,选择”TMS320C5000”,选择安装目录,完成安装。

3.       设置CCS2.0在软件仿真(Simulator)方式下运行.

1       双击 Setup CCS 5000”图标,关闭“Import Configuration”窗口。

2       进入”Code composer studio setup”窗口,双击“C54x Simulator (Texas Instruments)”,如没有“C54x simulator”,请单击右边栏中的“Install a Device Driver”,选中…ti/drivers/ tisim54x.dvr这个文件.在对话框中点击”next”,在选项中选择5416相关选项。完成设置。

3       设置完成后,在“system configuration”栏中出现”C54x simulator”

4       退出”Code composer studio setup”对话框,并选择保存设置。

4.       设置CCS2.0在硬件仿真(Emulator)方式下运行.

1       双击 Setup CCS 5000”图标,关闭“Import Configuration”窗口。

2       进入”Code composer studio setup”窗口,双击“C54x Emulator (Texas Instruments) ,如果中间栏中无“C54x XDS(Texas Instruments)”的图标,请单击右键在“c:\ti\drivers\”中载入。

3       点击“auto-generate board data file”的下拉箭头,选中“auto-generate board data file with extra config,点击“browse,打开安装c:\ti\cc\bin\szdsp.cfg文件。

4       点击”next”进入”Board Properties”页面,将I/O值设置为0X0

5       点击“Next,进入”Processor Configuration“页面,添加一个CPU

6       点击“Next“,进入“Setup GEL”页面,选中c5416.gel

7       保存设置,设置结束。

5.       启动Code composer studio 2.0

双击桌面上的“CCS 2 ('C5000)“图标,启动Code composer studio 2.0

6.       创建工程及添加文件

1       选择Project àNew菜单

2       在窗口中,选择新建的目录,键入mysine作为工程文件名,然后单击完成。CCS会新建一个叫mysine.pjt的工程文件,将保存工程文件设置和工程引用相关文件。

3       选择projectàAdd Files to Project,选择test.c加入文件中。

4       选择projectàAdd Files to Project,在文件类型选项中选择CMD文件(*.cmd)。选择test.cmd

5       此时,可以在工作窗口的工程视窗myhello.pjt旁的+号,展开工程查看其中的文件。

6       注意:此时一些包含的文件不会出现在include目录下,编译后CCS会自动加入,不必手动执行。

7.       编译/执行程序

1       选择ProjectàRebuild All或工具栏中的相应按钮。

2       编译成功后,选择FileàLoad Program。选择刚编译的可执行程序mysine.out

3       选择DebugàRun,或工具栏中的相应图标。运行程序

8.       跟踪/调试程序

1       选择DebugàRestart,重新执行程序。

2       不全速运行,而是选择DebugàStep Into或按F8,单步执行程序。

3       观察主要寄存器的变化ViewàCPU RegistersàCPU Registe

4       设置断点,选择DebugàRestart,重新执行程序。

5       观察断点处变量的值。

9.       查看、编辑内存

1       选择ViewàMemory或单击调试工具条上的“显示内存数据”按钮。在弹出对话框中输入内存变量名(或对应地址)、显示方式即可显示指定地址内存单元。

2       为改变内存窗口显示属性(如数据显示格式,是否对照显示等),可以在内存窗口中单击右键,从关联菜单中选择Properties即弹出选项对话框。

10.   显示编辑寄存器

1       选择命令ViewàCPU RegistersàCPU Register或单击调试工具条上的“显示寄存器”按钮。CCS将在CCS窗口下方弹出一寄存器查看窗口

2       编辑寄存器

3种方法可以修改寄存器的值;

a.命令Edità Register

b.在寄存器窗口双击需要修改的寄存器。

c.在寄存器窗口单击右键,从弹出的菜单中选择需要修改的寄存器。

三种方法都将弹出一编辑对话框,在对话框中指定寄存器(如果在“Register”栏中不是所期望的寄存器)和新的数值即可

11.   编辑变量和通过观察窗口查看变量

1       命令EditàVariable可以直接编辑用户定义的数据变量,在对话框中填入变量名(Variable)和新的数值(Value)即可。用户输入变量名后,CCS会自动在 Value栏中显示原值。注意变量名前应加“关”前缀,否则显示的是变量地址。

2       加入观察窗口查看变量,选择命令ViewàWatch Window或单击调试工具条上的“打开观察窗口”按钮,则观察窗口出现在CCS的下部位置

3种方法可以定义观察变量:

a. 移到观察窗口中按“Insert”键,弹出表达式加入对话框,在对话框中填入变量符号即可。

b. 光标移到观察窗口中单击右键,从弹出菜单中选择“Insert New Expression”,在表达式加入对话框中填入变量符号即可。

c. 源文件窗口或反汇编窗口双击变量,在该变量反白显示,右键单击选择“Add to Watch Windows”则该变量直接进入当前观察窗可列表。

表达式的变量符号当作地址还是变量处理取决于目标文件是否包含有符号调试信息。若在编译连接时有-G选项(此意味着包含符号信息),则变量符号当作真实变量值处理,否则作为地址。对于后一种情况,为显示该内存单元的值,应当在其前面加上前缀号“关”。

12.   载入/保存数据

1       载入外部数据, 选择命令FileàDataàLoad命令,弹出文件载入对话框,选择预先准备好的数据文件。此后,弹出一对话框如下图所示。“Address”栏和“Length”栏已被文件头信息自动填入。用户也可以在对话框中重新指定变量名(或缓冲区首地址)和数据块长度。

2       保存数据到文件中. 选择命令FileàDataàSave弹出一对话框要求给出输出文件名。完成后,弹出“Store Memory into File”对话框。输入需要保存变量名(或数据块首地址)和长度,单击“OK”按钮即可。

13.   外部文件输入/输出(选做)

1       置探针断点。将光标移到需要设置探针的语句上,点击工程工具条上的“设置探针”按钮。光标所在语句被彩色光条高亮显示。取消设置的探针,亦点击按钮。此操作仅定义程序执行到何时读入或写出数据。

2       命令“FileàFile I/O”。显示对话框,在此对话框中选择文件输入或文件输出功能(对应“File input”和“File Output”标签)

3       将探针与输入文件(或者输出文件)关联起来,点击对话框中的“Add probe point”按钮,弹出Break/ProbeàProfile Point对话框。在“Probe Point”列表中,点击选中需要关联的探针。在本例中只定义了一个探针,故列表中只有一行从“Connect”一栏中选择数据文件。点击“Replace”按钮。注意在“Probe Point”列表中显示探针所在的行已与文件对应起来。

4       Break/ProbeàProfile Point 对话框设置完成后,回到“File I/O对话框。c:\My Documents\Mydata.dat 出现在“File Input”栏。在此对话框中,指定数据读入存放的起始地址(对文件输出为输出数据块的起始地址)和长度。起始地址可以用事先已定义缓冲区符号代替。数据的长度以WORD为单位。对话框中的“Wrap Around”选项是指当读指针到达文件末尾时,是否回到文件头位置重新读入。这在用输入数据产生周期信号场合较为有用。

File I/O对话框完成后,点击“OK”按钮,CCS自动检查用户的输入是否正确。

14.   利用图形窗口分析数据

1       选择命令ViewàGraphàTime/Frequency 弹出Time/Frequency 对话框

2       根据显示内容设置对话框中的选项

3       选项解释:

a.示类型(Display Type):单击“Display Type”栏区域,则出现显示类型下拉菜单条。点击所需的显示类型,则Time/Frequency对话框(参数设置)相应随之变化。

b.图标题(Graph Title):定义图形视图标题。

c.始地址(Start Address):定义采样缓冲区内容。当图形被更新时,采样缓冲区内容亦更新下按时缓冲区内容。对此话栏允许输入符号和C表达式。当显示类型为“Dual Time”时,需要输入两个采样缓冲区首地址。

d.数据页(Data Page):指明选择的采样缓冲区来自程序、数据还是I/O空间

e.采样缓冲区(Acquisition Buffer Size):用户可以根据所需定义采样缓冲区的尺寸。例如当一次显示一帧数据时,则缓冲区尺寸为1。若用户希望观察串行数据,则定义缓冲区尺寸为1,同时允许左移数据显示。

f.索引递增(Index Increment)定义在显示缓冲区中每隔几个数据取一个采样点。

g.显示数据尺寸(Display Data Size)此参数用来定义显示缓冲区大小。一般地,显示缓冲区尺寸取决于“显示类型”选项。对时域图形,显示缓冲区尺寸等于要显示的采样点数目,并且大于等于采样缓冲区尺寸,若显示缓冲区尺寸大于缓冲区尺寸,则采样数据可以左移到显示缓存显示。对频域图形,显示缓冲区尺寸等于FF帧尺寸,取整为2的幂。

h.DSP数据类型(DSP Data Type

DSP数据类型可以为;

32比特有符号整数;

32比特无符号整数;

32比特浮点数;

32比特IEEE浮点数;

16比特有符号整数;

16比特无符号整数;

8比特有符号整数;

8比特无符号整数;

i.Q 值(Q-Value):采样缓冲区中的数始终为16进制数,但是它表示的实际数取值范围由Q值确定。Q值为定点数定标值,指明小数点所在的位置。Q值取值范围为0----15,假定Q值为XX,则小数点所在的位置为从最低有效位向左数的第XX位。

j.采样频率(Sampling Rata(HZ))对时域图形,此参数指明在每个采样时刻定义对同一数据的采样数。假定采样频率为XX,则一个采样数据对应XX个显示缓冲区单元。由于显示缓冲区尺寸固定,因此时间轴取值范围为0----(显示缓冲区尺寸/采样频率)。对频域图形,此参数定义频率分析的样点数。频率的取值范围为0----采样率/2

k.数据绘出顺序(Plot Data From)此参数定义从采样缓冲区取数的顺序:

从左至右:采样缓冲区的第一个数被认为是最新或最近到来数据;

从右至左:采样缓冲区的第一个数被认为是最旧数据。

l. 左移数据显示(Left-Shifted Data Display):此选项确定采样缓冲区与显示缓冲区的哪一边对齐。用户可以选择此特性允许或禁止。若允许,则采样数据从右端填入显示缓冲区。每更新一次图形,则显示缓存数据左移,留出空间填入的采样数据。注意显示缓冲区初始化为0。若此特性被禁止,则采样数据简单地覆盖显示缓存。

m.自动定标(Autoscale):此选项允许Y轴最大值自动调整。若此选项设置为允许,则视图被显示缓冲区数据最大值归一化显示。若此选项设置为禁止,则对话框中出现一新的设置项“Maximum----Value”设置Y轴显示最大值0

n. 直流量(DC Value)此参数设置Y轴中点的值,即零点对应的数值。对FFT副值显示,此区域不显示。

o. 坐标显示(Axes Display):此选项设置XY坐标轴是否显示。

p. 时间显示单位(Time Display Unit)定义时间轴单位。可以为秒(S)、毫秒(MS)、微秒(S)或采样点。

q. 状态条显示(Status Bar Display):此选项设置图形窗口的状态条是否显示。

r. 幅度显示比例(Magnitude Display Scale):有两类幅度显示类型;线性或对数显示(公式为20*logX))。

s. 数据标绘风格(Data Plot Style):此选项设置数据如何显示在图形窗口中。

Line:数据点之间用直线相连;

Bar:每个数据点用竖直线显示。

t. 栅格类型(Grid Style):此选项设置水平或垂直方向底线显示。有3个选项:

No Grid:无栅格;

Zero Line:仅显示0轴;

Full Grid:显示水平和垂直栅格。

h. 光标模式(Cursor Mode):此选项设置光标显示类型。有3个选项:

No Cursor:无光标;

Data Cursor:在视图状态栏显示数据和光标坐标;

Zoom Cursor:允许放大显示图形。方法:按住鼠标左键,拖动,则定义的矩形框被放大。

(六)实验步骤:

1        运行安装程序,安装CCS软件(选做);

2        设置软件仿真模式(Simulator);

3        设置硬件仿真模式(Emulator);

4        启动CCS软件;

5        创建新的工程:mysine.pjt

6        加入test.c,及test.cmd

7        编译连接生成test.out可执行文件;

8        单步或者断点调试程序,观察寄存器及变量的值;

9        运行可执行文件;

10    查看xyw的时域及频域波形图;

11    载入wave1k+500.dat,查看输入信号时域和频域波形;

12    输出x到外部文件testx.dat,输入外部文件testx.datx;(选做)

 () 参考程序

本实验的C语言参考程序test.c参考如下:

#include "c54math.h"

#pragma DATA_SECTION (x,".x")

DATA x[256];

#pragma DATA_SECTION (y,".x")

DATA y[256];

#pragma DATA_SECTION (w,".x")

DATA w[256];

 

short oflag;

void    main()

{  

    int i;

       for(i=0;i<256;i++)

       {

     x[i]=i*0x1000;   

      y[i]=i*0x500;    

       }

       sine( x, x, 256);

       sine( y, y, 256);

       for(i=0;i<256;i++)

       {y[i]=y[i]/100;

       x[i]=x[i]/100;

       w[i]=x[i]/2+y[i]/2;}

   

       for(;;){}; 

}

 

参考链接命令文件:test.cmd

-c              

-l  rts.lib

-l  c54math.lib

-stack 0x200

-heap 0x200

 

 

MEMORY

{

 

 PAGE 0:

        INT_PM_DRAM:                    origin = 0080h, length = 1380h

         EXT_PM_RAM:                     origin = 1400h, length = 0ec00h

      

 PAGE 1:

        INT_DM_SCRATCH_PAD_DRAM:        origin = 0060h, length = 20h

        INT_DM_1:                       origin = 0080h, length = 01380h

        EXT_DM_RAM:                     origin = 1400h, length = 0ec00h

             

}

 

SECTIONS

{

 

        .text   :    {} > INT_PM_DRAM   PAGE 0

        .cinit  :    {} > INT_PM_DRAM   PAGE 0

        .switch :    {} > INT_PM_DRAM   PAGE 0

        .data   :    {} > INT_DM_1      PAGE 1

        .stack  :    {} > INT_DM_1      PAGE 1

        .bss    :    {} > INT_DM_1      PAGE 1

        .sysmem :    {} > INT_DM_1      PAGE 1

        .const  :    {} > INT_DM_1      PAGE 1

        .dout   :    {} > INT_DM_1      PAGE 1

        .x      :    {} > EXT_DM_RAM    PAGE 1, ALIGN   (2048)

        .r      :    {} > EXT_DM_RAM    PAGE 1, ALIGN   (2048)

 

}

(八)实验思考:

1CCSSimulator Emulator的区别是什么?

2CCS数据文件的格式是什么?

 

 

 

 

 

 

 

 

 

 

 

阅读(9621) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~