您好,
我用了C6748的板子,用TSCL/TSHL寄存器测得程序运行时间为2.4s,但是CCS5.5中跑完的实际时间远大于这个数(大概几分钟),请问这是什么原因呢?
Shine:
"但是CCS5.5中跑完的实际时间远大于这个数(大概几分钟)" 这个几分钟是怎么测出来的?通过观察GPIO管脚?
user5188149:
回复 Shine:
您好,我用的emulator,设置断点,用秒表测出来是几分钟。相同的程序段,用TSCL/TSCH得到指令周期数,转换为时间,是2.4s左右
user5188149:
回复 Shine:
Shine Zhang,您好,这是我的cmd文件和map文件
cmd文件:
-ml0 -stack 0x30000-heap 0x030000-m ais_write.map/* =========================================================================* * Specify the System Memory Map * * =========================================================================*/MEMORY{ L2: o = 0x00800000 l = 0x00040000 /* 256K RAM */ share: o = 0x80000000 l = 0x00020000 /* 128K RAM */ L1P: o = 0x00E00000 l = 0x00008000 /* RAM */ L1D: o = 0x00F00000 l = 0x00008000 /* RAM */ dsp_ddrii: o = 0xc2000000 l = 0x1000000}
/* =========================================================================* * Specify the Sections Allocation into Memory * * =========================================================================*/SECTIONS{ .cinit > dsp_ddrii /* Initialization Tables */ .pinit > dsp_ddrii /* C++ Constructor Tables */ .const > L2 /* Constant Data */ .switch > dsp_ddrii /* Jump Tables */ .text:_c_int00 > 0xc2000000 .text > dsp_ddrii /* Executable Code */
.bss > L2 /* Global & Static Variables */ .far > L2 /* Far Global & Static Variables */ .stack > L2 /* Software System Stack */ .sysmem > dsp_ddrii /* Dynamic Memory Allocation Area */ .cio > dsp_ddrii /* C I/O Buffer */ .vecs > dsp_ddrii /* Interrupt Vectors */
}
.map文件
MEMORY CONFIGURATION
name origin length used unused attr fill———————- ——– ——— ——– ——– —- ——– L2 00800000 00040000 00030f7e 0000f082 RWIX L1P 0e00000 00008000 00000000 00008000 RWIX L1D 00f00000 00008000 00000000 00008000 RWIX share 80000000 00020000 00000000 00020000 RWIX dsp_ddrii c2000000 01000000 00042e7c 00fbd184 RWIX
我有以下几点疑问:
1、寄存器和秒表,两种方法得到的时间哪一种才是程序实际运行的时间呢?
2、寄存器TSCL/TSCH的原理是什么?它输出的是程序运行的所有指令周期数吗?会不会有些延迟不计入它的输出?
3、从map文件中可以看出,L2 RAM 利用率比较高,会不会由此造成某种延迟,导致寄存器不计数?如果会,如何修改cmd能更好提高程序运行速度呢?
期待您的回复!
user5188149:
回复 Shine:
感谢您的耐心解答。
根据您的回复,以寄存器的时间为准,我可不可以理解为秒表不准是因为emulator?如果我把程序烧写到flash,它的运行速度就是寄存器测得的速度是吗?
Shine:
回复 user5188149:
谢谢分享!
TI中文支持网
