TMS320C54x C编译器的使用
1. 前言
TMS320C54x 是TI公司针对通信应用推出的中高档16位定点DSP系列器件。该系列器件功能强大、灵活,较之TMS320C2xx ,具有以下突出优点:
(1)速度更快:40~100MIPS;
(2)指令集更为丰富;
(3)更多的寻址方式选择;
(4)两个40位的累加器;
(5)硬件堆栈指针;
(6)支持块重复和环型缓冲区管理。
TMS320C54x 的应用一般较为复杂,因此,完全采用汇编语言进行编程将是一件很困难、也很低效的事情。而C语言以其灵活性、易移植性,已成为单片机开发的一种趋势,对于更为复杂的DSP应用来说,更是如此。
TI公司为TMS320C54x提供了功能强大的C编译器,支持优化功能。下面就对使用TMS320C54x C编译器中的一些体会介绍给读者。作者在实践中使用的TMS320C54x C编译器的版本为1.10版,以下的讨论都基于该版本。
2. C语言的移植
在进行复杂算法开发时,一般的做法是先在PC上用高级语言(如C语言)进行仿真,然后再移植到DSP平台中。考虑到效率问题,可进一步进行手工汇编的调整。编译器的工作方式大致可分为两类:一类直接由高级语言产生目标代码;另一类则是先生成中间的汇编代码,再汇编成目标代码。TI公司提供的C编译器属于后者。这样,用户可方便地根据中间的汇编代码进行手工调整和改写。
在进行C语言移植时,涉及到两个问题:一是库函数的使用,二是字长问题。TI的TMS320C54x C编译器提供符合ANSI C的函数库。至于字长,要取决于硬件机器字长和操作系统,但一般来说,在不同的系统中,short型为16位,long型为32位,而int型却有所不同。如,在VC环境中,int型为32位,而对于TMS320C54x C编译器来说,int型则为16位。因此,在将C源程序由仿真环境向TMS320C54x平台移植时,应根据各变量的取值范围,尽可能地将int型归类为short型或long型。
3. 段的分配
虽然,C语言是一种相对高效的高级语言,并且TI