TI中文支持网
TI专业的中文技术问题搜集分享网站

C6748 TSCL/TSHL寄存器计数问题

您好,

我用了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:

谢谢分享!

赞(0)
未经允许不得转载:TI中文支持网 » C6748 TSCL/TSHL寄存器计数问题
分享到: 更多 (0)