通过 profile clock工具找出效率很低的部分,使用线形汇编继续优化。线性汇编语言是 C6000系列 DSP独有的一种编程语言,介于高级语言和低级语言之间。和标准的汇编语言不同的是,在编写线性汇编程序时可不必考虑指令的延时、指令的并行、寄存器的使用和功能单元的分配等,汇编优化器将根据代码的情况自动确定这些信息。汇编程序优化可通过对自动编译生成的汇编文件进行修改而进行。汇编优化其实就是根据以上各个方面的特点,采取针对性的方法,以获得尽可能高的程序效率。常用的汇编伪指令如下:
⑴ 定义一个可被汇编优化器优化且可被 C/C++当做函数调用的线性汇编代码段的伪指令:
label .cproc [ var1,[var2,…] ]
.endproc
⑵ 定义一个可被汇编优化器优化的线性汇编代码段的伪指令:
label .proc [ reg1,[reg2,…] ]
.endproc [ reg1,[reg2,…] ]
线性汇编优化时还需要考虑以下几个方面:① 平均分配使用功能单元,提高代码的并
行度。② 使流水线核心循环的时钟周期数昀小。