77范文网 - 专业文章范例文档资料分享平台

DSP2812实验指导书第三部分

来源:网络收集 时间:2019-02-15 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

第4章 实验内容

实验一 编写一个以C语言为基础的DSP程序

一.实验目的

1.学习用标准C语言编制程序;了解常用的C语言程序设计方法和组成部分。 2.学习编制连接命令文件,并用来控制代码的连接。

3.学会建立和改变map文件,以及利用它观察DSP内存使用情况的方法。 4.熟悉使用软件仿真方式调试程序。

二.实验设备

PC兼容机一台,操作系统为Windows2000(或Windows98,WindowsXP,以下默认为Windows2000),安装Code Composer Studio 2.0软件。

三.实验原理

1. 标准C语言程序

CCS支持使用标准C语言开发DSP应用程序。当使用标准C语言编制的程序时,其源程序文件名的后缀应为.c (如:volume.c)。

CCS在编译标准C语言程序时,首先将其编译成相应汇编语言程序,再进一步编译成目标DSP的可执行代码。最后生成的是coff格式的可下载到DSP中运行的文件,其文件名后缀为.out。

由于使用C语言编制程序,其中调用的标准C的库函数由专门的库提供,在编译连接时编译系统还负责构建C运行环境。所以用户工程中需要注明使用C的支持库。 2. 命令文件的作用

命令文件(文件名后缀为cmd)为链接程序提供程序和数据在具体DSP硬件中的位置分配信息。通过编制命令文件,我们可以将某些特定的数据或程序按照我们的意图放置在DSP所管理的内存中。命令文件也为链接程序提供了DSP外扩存储器的描述。在程序中使用CMD文件描述硬件存储区,可以只说明使用部分,但只要是说明的,必须和硬件匹配,也就是只要说明的存储区必须是存在的和可用的。

3. 内存映射(map)文件的作用

一般地,我们设计、开发的DSP程序在调试好后,要固化到系统的ROM中。为了更精确地使用ROM空间,我们就需要知道程序的大小和位置,通过建立目标程序的map文件可以了解DSP代码的确切信息。当需要更改程序和数据的大小和位置时,就要适当修改cmd文件和源程序,再重新生成map文件来观察结果。另外,通过观察map文件,可以掌握DSP存储器的使用和利用情

— 1 —

况,以便进行存储器方面的优化工作。 4.程序设计要求 程序框图:

循环 计算x+y 数值运算 开设三个整型变量x,y,z 赋初值: x=1,y=2 输出结果到z 四.实验步骤

1.实验准备

设置软件仿真模式 2.建立新的工程文件

(1)双击桌面上图标,如右图: 启动Code Composer Studio 2.21。

(2)进行以下设置:

①菜单项 选择 ④点击完成设置

— 2 —

②输入 工程名 ③点击选取目录 D:\\dsp\\t1\\CProgram

图4.1.1 建立CProgram.pjt

3.编辑输入源程序 (1)C语言程序

-先新建源程序窗口:

-输入源程序:

int x,y,z; main() {

x=1; y=2; while ( 1 )

{

z=x+y; } }

图4.1.2 新建源文件

-保存源程序为CProgram.c:

②选择存储目录为 ③输入 文件名 ① 选择 菜单项 ④单击按 D:\\dsp\\t1\\CProgram

钮保存

— 3 —

图4.1.3 保存为c文件 (2)连接命令文件

-如同第(1)步操作,建立空的源程序窗口。 -输入连接命令文件内容:

-l rts2800.lib -stack 400h -heap 100 MEMORY {

PAGE 0 : PROG(R) : origin = 0x3E8000, length = 0x10000 PAGE 0 : BOOT(R) : origin = 0x3FF000, length = 0xFC0 PAGE 0 : RESET(R) : origin = 0x3FFFC0, length = 0x2 PAGE 0 : VECTORS(R) : origin = 0x3FFFC2, length = 0x3E

PAGE 1 : M0RAM(RW) : origin = 0x000000, length = 0x400 PAGE 1 : M1RAM(RW) : origin = 0x000400, length = 0x400 PAGE 1 : L0L1RAM(RW) : origin = 0x008000, length = 0x2000 PAGE 1 : H0RAM(RW) : origin = 0x3F8000, length = 0x2000 }

