请问在连接仿真器和硬件板的情况下怎么会出现如下问题?
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来观察的。
谢谢!
noaming:
你好,C6747硬件平台运行一个赋值语句的周期,建议你读定时器的值来查看。而150次8192点的FFT需要的时间,在硬件和软仿上,编译器设置选项,程序代码存放位置都一样吗?不同的代码存储位置都会影响程序的运行速度。
SHENGLI CHEN:
回复 noaming:
首先感谢你的回答,不过我接触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个时钟。请问这个是不是不正常了?
谢谢
noaming:
回复 SHENGLI CHEN:
你好,不建议使用target–>clock–>enable来查看C6000芯片的程序执行的时钟周期。
SHENGLI CHEN:
回复 noaming:
不好意思,我自己没有提好关键问题点。
1. 在C6747上做1024点的FFT需要的时间差不多为5ms,请问这有可能是什么原因?