- 1、本文档共9页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
使用C/C++语言编写基于DSP程序的注意事项
1、 不影响执行速度的情况下,可以使用c或C/C++语言提供的函数库,也可以自己设计函 数,这样更易于使用“裁缝师”优化处理,例如:进行绝对值运算,可以调用fabs()或mbs() 函数,也可以使用if...else…判断语句来替代。
2、 耍非常谨慎地使用局部变量,根据口己项目开发的需要,应尽可能多地使用全局变量 和静态变量。
3、 一定要非常重视中断向量表的问题,很多朋友对中断向量表的调用方式不清楚。其实 中断向量表中的中断名是任意取定的,dsp是不认名字的,它只认地址! !中断向量表要重 新定位。这一点很重要。
4、 耍明确dsp软件开发的第一步是对可用存储空间的分析,存储空间分配好坏关系到一 个dsp程序员的水平。对于dsp,我们有两种名称的存储空间,一种是物理空间,另一种是 映対空间。物理空间是dsp上可以存放数据和程序的实际空间(包括外部存储器),我们 的数据和程序最终放到物理空I可上,但我们并不能直接访问它们。我们要访问物理空间,必 须借助于映射空间才行!!但是映射空间本身是个“虚”空间,是个不存在的空间。所以,往 往是映射空间远远大于实际的物理空间,有些映射空间,如io映射空间,它本身还代表了 一种接口。只有那些物理空间映射到的映射空间才是我们真正可访问(读或写)的存储空间。
5、 尽可能地减少除法运算,而尽可能多地使用乘法和加法运算代替。
6、 如果ti公司或第三方软件合作商提供了 dsp lib或其他的合法子程序库供调用,应尽可 能地调用使用。这些子程序均使用用汇编写成,更为重要之处是通过了 tms320算法标准测 试。而且,常用的数字信号处理算法均有包括J !
7、 尽可能地采用内联函数!!而不用一般的函数!!可以提高代码的集成度。
8、 编程风格力求简炼! !尽可能用C语言而不用C++语言。我个人感到虽然C++终代码长 了一些,好象对执行速度没有彫响。
9、 因为在C5000中double型和float型均占有2个字,所以都可以使用,而且,可以直 接将int型赋给float型或double型,但,尽可能地多使用int数据类型代替!这一点需要注 意!!
10、 程序最后至少要加上一个空行,编译器当这个空行为结尾提示符。
们、大胆使用位运算符,非常好用!! 12、2003年6月份从ti的网站上下到了关于tms320c67x系列dsp的快速算法库,于是, tms320c5000和C6000全系列的快速算法库都问世了,这些算法库均可供C/C++语言直接 调用,优化程度100%,实际编程时尽可能地使用(下载吋可以同吋下载到说明文档和ascii 源程序,可以根据自己需要作出修改,修改前最好做个备份)。
C 语占中 auto, register, static, const, volatile 的区别
auto
这个关键字用于声明变量的生存期为自动,即将不在任何类、结构、枚举、联合和函数 中定义的变量视为全局变量,而在函数屮定义的变量视为局部变量。这个关键字不怎么多写, 因为所有的变量默认就是auto的。
register
这个关键字命令编译器尽可能的将变量存在CPU内部寄存器中而不是通过内存寻址访 问以提髙效率。
static
常见的两种用途:
1>统计函数被调用的次数;
2>减少局部数组建立和赋值的开销.变量的建立和赋值是需要一定的处理器开销 的,特别是数组等含有较多元素的存储类型。在一些含有较多的变量并且被经常调用的函数 中,可以将一些数组声明为static类型,以减少建立或者初始化这些变量的开销.
详细说明:
1>、变量会被放在程序的全局存储区中,这样可以在下一次调用的时候还可以保 持原来的赋值。这一点是它与栈变量和堆变量的区别。
2>、变量用smic告知编译器,自己仅仅在变量的作用范围内可见。这一点是它与 全局变量的区别。
3>当static用来修饰全局变量吋,它就改变了全局变量的作用域,使其不能被别的 程序extern,限制在了当前文件里,但是没有改变其存放位置,还是在全局静态储存区。
使用注意:
1>若全局变量仅在单个C文件中访问,则可以将这个变量修改为静态全局变量, 以降低模块I可的耦合度;
2>若全局变量仅由单个函数访问,则可以将这个变量改为该函数的静态局部变量, 以降低模块间的耦合度;
3>设计和使用访问动态全局变量、静态全局变量、静态局部变量的函数时,需要 考虑重入问题(只要输入数据相同就应产生相同的输出)。
const
被const修饰的东西都受到强制保护,可以预防意外的变动,能提高程序的健壮性。它 可以修饰函数的参数、返回值,甚至函数的定义体。
作用:
1>修饰输入参数
对于非内部数据类型的输入参数,应该将“值传递”的方式改为const引用传
您可能关注的文档
最近下载
- 2025年包头铁道职业技术学院单招职业适应性考试题库完整版.docx VIP
- 2025年包头铁道职业技术学院单招职业适应性考试题库汇编.docx VIP
- 2024《企业现金流量管理问题研究国内外文献综述》7000字.docx VIP
- 交互设计(第2版)教学课件257.ppt VIP
- 2024年徐州幼儿师范高等专科学校高职单招职业技能测验历年参考题库(频考版)含答案解析.docx
- focus-pdca改善案例-提高护士对糖尿病患者胰岛素注射部位正确轮换执行率.pptx
- 2025年合肥通用职业技术学院单招职业技能考试题库及答案1套.docx VIP
- 装配式建筑预制构件运输与堆放—构件现场存放管理.pptx
- 儿保科的发展与规划.pptx
- 思想道德修养与法律基础说课PPT课件.ppt
文档评论(0)