工具/软件:Code Composer Studio
您好!
我发现、从 不同文件调用时、同一函数的执行时间明显不同。 为什么? 还可以吗?
说明、
条件:CCS6.0;TMS320F28335/TMS320LF2407
我想测试 TMS320F28335的算术速度、因此我要使一 个简单的函数 运行。 但是 、在 main.c 和其他文件(非 main.c)之间调用同一函数时、执行时间会有所不同
a)函数在 main.c 中定义、执行时间为1.6us。
b)函数在 sub_program.c 中定义、执行时间为3.6us。
这与我测试 TMS320LF2407时的情况相同。
A)
#include "DSP2833x_Device.h" // DSP2833x 头文件包含文件
#include "DSP2833x_examples.h" // DSP2833x 示例包含文件
#include "DSP28335_ex.h"
#include "para_space.h"
#include "myinclude.h"
void sub_programmer3 (void)
{
TEMP1=0;temp2=0;temp3=0;temp4=0;temp5=0;temp1=1;temp2=1;temp3=1;temp4=1;temp5=1;
TEMP1=0;temp2=0;temp3=0;temp4=0;temp5=0;temp1=1;temp2=1;temp3=1;temp4=1;temp5=1;
TEMP1=0;temp2=0;temp3=0;temp4=0;temp5=0;temp1=1;temp2=1;temp3=1;temp4=1;temp5=1;
TEMP1=0;temp2=0;temp3=0;temp4=0;temp5=0;temp1=1;temp2=1;temp3=1;temp4=1;temp5=1;
TEMP1=0;temp2=0;temp3=0;temp4=0;temp5=0;temp1=1;temp2=1;temp3=1;temp4=1;temp5=1;
TEMP1=0;temp2=0;temp3=0;temp4=0;temp5=0;temp1=1;temp2=1;temp3=1;temp4=1;temp5=1;
TEMP1=0;temp2=0;temp3=0;temp4=0;temp5=0;temp1=1;temp2=1;temp3=1;temp4=1;temp5=1;
TEMP1=0;temp2=0;temp3=0;temp4=0;temp5=0;temp1=1;temp2=1;temp3=1;temp4=1;temp5=1;
TEMP1=0;temp2=0;temp3=0;temp4=0;temp5=0;temp1=1;temp2=1;temp3=1;temp4=1;temp5=1;
TEMP1=0;temp2=0;temp3=0;temp4=0;temp5=0;temp1=1;temp2=1;temp3=1;temp4=1;temp5=1;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
}
void main (void)
{
InitSysCtrl(); //PLL、看门狗、时钟
InitXintf16Gpio(); // configuer io,需要修改
DINT; //禁用 CPU 中断
InitPieCtrl(); //禁用 PIE 中断,清除所有 PIE 中断标志:
IER = 0x0000;
IFR = 0x0000; //禁用 CPU 中断并清除所有 CPU 中断标志:
InitPieVectTable(); //初始化 PIE 矢量表,打开 PIE 中断
configtestled(); // configuer io,需要修改
LED1=1;
//delay_time (10);
LED1=1;LED2=1; LED3=0; LED4=0;
Memcopy (&RamfuncsLoadStart、&RamfuncsLoadEnd、&RamfuncsRunStart);
InitFlash();
//delay_US (1)=10.5us
while (1)
{//示波器测试IO周期、用于测试CPU速度
//调用子程序sub 程序();sub_program3 ();两个程序相同,但是放的位置不一样
//同样的程序代码,为什么调用sub 程序速度慢了很多?;与sub 程序3 ()比较;
LED3=~LED3; // IO口电平
sub_program(); //test deley time 3.6us 子程序
//sub_programmer3 (); ///测试延迟时间 1.6us
}
}
B)
#include "DSP2833x_Device.h" // DSP2833x 头文件包含文件
#include "DSP2833x_examples.h" // DSP2833x 示例包含文件
#include "DSP28335_ex.h"
#include "para_define.h"
#include "myinclude.h"
//*
void sub_program()
{
TEMP1=0;temp2=0;temp3=0;temp4=0;temp5=0;temp1=1;temp2=1;temp3=1;temp4=1;temp5=1;
TEMP1=0;temp2=0;temp3=0;temp4=0;temp5=0;temp1=1;temp2=1;temp3=1;temp4=1;temp5=1;
TEMP1=0;temp2=0;temp3=0;temp4=0;temp5=0;temp1=1;temp2=1;temp3=1;temp4=1;temp5=1;
TEMP1=0;temp2=0;temp3=0;temp4=0;temp5=0;temp1=1;temp2=1;temp3=1;temp4=1;temp5=1;
TEMP1=0;temp2=0;temp3=0;temp4=0;temp5=0;temp1=1;temp2=1;temp3=1;temp4=1;temp5=1;
TEMP1=0;temp2=0;temp3=0;temp4=0;temp5=0;temp1=1;temp2=1;temp3=1;temp4=1;temp5=1;
TEMP1=0;temp2=0;temp3=0;temp4=0;temp5=0;temp1=1;temp2=1;temp3=1;temp4=1;temp5=1;
TEMP1=0;temp2=0;temp3=0;temp4=0;temp5=0;temp1=1;temp2=1;temp3=1;temp4=1;temp5=1;
TEMP1=0;temp2=0;temp3=0;temp4=0;temp5=0;temp1=1;temp2=1;temp3=1;temp4=1;temp5=1;
TEMP1=0;temp2=0;temp3=0;temp4=0;temp5=0;temp1=1;temp2=1;temp3=1;temp4=1;temp5=1;
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
}