DSP实验报告—实验 4  编写一个汇编和 C 混合的 DSP 程序

该博客围绕C与汇编语言混合编程实验展开,介绍了实验目的、设备、原理。实验原理涉及C和汇编语言开发优缺点、混合编程方法等。详细阐述了实验步骤,包括准备、导入工程、修改程序等,最终得出混合编程可实现原算法并优化关键模块的结果。

 

 

一.实验目的

1.在了解纯 C 语言程序工程和汇编语言程序工程结构的基础上,学习在 C 工程中加入汇 编编程的混合编程方法。

2.了解混合编程的注意事项。

3.理解混合编程的必要性和在什么情况下要采用混合编程。

 

二.实验设备

PC兼容机一台,操作系统为WindowsXP或者以上版本,安装了Code Composer Studio v5软件。

 

三.实验原理

1. 使用 C 语言开发应用程序的优缺点

2. 使用汇编语言开发应用程序的优缺点

3. 如何混合编程

4.何时使用混合编程技术

5.使用混合编程时的注意事项

6.实验程序解释

实验程序提供了一个使用 C 与汇编程序混合编程的实例,是一个用汇编语言模块优化 自己编制的应用程序的实例。

首先用户拿到的是一个纯用 C 语言开发的工程,再根据假设,需要将其中一个模块改 造成用汇编语言模块优化的模块。通过实验过程,用户可充分了解混合编程可以采取的步 骤和方法。

 

四.实验步骤

1.实验准备

确保已经设置过CCS(参看:第三部分、第一章、四)。此实验为软件仿真

2.导入工程、浏览程序内容、编译生成和下载可执行代码

(1)导入工程:

点击菜单 File->Import,在弹出的窗口中展开Code Composer Studio,选择Existing CCS Eclipse Projects,点击NEXT下一步:

设置搜寻路径。点击Browse,选择要导入的工程所在路径为

C:\ICETEK\F28335-V5.0\Lab104-CASM,然后确定,可以看到Discovered projects 里面显示 了我们要导入的工程 Lab104-CASM,点击 Finish 完成:

 

这里有一个选项Copy projects into workspace,若选中,则工程文件会被拷贝到workspace目录,若不选中,则工程还在原始位置。这里我们可以先选中。

此时Project Explorer里面可以看到刚才导入的工程:

(2)展开工程管理窗口中CASM工程,双击Source下的CProgram.c项,打开 CProgram.c 源程序窗口。可以看到,程序完成了一个简单的运算,它先开设了三个全局变量x、y、z,然后分别给 x 和 y 赋初值,再在循环中计算x+y,结果赋值给 z。        

(3)点击按钮 ,CCS 会自动编译、连接和下载程序 (4)运行程序,观察结果:在程序中有“在此加软件断点”注释的语句上,右键->Breakpoint- >Breakpoint 添加软件断点;将变量z加入变量观察窗口(选中“z”,右键->Add Watch Expression…);运行程序到断点,观察变量 z 的结果值。

3.修改程序

(1)修改算法部分成单独子程序:我们假设在循环中进行的运算是需要用汇编语言程序模块 优化的部分。首先将“z=x+y;”语句修改成“z=add(x,y);”,在程序头上,变量定义之前 加上一行

int add(int a,int b);

在程序末尾,添加如下子程序。

int add(int a,int b)

{

return(a+b);

}

如此,将算法搬移到一个C语言的子程序模块中实现。

修改完成后,在工程上右键->Build Project编译程序,编译完成后,若上次调试状态没有结束,则CCS会提示Lab10-CASM.out被修改,是否重新下载,这里我们选择是,则新编译出来的out文件被加载到dsp中。

 

运行到断点,观察运行结果,判断是否子程序能完全与原程序一样完成算法。

(2)将子程序移入 add.c:在工程上右键 New->File,命名为 add.c,点击 Finish 完成。

(3)在add.c上右键->Resource Configurations->Exclude from build,去掉Debug和Release前面的勾,点击OK确认。若是选中这2项,add.c文件在工程中显示为灰色,则编译时就不会编译add.c文件。

(4)设置工程编译时生成汇编文件:

在工程上右键->properties,打开工程属性。在Build->C2000   Compiler->Advanced Options->Assembler options 中,勾上

Keep the generated assembly language(.asm) file (--keep_asm,-k)

重新编译工程

(5)将工程中的add.c换成add.asm:

在工程管理窗口中用鼠标右键单击add.c,选择“Delete”;用鼠标右键单击工程,选择“Add Files…”,选择C:\ICETEK\workspace-28335\Lab104-CASM\Debug\add.asm。若add.asm文件显示灰色,表示未包含在工程中,在 add.asm上右键->Resource Configurations->Exclude from build,去掉 Debug 和Release前面的勾,点击OK确认

(6)重新编译、下载、运行程序并观察结果。由于add.asm是CCS编译器从 add.c编译得来的,下面要做的就是手工调整add.asm中的汇编代码,从而实现优化处理。

4.退出 CCS

 

五.实验结果

通过实验可知,使用混合程序编程,在可以完全实现原来算法的同时,可以优化关键的算法模块。

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沄边小卖部

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值