background image

使用

C/C++语言编写基于 DSP 程序的注意事项

1、 不影响执行速度的情况下,可以使用 c 或 c/c++语言提供的函数库,也可以自己设计函
数,这样更易于使用

“裁缝师”优化处理,例如:进行绝对值运算,可以调用 fabs()或 abs()

函数,也可以使用

if...else...判断语句来替代。 

2、 要非常谨慎地使用局部变量,根据自己项目开发的需要,应尽可能多地使用全局变量和
静态变量。

 

3、 一定要非常重视中断向量表的问题,很多朋友对中断向量表的调用方式不清楚。其实中
断向量表中的中断名是任意取定的,

dsp 是不认名字的,它只认地址!!中断向量表要重

新定位。这一点很重要。

 

4、 要明确 dsp 软件开发的第一步是对可用存储空间的分析,存储空间分配好坏关系到一个
dsp 程序员的水平。对于 dsp,我们有两种名称的存储空间,一种是物理空间,另一种是映
射空间。物理空间是

dsp 上可以存放数据和程序的实际空间(包括外部存储器),我们的数

据和程序最终放到物理空间上,但我们并不能直接访问它们。我们要访问物理空间,必须借
助于映射空间才行!!但是映射空间本身是个

“虚”空间,是个不存在的空间。所以,往往是

映射空间远远大于实际的物理空间,有些映射空间,如

io 映射空间,它本身还代表了一种

接口。只有那些物理空间映射到的映射空间才是我们真正可访问(读或写)的存储空间。

 

5、 尽可能地减少除法运算,而尽可能多地使用乘法和加法运算代替。 

6、 如果 ti 公司或第三方软件合作商提供了 dsp lib 或其他的合法子程序库供调用,应尽可能
地调用使用。这些子程序均使用用汇编写成,更为重要之处是通过了

tms320 算法标准测试。

而且,常用的数字信号处理算法均有包括!!

7、 尽可能地采用内联函数!!而不用一般的函数!!可以提高代码的集成度。 

8、 编程风格力求简炼!!尽可能用 c 语言而不用 c++语言。我个人感到虽然 c++终代码长了
一些,好象对执行速度没有影响。

 

9、 因为在 c5000 中 double 型和 float 型均占有 2 个字,所以都可以使用,而且,可以直接

int 型赋给 float 型或 double 型,但,尽可能地多使用 int 数据类型代替!这一点需要注

意!!

 

10、 程序最后至少要加上一个空行,编译器当这个空行为结尾提示符。 

11、 大胆使用位运算符,非常好用!! 

12、 2003 年 6 月份从 ti 的网站上下到了关于 tms320c67x 系列 dsp 的快速算法库,于是,
tms320c5000 和 c6000 全系列的快速算法库都问世了,这些算法库均可供 c/c++语言直接
调用,优化程度

100%,实际编程时尽可能地使用(下载时可以同时下载到说明文档和

ascii 源程序,可以根据自己需要作出修改,修改前最好做个备份)。

C 语言中 auto,register,static,const,volatile 的区别

(1)auto