实验3 C语言与汇编语言混合编程

实验3 C语言与汇编语言混合编程

ID:41033245

大小:772.00 KB

页数:4页

时间:2019-08-14

实验3 C语言与汇编语言混合编程_第1页
实验3 C语言与汇编语言混合编程_第2页
实验3 C语言与汇编语言混合编程_第3页
实验3 C语言与汇编语言混合编程_第4页
资源描述:

《实验3 C语言与汇编语言混合编程》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、实验 :编写一个汇编和C混合的DSP程序一.实验目的掌握一种采用C语言与汇编语言的混合编程的方法。二.实验设备PC兼容机一台,操作系统为Windows2000,安装CodeComposerStudio4.2软件。三.实验原理1.何时使用混合编程技术在CCS环境中,工程可以同时包含C语言程序和汇编语言程序。在软件开发工作中,通常以C程序为主,在C程序框架中加入汇编语言程序模块。不同模块可采用不同语言设计,尽量少用汇编语言设计程序。通常对于下述模块采用汇编设计:(1)强调处理速度的模块。(2)中断程序设计时设置中断向量表。(3)当需要绕开C编译器的规定,进行特殊操作时。

2、比如:C语言规定,程序不能访问程序代码区,而系统功能需要进行类似访问时可采用限制较小的汇编语言程序设计。2.进行混合编程的方法(1)用C语言完成设计后,运用CCS的软件仿真功能,充分测试程序,找到影响程序运行速度的瓶颈。(2)通过仿真尽可能缩小模块。(3)将找到的模块单独写成C语言子程序,存入独立的文件中。(4)采用CCS产生与该模块C语言程序相对应的汇编程序。(5)观察需要优化的模块的汇编结果,进行人工优化。(6)最后运用人工优化后形成的汇编程序模块,代替原来的C语言模块,进行编译。四.实验步骤1.实验准备:⑴双击桌面图标,启动CodeComposerStudio

3、。2.打开工程、浏览程序内容、编译生成和下载可执行代码:⑴打开工程:选择菜单“Project”中“ImportExistingCCS/CCEEclipseProject”菜单项:选择打开工程文件D:C55xExCASM⑵展开工程管理窗口中CASM工程,打开CProgram.c文件,可看到源程序如下:main(){nOut=0;while(1){for(i=255;i>0;i--)//生成滤波信号in[i]=in[i-1];xn=0xff*(cos(w1*n)+0.5*cos(w2*n));//500Hz与3000Hz正弦叠加n++;in[0]=xn;out[nO

4、ut]=fir(in,coeff,L);//调用滤波函数nOut++;/*breakpoint*/if(nOut>=256){nOut=0;}}}该程序完成了FIR低通滤波,滤波器采样率为8000Hz,截止频率为1200Hz,滤波器阶数为64。将500Hz与3000Hz正弦信号叠加生成滤波信号,然后调用FIR滤波子程序完成滤波。⑶编译、下载程序:选择菜单“Project”中“BuildActiveProject”菜单项,选择菜单“Target”中“DebugActiveProject”菜单项,“Target”中“LoadProgram”菜单项。(4)运行程序,观察结

5、果。在程序中有“breakpoint”注释的语句上加软件断点,通过图形显示窗口观察滤波效果。选择菜单“Tools”中“graph”菜单项选中“DualTime”在图形显示窗口中观察滤波效果。单击F8,程序全速执行,“shilt+F8”将程序停止。选择菜单“File”中“OpenFile”菜单项,选择路径:D:C55xExcasmDebug中CASM.Map文件,观察程序占用系统资源情况。3.修改程序:⑴修改FIR滤波子程序:采用汇编语言实现滤波过程,将fir.c文件移除所在工程,选中fir.c文件右键单击选中“Delete”,选择菜单“Project”中“Ad

6、dFilestoActiveProject”菜单项,选择路径:D:C55xEx,将文件fir.asm添加进工程。修改完成后,可以编译、下载、运行,观察运行结果,判断子程序是否能完全与原程序一样完成算法。⑵选择菜单“File”中“OpenFile”菜单项,选择路径:D:C55xExcasmDebug中CASM.Map文件,观察程序占用系统资源情况。⑶对比两次程序占用系统资源的情况。可以看出采用汇编语言编程,程序的执行效率更高,占用资源更少。4.退出CCS:五.实验结果使用混合程序编程,在可以完全实现原来算法的同时,可以优化关键的算法模块。六.问题与思考

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。