paradoxfx

【原创】用DSP编程需要注意的问题

0
阅读(3663)

1.编程标准

在用C语言进行DSP应用系统的开发时,除了要符合标准C的规范,还要遵循TI公司制定的算法表准,即expressDSP算法规范。

2.定点DSP实现浮点运算

TMS320F2812芯片属于定点DSP芯片,采用定点数进行数值运算,其操作数采用整形数,而一个整形数的最大表示范围取决于芯片所给定的字长,字长越长,所能表示的数的范围越大,精度也就越高。(TMS320F2812的字长为16位)DSP芯片内部的数据以2的补码的形式表示,每个16位数用一个符号位来表示数的正负。但是在该系统的软件

设计中,数学运算过程中的数不一定都是整数,而DSP芯片本身是不能处理小数的。本系统大部分软件都采用高级语言C语言编写的,为了充分利用高级语言的优越性,并简化数据处理过程,在编程中所有用到小数的地方一律以浮点小数表示,而把数据格式的转换这一工作交给CPU去处理。

3.采用高级语言编程中的限制

有些场合对代码的实时性要求比较高,此时C语言是难以满足的。其次,C语言存在着无法控制到的盲区,因为采用高级语言对寄存器进行操作时,是用指针来对地址进行操作的,相当于间接寻址,而TMS320F2812芯片内部的一些特定的寄存器是没有地址的,只能采用汇编语句对其进行操作。比如含有可屏蔽中断位“INTM”的状态寄存器ST0,ST1等。

在C语言编程时,如果在某些场合必须采用汇编语句,有两种方法可以采用:一种是直接在C语句中嵌入汇编函数,如asm(“ setc INTM”);这条语句即可对INTM为进行置位,另一种是编写可以符合ANSIC标准,可以被C语言调用的汇编函数。

Baidu
map