网站大量收购独家精品文档,联系QQ:2885784924

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

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

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
优秀毕业论文,完美PDF格式,可在线免费浏览全文和下载,支持复制编辑,可为大学生本专业本院系本科专科大专和研究生学士相关类学生提供毕业论文范文范例指导,也可为要代写发表职称论文提供参考!!!

舅舅篡篡篡舅曼曼璺璺璺鬯塑l鍪鋈鋈: 墼塑!燮』竺望塑垒皇垄燮堡塞堡垒叁丝垄墓 如何编写电力实时应用的运行在 DSP上的高效C代码 张浩,郭经红 国家电力公司电力自动化研究院通信研究所 【摘要】数字信号处理器(DSP)因其出色的处理能力,在包括电力应用在内的各个领域得到十 分广泛的应用。为了满足电力应用的高实时性的要求,需要为DSP编写高效的代码。 目前对DSP进行程序设计时,使用得最多的是c语言。本文介绍了DSP编程的特点, 并从代码的空间效率和时间效率两个方面提出一些提高c代码效率的方法。 【关键词】DSP,高效c代码,空间效率,时间效率,电力实时应用 1引言 c语言是为人们所熟知的计算机语言。它运用灵活,功能强大,受到大多数程序员的青睐,也自 然成为DSP程序设计的重要语言。目前,几乎所有的DSP都支持c语言和汇编语言的混合编程。但C 语言较之汇编语言具有可移植性强、可读性强和编程周期短等优势,并且其代码效率也接近汇编语言。 因此,大多数的DSP程序设计都是以c语言为主要设计语言,如何编写运行在DSP上的高效c代码成 为DSP程序设计者最为关心的问题。 2DSP编程的特点 用C语言编写运行在DSP上的代码和编写运行在台式机上的代码是不太一样的。因此,很多用c 语言编写代码(运行在台式机上的代码)的经验和原则,在对DSP进行c语言编程时,很可能不再适 用。 2.1DSP的存储容量有限 DSP芯片都会有片内存储单元,根据厂商和型号的不同而拥有不同的容量。一般片内存储单元的 容量都不大,即使扩展了外部存储单元,其总的容量也是比较有限的。另外,DSP对片内存储单元的 访问速度要比对外部存储单元的访问速度快很多[3]。因此,如果能将整个代码空间(包括程序空间 和数据空间)压缩到片内存储单元中,就可以极大地提高代码的执行速度。 2.2DSP代码的执行时间有限 DSP得到广泛应用的一个重要原因在于DSP在对数字信号进行数学处理时,体现出其无与伦比的 速度优势。因此,DSP的应用场合一般都是对执行时间有严格限制的场合。例如电网通信、数据采集、 输电保护和事故分析等都对系统的实时性提出了比较高的要求,通常系统的动作需要在很短的时间内 完成。 2005年怠办行、监信怠化年会论文集!软件开发技术 3编写高效的C代码 由于DSP程序设计具有存储容量限制和执行时间限制的两个主要的特点,所以高效的c语言程序 设计显得尤为重要。这里的高效指两个方面:空间效率高和时间效率高。空间效率高是指DSP代码尽 量占用较少的代码空间;时间效率高是指DSP代码尽量在较短的时间内执行完毕。 3.1提高代码的空间效率 一段代码所占用的代码空间主要包括两个方面:程序空间和数据空间。程序空间是指代码中的C 语言指令所占用的空间;数据空间是指代码中申明和定义的数组、变量和常量等所占用的空间。 为了提高代码的空间效率,下面列出了几点建议: a)减少常量的申明和定义,多使用预定义语句“#define”。对于常量数组的申明和定义应该尽量 减少,可能的话还可以通过对数据类型的调整来节省常量数组所占用的内存空间。对于一般的 常量,都需要用预定义语句“#define”来进行预定义。这样,在编译的时候,常量以立即数的 形式存在于程序空间中,但这并没有增加代码在程序空间上的开销。如果不使用预定义,而是 申明和定义了一些常量,这些常量都要在数据空间中占用一部分存储单元。 b)减少变量的申明和定义。在很多时候,我们都不能保证我们使用的变量数目是最少的。通常我 们会使用冗余的变量来增加代码的可读性。这在其他情况下是无可厚非的,但是在对DSP进 行程序设计的时候,我们需要保证我们使用了最少的变量。对于中转数据或临时存放数据的变 量而言,很多是不必要的,可以设法将其删除。这样做有助于减小代码的数据空间,同时还减 少了不必要的冗余操作,既提高的代码的空间效率,又提高了代码的时间效率。 c)尽量使用全局变量。在一般的C语言程序设计中,我们不提倡过多地使用全局变量,因为全局 变量的使用容易造成程序的结构模糊,函数之间

文档评论(0)

ygeorcgdw + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档