SECTIONS {

/* 22-bit program sections */

.reset : > RESET, PAGE = 0 vectors : > VECTORS, PAGE = 0 .pinit : > PROG, PAGE = 0

.cinit : > PROG, PAGE = 0

.text : > PROG, PAGE = 0

/* 16-Bit data sections */

.const : > L0L1RAM, PAGE = 1 .bss : > L0L1RAM, PAGE = 1 .stack : > M1RAM, PAGE = 1 .sysmem : > M0RAM, PAGE = 1

/* 32-bit data sections */ .ebss : > H0RAM, PAGE = 1 .econst : > H0RAM, PAGE = 1 .esysmem : > H0RAM, PAGE = 1 }-l rts2800.lib

-如同第(1)步操作,将文件存为:

— 4 —

D:\\dsp\\t1\\CProgram\\CProgram.cmd

(3) 将上述编译的源程序加入工程CProgram.pjt,

4.编译源文件、下载可执行程序 (1) 单击菜单“Project”、“Rebuild All”。

(2) 执行File?Load Program ,在随后打开的对话框中选择刚刚建立的

D:\\dsp\\t1\\CProgram\\debug\\CProgram.out文件。完成后,系统自动打开一个反汇编窗口“Disassembly”,并在其中指示程序的入口地址为“_c_int00”。

5.打开观察窗口

开启CPU寄存器观察窗口:单击菜单View->Registers->Core。

6.观察程序运行结果

这时,在“Disassembly”代表程序运行位置的绿色箭头指向程序的入口地址,程序将从此开始执行。

(1) 选择菜单中Debug->Go Main,CCS自动打开CProgram.c,程序会停在用户主程序入口main上,这从反汇编窗口和CProgram.c窗口中的指示箭头位置可以看出。 (2) 在内存观察窗口中观察变量的值:

选择“View”菜单中“Memory…”项,在“Memroy Window Options”窗口中的“Adress”项中输入&x,单击“OK”完成设置;“Memory”窗口中x的当前取值显示在第1个地址的后面。 (3) 将变量x、y、z分别加入观察窗口:

在源程序中双击变量名,再单击鼠标右键,选择“Add to Watch Window”。这时,这3个变量还未作初始化。

(4) 单步运行2次,在观察窗中观察到变量x、y被赋值。变化的值被显示成红色。同时在“Memory”窗口中也能观察到x和y值的改变。

(5) 再单步运行,可观察到z的值被计算出来。双击观察窗口中变量x、y在“Value”栏中的取值

并修改成其他取值,单步运行后观察结果。 (6) 双击观察窗口中变量x、y在“Value”栏中的取值,并修改成0;选择菜单Debug->Restart,返

回程序起点。 (7) 重新单步运行程序,观察在CPU寄存器窗口中,各寄存器使用情况,观察哪个寄存器参与了运

算。 7.内存映像文件

(1) 选择菜单Project->Build Options…,启动“Build Options”工程设置对话框。

(2) 单击“Linker”属性页,在“Map Filename”项中观察生成的map文件名和路径。

(3) 单击“取消”退出。

8.对照观察map文件和cmd文件的内容 (1) 选择菜单File->Open…,将找到D:\\dsp\\t1\\CProgram\\Debug目录,将文件类型改为“Memory Map

Files”,选择CProgram.map文件、打开。 (2) 打开CProgram.cmd文件。

(3) 程序的入口地址:map文件中“ENTRY POINT SYMBOL”中说明了程序入口地址(_c_int00)。 (4) 内存使用情况:

-map文件中“MEMORY CONFIGURATION”标明了程序占用RAM的使用情况,共占用aaH个存储单元。

-观察map文件中的“SECTION ALLOCATION MAP”段,可以看出CProgram.obj的入口地址为0x3e801e,这也是main函数的入口地址。

-用户堆栈段从400H开始,程序运行到main函数中后,变量x、y、z均开设在栈中。

— 5 —

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库DSP2812实验指导书第三部分在线全文阅读。

DSP2812实验指导书第三部分.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/466662.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: