This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

关于程序运行时间的问题:



请问在连接仿真器和硬件板的情况下怎么会出现如下问题?

1.  C6747翻转一个GPIO口的电平怎么会需要78-80个时钟周期呢?(如      GPIO_SET_DATA01|=0x01  ;   GPIO_CLR_DATA01|=0x01  ;   这样两条语句)

2.做150次8192点的FFT需要的时间多达6.8秒左右,这个会是如何引起的?(脱离硬件纯软件仿真模式运行大概需要1.1秒)

3.执行一条赋值语句大概需要20个时钟周期。

以上时间主要是利用CCS4.1.2菜单栏下的targe--->Clock来观察的。

谢谢!

  • 你好,C6747硬件平台运行一个赋值语句的周期,建议你读定时器的值来查看。而150次8192点的FFT需要的时间,在硬件和软仿上,编译器设置选项,程序代码存放位置都一样吗?不同的代码存储位置都会影响程序的运行速度。

  • 首先感谢你的回答,不过我接触DSP不久,对你说的方法不大明白,不过会好好学习研究一下。我刚才用C6747板测试了一下运行时间(ccs4.1.2):程序如下

    void DELAY_US(Uint16 dly)    //延时程序

    {

            Uint16 i=0,j;

            for(i=0;i<dly;i++)

                    for(j=0;j<299;j++);

    }

    void main(void)  //主程序

    {

             while(1)

             {

                       GPIO_CLR_DATA45=0X00010000;

                       DELAY_US(1);

                       GPIO_SET_DATA45=0X00010000;

             }

    }

    利用仿真器连接板子的方式进行测试。在target-->clock-->enable下发现执行GPIO_CLR_DATA45=0X00010000;这条语句需要的时间是17个时钟;执行DELAY_US(1);这条语句需要的时间是32063个时钟。请问这个是不是不正常了?

    谢谢

  • 你好,不建议使用target-->clock-->enable来查看C6000芯片的程序执行的时钟周期。

  • 不好意思,我自己没有提好关键问题点。

    1. 在C6747上做1024点的FFT需要的时间差不多为5ms,请问这有可能是什么原因?