Part Number:TMS320F28335
我用示波器测量GPIO翻转信号评估程序时间长短,其中有一个循环的程序,我用了两种方法进行测试:
第一种使用for循环
for(i=0;i<12;i++)
{
Tk0[i] = Tk1[i];
}
第二种为各个赋值
Tk0[0] = Tk1[0];
Tk0[1] = Tk1[1];
Tk0[2] = Tk1[2];
Tk0[3] = Tk1[3];
Tk0[4] = Tk1[4];
Tk0[5] = Tk1[5];
Tk0[6] = Tk1[6];
Tk0[7] = Tk1[7];
Tk0[8] = Tk1[8];
Tk0[9] = Tk1[9];
Tk0[10] = Tk1[10];
Tk0[11] = Tk1[11];
但是测试结果表明:第一种for循环的时间为3.6us,第二种方法时间为0.340us,请问一下为什么这两种方法有这么大的差别?
另外我也测试了二维矩阵乘法的程序执行时间,分别使用for循环方法和根据数学定义各项展开分别计算的方法,方法1的方法远远大于方法2。
Green Deng:
这个我觉得很正常啊,方法1包含了赋值+for运算,转换为汇编就知道对应的语句要差好多句。而方法2只有赋值运算。