搜索
您的当前位置:首页正文

DSP实验报告

来源:哗拓教育


《DSP原理及应用》

上 机 实 验 报 告 册

班级: 电科111班 姓名: 学号:

华中科技大学文华学院电子科学与技术系

2014年4月17日

《DSP芯片原理及应用》课程实验报告(一)

实验名称 实验时间 DSP集成开发环境CCS的使用 2014年 4 月 17日 姓 名 实验地点 合 作 者 实验小组 工程实训楼A507 第 组 实 验 人 学 号 实验性质 □验证性 □设计性 □综合性 □ 应用性 实验成绩: 评阅教师签名: 一. DSP开发系统的组成和结构。 包括主机和目标系统两部分。 主机方:最低层是JTAG,上面是调试器,再上面是CCS的各种插件,包括DSP/BIOS插件(实时调试),还用RTDX(实时数据交换) 目标系统:最底层是硬件和JTAG,向上是DSP/BIOS实时操作系统(这是可选的也可以没有操作系统,完全自己管理),再向上是应用程序. 二.如何建立和测试一个工程。 建立: 1.在项目菜单“project”中,选择“new”命令。在出现的“save new project as”对话框中,确定新工程的目录,选择保存工程项目文件的文件夹,输入工程项目文件名(*.mak),单击“保存”按钮退出。 2.将源文件(*.c和*.asm)、链接命令文件(*.cmd)、库文件(*.lib)、和头文件(*.h)等加入到工程项目中。 测试: 1.装载目标文件,选择“file”菜单中的“load program”命令,在对话框中选择所要装载的文件,单击“打开”按钮。 2.设置程序装入选项,在选项“option”中,选择“program load”命令,可打开“program load options”对话框。可选择构建后装载程序和程序装载后执行验证。 3.单步运行。单步进入,若源程序采用汇编指令,则该命令完成一条汇编指令的执行;若为C程序,将执行一条C指令,可进入语句内部调试。单步执行,每发出一条指令,执行一条或一段程序。单步跳出,可完成从子程序中跳出。执行到当前光标出,可使程序运行光标所在处。 4.实时运行。执行程序,点击“run”命令。暂停执行,选择“halt”命令。动画执行,选择“animate”命令。自由执行,选择“run free”。 三.建立工程需要的文件清单及每个文件的作用。 1、.h头文件. 作用:一般用于定义程序中的函数、参数、变量和一些宏单元,同库函数配合使用。 2、.lib库文件. 作用:提供了目标DSP芯片的运行支持,用于程序调用。 3、.c和.asm源文件 作用:volume.c 将输入缓冲的数据乘上一个增益后,存入输出缓冲; load.asm汇编延时子程序,可被C程序调用,控制运行时间;

vectors.asm用于存放中断向量表,定义一个复位入口点。 4、.cmd链接命令文件. 作用:用于定位内存,将块映射到存储器中。 5、.mak工程项目文件. 作用:用于新建工程文件夹的文件名。 四.思考题 1、rts.lib有何作用?其加载方法有几种? 主要作用:提供系统启动和建立C运行环境的代码,对目标系统提供实时运行支持。 加载方法有三种: 1、CMD文件操作:在CMD文件中添加命令:-l rts54x.lib。 2、右击Libraries,菜单中Add Files to Project。目标文件在CCStudio_v3.3/C5400/cgtools/lib/rts54x.lib。 3、在Build Options中设置:选择项目Project菜单中的Option;在出现的对话框中选择Linke,在Libraries选项中输入rts.lib。 《DSP芯片原理及应用》课程实验报告(二)

实验名称 实验时间 DSP指令系统与汇编程序设计 2014 年 4 月 24 日 姓 名 实验地点 合 作 者 实验小组 工程实训楼A507 第 组 实 验 人 学 号 实验性质 □验证性 □设计性 □综合性 □ 应用性 评阅教师签名: 实验成绩: 一.程序流程图。 二.主程序清单。 #include #include #define IsNum(n) (((n) <= '9') && ((n)>='0')) int find_MaxNumstr(char * dest, char * src ) { char * src_tmp = src; char * max_str = NULL; int max_len = 0; int cnt = 0; if(src == NULL) return 0; if(dest == NULL) return 0; while(* src_tmp) { if (IsNum (* src_tmp)) //如果* src_tmp为数字 { } cnt++; else { } src_tmp++; if(cnt > max_len ) //发现长度更长的数字 { } cnt = 0; max_len = cnt; max_str = src_tmp - max_len; } } if(cnt != 0) { } if(max_len != 0) { } return max_len; strncpy(dest,max_str, max_len); dest[max_len] = '\\0'; if(cnt > max_len ) //发现长度更长的数字 { } max_len = cnt; max_str = src_tmp - max_len; void main(void) { } char s[] = \"abc789999jhb5878\"; char out[10] = {0}; find_MaxNumstr(out,s); printf(\"%s\三.总结实验过程中调试所遇到的问题和解决方法,写出编程调试的经验和体会。 在编写实验程序之前,老师通过一个较为复杂程序的编写来来让我们了解编写程序的一般规范和程序编译链接及调试的一些经验。但由于第一次使用CCS开发环境,对于软件的操作还不是很熟练,一些过程会忘记操作,有时还会出现未定义的情况。选择关键字右键添加到Watch window来监视变量的值以及可以通过设置断点的方法来观察程序的状态,检查或修正变量,查看调用的堆栈、存储器和寄存器的内容等。这些功能在调试时都非常实用,在以后CCS的运用中要合理的使用这些调试手段。 四.思考题。 1. 编写汇编程序完成程序如下: .bss x,10 .bss y,1 STM #x,AR1 STM #9,AR2 LD #0,A Loop: ADD *AR1+,A BANZ Loop,*AR2- STL A,@y 的计算。 《DSP芯片原理及应用》课程实验报告(三)

实验名称 实验时间 2014 年 4 月 24日 姓 名 实 验 人 学 号 实验性质 实验小组 第 组 I/O实验 实验地点 合 作 者 工程实训楼A507 □验证性 □设计性 □综合性 □ 应用性 评阅教师签名: 实验成绩: 一.程序流程图。 开始 DSP初始化 1 While(1) 0 第一个灯亮 结束 调用子函数延时 第二个灯亮 第n个灯调用子函数延时 二.主程序清单。 .title \"LED1\" .global RESET .mmregs SP_INT .set 400h MAIN_PRG .set 01000h V_TBL .sect \"vectors\" RESET B START STM #0FFC0H, PMST .text START LD #0, DP STM #SP_INT, SP SSBX INTM ; LOOP RSBX XF CALL DEALY SSBX XF ;XF=1 ;XF=0 CALL DEALY B LOOP ;跳转回LOOP DEALY RPT #(0fff0h) ;循环 NOP RET .END 二.总结实验过程中调试所遇到的问题和解决方法,写出编程调试的经验及体会。 此实验是由DSP 通过I/ O 方式对指示灯进行操作, 即是向指示灯送数据。该实验中要求熟练运用DSP 的各种指令。I/O实验以前单片机和ARM也做过,所以程序方面还有一点基础,主要就是要DSP集成开发环境CCS平台上编译和调试相应的程序,由于时间关系,我们操作得还不是很熟练,只能跟着老师的步骤一步步来,出现问题也只能请教老师,直到程序编译正确。结合课本上相对应的例题和课件来解决实验中遇到的问题,让自己学到更多。 四.思考题 1.如何改变LED灯闪烁频率? 答:通过改变延时函数的时间可以改变LED灯闪烁频率。

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

Top