一.实验目的
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
五.实验结果
通过实验可知,使用混合程序编程,在可以完全实现原来算法的同时,可以优化关键的算法模块。
该博客围绕C与汇编语言混合编程实验展开,介绍了实验目的、设备、原理。实验原理涉及C和汇编语言开发优缺点、混合编程方法等。详细阐述了实验步骤,包括准备、导入工程、修改程序等,最终得出混合编程可实现原算法并优化关键模块的结果。
1417

被折叠的 条评论
为什么被折叠?



