西电dsp定点实验分解 下载本文

内容发布更新时间 : 2024/10/18 14:17:27星期一 下面是文章的全部内容请认真阅读。

班级:021131班 组别: A组

实验一——VISUALDSP++的使用入门

一、实验目的

实验一的主要目的是熟悉VISUAL DSP++的开发环境。针对ADSP-Blackfin533 DSP,利用几个用C、C++和汇编语言写成的简单例子来描述 VISUAL DSP+十编程环境和调试器(debugger)的主要特征和功能。对于运行在其它类型Blackfin处理器的程序只需对其链接描述文件(.LDF)做一些修改,就可用于其它芯片或者ADSP-Blackfin533的硬件仿真。在目录…\Blackfin\ldf下有每种处理器类型的链接描述文件,可供参考。

二、实验设备

PC机

三、实验内容

实验一包括4个基本练习:

练习一:启动Visual DSP++ 4.0,建立一个用C源代码的工程(Project),同时用调试器来评估用C语言所编写代码的性能;

练习二:创立一个新的工程,修改源码来调用一个汇编(asm)程序,重新编译工程,用调试器来评估用汇编语言所写程序的性能;

练习三:利用调试器的绘图(plot)功能来图形显示一个卷积算法中的有关数据的波形;

练习四:利用调试器的性能统计功能(Statistical profile)来检查练习三中卷积算法的效率。利用所收集到的性能统计数据就能看出算法中最耗时的地方。

练习一——运行C程序

在练习一中,将创立和运行一个C程序,源文件在…\\Blackfin讲义\\参考实验程序\\Tutorial\\dot_product_c子目录。

1. 实验步骤

l) 进入Visual DSP+十并打开一个工程(Project)

进入 Visual DSP++,显示Visual DSP++的集成开发和调试环境窗口(Integrated Development and Debugger Environment,简称IDDE)。

选择菜单File 中Open 打开文件…unit_1\\dot_product_c \\dotprodc.dpj。 VisualDSP++环境将装载dotprodc工程,并列出相应的源文件。在输出窗口(Output Window)中显示简要信息。

Dotprodc工程中有3个文件,定义数组和计算数组点积和的两个C语言源文件 dotprod_main.c(主程序)、dotprod.c(子程序)以及一个描述程序和数据存储位置的链接描述文件dotprodc.ldf。 2) 编译 dotprodc工程

在菜单 Project中选择 Build Project来对工程进行编译。此时,输出窗口显示程序编译时的各种状态信息(包括出错和编译进程信息)。当编译检测到错误时,将在输出窗口出现相应的出错信息,用鼠标双击它,编译器将自行打开源文件。这时可对源文件编辑、修改错误,再次进行编译。当编译不再有错时,输出窗口将显示“Build completed successfully”。

在本例子中,编译器会检测到一个未定义的错误,显示为:

“.\dotprod_main.c”,line 115:error #20:identifier“itn”is undefined itn i;

在输出窗口中对该行文字用鼠标双击,环境会自动打开 dotprod_main.c文件,并将光标定位在出错行。你可以看见单词“int”被错写成“itn”。

将该错误改正后,保存并重新编译。如果再没有错误出现,这时工程已被成功编译,就可以用VisualDSP++的debugger来调试程序。 3) 运行VsualDSP++调试器

在编译完成后,环境将自动进入调试状态,对于初次进入debugger,将显示对象选择对话框,在其中指定对象和处理器信息。

Debug Target Platform Session Name

选择值

ADSP-BF5xx Blackfin Family Simulators ADSP- BF5xx Single Processor Simulator

ADSP-BF533 ADSP- BF5xx Single Processor Simulator

Processor

ADSP-BF533

若在调试过程中需定义不同的对象和处理器类型,选取菜单Sessions中NeW Session项来重新定义。NeW Session 对话框图7.2所示:

图7.2 NeW Session 对话框

用VisualDSP+十调试时,调试器会自动调入工程的可执行文件dotprodc.dxe。

在默认情况下,调试器会打开三个窗口:输出窗口(下)、反汇编窗口(右)、包括工程主文件dotprod_main.c的源代码窗口(左)。如图7.3所示,左窗的每一条C语句都对应右窗中的多条汇编指令: