dweb期刊原稿20052005-0136 - 广电电器网new

dweb期刊原稿20052005-0136 - 广电电器网new

ID:34375134

大小:34.50 KB

页数:3页

时间:2019-03-05

dweb期刊原稿20052005-0136 - 广电电器网new_第1页
dweb期刊原稿20052005-0136 - 广电电器网new_第2页
dweb期刊原稿20052005-0136 - 广电电器网new_第3页
资源描述:

《dweb期刊原稿20052005-0136 - 广电电器网new》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、EXPERIENCEEXCHANGE经验交流TMS320C6416的软件编程优化■西安电子科技大学曾志斌■武警工程学院周子琛申振宁TI公司开发的TMS320C6416是目前业界性能最强的较长。为此,笔者采用混合编程进行系统软件开发。芯片之一,目前,它的最高频率为1GHz,指令执行的并在DSP系统编程中,合理利用系统的资源,可以有行度最高达到8,最大运行处理能力为8000MIPS。本文效地提高系统的性能。根据TI的C6416器件特性知道,就基于TMS320C6416芯片的软件编程及其优化进行研究。它支持8、16和32

2、位数据,它的指令执行的并行度最高可达到8,但是它要求这8条指令相互之间没有依赖关1器件简介系,并且数据存储地址单元须按字边界排列,因此,优嵌入式系统软件的优化与系统的资源息息相关。化好坏有讲究。TMS320C6416内部资源主要包括三部分:CPU内核、外虽然系统软件设计应着眼点于软件系统框架的制设和存储器。处理能力强大的CPU包括有2个数据通道定,但是如果没有良好的算法和控制策略,程序的效率A和B,每个通道有32个32位字长的寄存器组,每个要大打折扣。针对嵌入式开发,对于系统资源的利用尤通道包括4个功能单元(L,S

3、,M,D),每个功能单元负为必要,一般编程时需要注意下述事项。责完成一定的算术或者逻辑运算。A、B两通道的寄存(1)数据格式的选择器并不是完全共享,只能通过TMS320C6416提供的两个TIC6416在处理时是根据数据类型及自身资源进行交换数据通道1X、2X,才能实现处理单元从不同通道的,在编写C/C++代码时要小心。例如,数据能用int格的寄存器堆那里获取32位字长的操作数。外设包括为式表达的不要选long格式,因为TiC6416寄存器只有32CPU访问外围设备提供了无缝接口的灵活的外部存储接位长,选long格

4、式需要更多指令,而且会缩小功能单元口EMIFA和EMIFB,3个多信道带缓冲能力的串口选项。McBSP,每个最多可支持128多信道数字信号处理,1个在编写线性汇编代码时,为了充分利用系统资源,提供64数据通道访问的增强型EDMA。1个使得DSP很对于数据类型应切合实际,以便选用最好的指令。例容易通过PCI接口无缝连接到1个具有PCI功能的外部如,读取输入数据为12位宽的数据后进行点乘,最好主CPU上的PCI接口,1个16/32bits宽的异步并行接口选用short型数据类型,这样可以利用线性汇编指令HPI(它和PC

5、I共用相同引脚),3个定时器,还有专门针LDDW,一次就可以读取4个数据。在点乘时选用组合对Viterbi译码的VCM和Turbo译码的TCM等。它的内指令完成,它可以充分利用系统A、B通道每组32个寄存空间大,其内置的超大容量RAM达到1MB,片内存存器。放数据和参数使得访问速度加快。(2)内存依赖关系2系统编程为了最大化代码性能,C6000编译器尽可能将指令系统编程首先要有一个良好的开发环境,良好的开并行处理,但是要做到这点,就得确定指令间关系。如发环境有利于程序开发,从而能节省开发时间。这里选果一条指令需在另

6、一条指令执行后才能执行,那么这两用的是CCS2.2,它是集编程、编译、连接、实时调试、条指令就存在依赖关系。当编译器不能识别指令间是否跟踪及实时分析应用程序于一体的开发平台。独立时,就得告诉编译器它们之间的关系,可以通过关系统编程语言可以是纯C/C++语言、汇编语言或是键字‘restrict’或优化选项命令来通知。混合编程。采用纯C/C++语言编程方便,调试简单,但(3)合理编写循环体效率不高;采用纯汇编语言编程,代码效率高,实时性在DSP进行数据处理中,循环体是用得最多的,处强,但调试不方便,需要具有一定编程经验

7、,开发周期2005.1Microcontrollers&EmbeddedSystems67经验交流EXPERIENCEEXCHANGE理量最大,也是最应该注意的,坏的编写风格只会浪费}不必要的时间。一般应注意:在C代码内不要插入一个由于它没有指明存储单元的依赖关系,因此它每次汇编声明,在循环体内不要包含调用,循环体不要有过需要先执行一次求和运算后再进行下一次读数,然后才多指令;对于多重循环,如果内层循环体较短,可以考进行下一次求和,依次类推。为了提高效率,对它进行虑打破该循环体,与外部循环结合。如下改进。voidv

8、ecsum4(short*restrictsum,restrictshort*in1,(4)变量的声明restrictshort*in2,unsignedintN)对于内存相对充裕的系统,函数调用时尽可能采用{全局变量,这样可减少对变量的堆栈处理,同时也节省inti;了寄存器的使用,利于优化。#pragmaMUST_ITERATE(10);(5)流水线冲突问

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

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

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