工具/软件:Code Composer Studio
大家好、
我尝试使用28377中的 CLA 来处理如下所示的 for 循环:
在 file.cla 中、
对于(ii = 0;ii < 64;ii +){
sum = sum+vector[i];
}
Ave =总和/64;
我使用 GPIO 切换来测量时序、使用-02速度空间5;环路的成本仍然为35uS。 但是、如果我使用这样的愚蠢方法:
总和= 0;
sum = sum+vector1[0]+vector1[1]+vector1[2]+vector1[3]+vector1[4]+vector1[5]+vector1[6];
sum = sum+vector1[0]+vector1[1]+vector1[2]+vector1[3]+vector1[4]+vector1[5]+vector1[6];
sum = sum+vector1[0]+vector1[1]+vector1[2]+vector1[3]+vector1[4]+vector1[5]+vector1[6];
sum = sum+vector1[0]+vector1[1]+vector1[2]+vector1[3]+vector1[4]+vector1[5]+vector1[6];
sum = sum+vector1[0]+vector1[1]+vector1[2]+vector1[3]+vector1[4]+vector1[5]+vector1[6];
sum = sum+vector1[0]+vector1[1]+vector1[2]+vector1[3]+vector1[4]+vector1[5]+vector1[6];
sum = sum+vector1[0]+vector1[1]+vector1[2]+vector1[3]+vector1[4]+vector1[5]+vector1[6];
sum = sum+vector1[0]+vector1[1]+vector1[2]+vector1[3]+vector1[4]+vector1[5]+vector1[6];
sum = sum+vector1[0]+vector1[1]+vector1[2]+vector1[3]+vector1[4]+vector1[5]+vector1[6];
.
结果很有希望。 我尝试了定义
#pragma UNROLL (64)
对于(ii = 0;ii < 64;ii +){
sum = sum+vector[i];
}
运气差、我检查了时钟时间和 GPIO 切换、都没有变化。 顺便说一下、在 CPU 空间中、可以使用-O2和5很好地自动优化环路。
我可以做的是让 CCS 知道自动在*。cla 文件中展开循环。