如何编写电力实时应用的运行在DSP上的高效C代码

2013-12-12 10:46:22 电力信息化  点击量: 评论 (0)
摘要:数字信号处理器(DSP)因其出色的处理能力,在包括电力应用在内的各个领域得到十分广泛的应用。为了满足电力应用的高实时性的要求,需要为DSP编写高效的代码。目前对DSP进行程序设计时,使用得最多的是C语
摘要:数字信号处理器(DSP)因其出色的处理能力,在包括电力应用在内的各个领域得到十分广泛的应用。为了满足电力应用的高实时性的要求,需要为DSP编写高效的代码。目前对DSP进行程序设计时,使用得最多的是C语言。本文介绍了DSP编程的特点,并从代码的空间效率和时间效率两个方面提出一些提高C代码效率的方法。
 
关键字:DSP,高效C代码,空间效率,时间效率,电力实时应用
 
1 引言
C语言是为人们所熟知的计算机语言。它运用灵活,功能强大,受到大多数程序员的青睐,也自然成为DSP程序设计的重要语言。目前,几乎所有的DSP都支持C语言和汇编语言的混合编程。但C语言较之汇编语言具有可移植性强、可读性强和编程周期短等优势,并且其代码效率也接近汇编语言。因此,大多数的DSP程序设计都是以C语言为主要设计语言,如何编写运行在DSP上的高效C代码成为DSP程序设计者最为关心的问题。
 
2 DSP编程的特点
用C语言编写运行在DSP上的代码和编写运行在台式机上的代码是不太一样的。因此,很多用C语言编写代码(运行在台式机上的代码)的经验和原则,在对DSP进行C语言编程时,很可能不再适用。
2.1 DSP的存储容量有限
DSP芯片都会有片内存储单元,根据厂商和型号的不同而拥有不同的容量。一般片内存储单元的容量都不大,即使扩展了外部存储单元,其总的容量也是比较有限的。另外,DSP对片内存储单元的访问速度要比对外部存储单元的访问速度快很多【3】。因此,如果能将整个代码空间(包括程序空间和数据空间)压缩到片内存储单元中,就可以极大地提高代码的执行速度。
2.2 DSP代码的执行时间有限
DSP得到广泛应用的一个重要原因在于DSP在对数字信号进行数学处理时,体现出其无与伦比的速度优势。因此,DSP的应用场合一般都是对执行时间有严格限制的场合。例如电网通信、数据采集、输电保护和事故分析等都对系统的实时性提出了比较高的要求,通常系统的动作需要在很短的时间内完成。
 
3 编写高效的C代码
由于DSP程序设计具有存储容量限制和执行时间限制的两个主要的特点,所以高效的C语言程序设计显得尤为重要。这里的高效指两个方面:空间效率高和时间效率高。空间效率高是指DSP代码尽量占用较少的代码空间;时间效率高是指DSP代码尽量在较短的时间内执行完毕。
3.1 提高代码的空间效率
一段代码所占用的代码空间主要包括两个方面:程序空间和数据空间。程序空间是指代码中的C语言指令所占用的空间;数据空间是指代码中申明和定义的数组、变量和常量等所占用的空间。
大云网官方微信售电那点事儿

责任编辑:和硕涵

免责声明:本文仅代表作者个人观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
我要收藏
个赞