您当前的位置:五五电子网电子知识单片机-工控设备DSP/FPGA技术基于DSP混合编程关键问题的研究(三) 正文
基于DSP混合编程关键问题的研究(三)

基于DSP混合编程关键问题的研究(三)

点击数:7103 次   录入时间:03-04 11:44:39   整理:http://www.55dianzi.com   DSP/FPGA技术

采用了装载地址与运行地址分离的方式后,为了使程序正常运行,在初始化时,需要将.const段的内容从装载地址拷贝到运行地址内。这段程序可以在编译时由编译器自动生成。这还需要对软件所使用的库文件作简单的修改。该库名称即是rts.lib(表示不同类型的DSP,有2xx,25,50等等)。修改该库的方法是将源文件从库中提取出来,作修改,编译后再替代原有的文件。具体的操作如下:先执行DOS命令:
dspar -x rts.SRC boot.asm
这句的功能是从rts.src文件中提取出boot.asm文件。这个rts.src即是rts.lib的源文件。在boot.asm文件中能找到CONST_COPY这个标志量,为了实现所需要的功能它应被赋值为1。对boot.asm文件的编辑完成之后,就可以将其编译生成目标文件,执行语句:
dspa -v boot.asm
其中对于不同的DSP需要使用不同的参数,对于240xA来说,应该使用2xx来代替“”。语句执行完后会生成boot.obj文件。再执行语句:
dspar -r rts.lib boot.obj
这时它就替换了库里的同名文件。在编译时编译器就会自动增加拷贝.const段到数据空间的语句。这种方法不必修改程序,代价是牺牲了一定数据存储空间,时间开销主要出现在初始化中。这是最经济实用的方法之一。
使用代码工具
各种各样的代码生成工具可以大大增加编程的灵活性。除了前面提到的dspar与dspa两个指令外,C文法分析程序dsPAC.exe对.C文件进行文法分析,生成.IF中间文件,dspopt.exe对.IF文件进行优化,生成.OPT文件。此外,还有其它多种功能不同的代码工具。对于应用环境苛刻的程序,它们有利于分析如何对其进行优化。

混合编程的实际运用及结论
     本项目全面采用了C与汇编混合编程,采用这种方式是为了提高程序的运行效率,节省空间。本项目软件包括模拟量采集与计算,频率采集与计算,开关量、数字量采集与控制,总线通讯,历史数据备份,BIT等诸多功能;程序运行一方面依据mC/OS-II提供的时钟节拍并考虑数据采集分辨率的要求,另一方面需要兼顾总线上的大小定时周期。如果全部采用C语言编程,那么16路交流模拟量以16个点采样并计算时CPU资源紧张,而使用C与汇编混合编程,CPU利用率有超过5%的降幅。每个周期内CPU仍然有一定的空闲时间。这其中,数学运算函数也使用了TI提供的由汇编程序生成的库。
我们的实践证明,采用混合编程的软件更加契合一般嵌入式系统对时间和空间的严格约束。设计良好的混合编程软件既能有效地满足嵌入式系统对功能与性能的需求;同时,它也可以为程序的扩展和移植预留足够的空间。混合编程是嵌入式系统软件最优化的重要途径。

参考文献:
1.TMS320C1x/C2x/C2xx/C5x Assemble Language Tools User's Guide, Texas Instruments, 1999
2.TMS320C2x/C2xx/C5x Optimizing C Compiler User's Guide, Texas Instruments, 1999
3.TMS320C28x DSP Reference Guide, Texas Instruments, 2001




本文关键字:暂无联系方式DSP/FPGA技术单片机-工控设备 - DSP/FPGA技术