DSP

C6748芯片的运行频率设到最大300MHz,但实际运行速度很慢

2019-07-13 17:18发布

具体情况如下: 目的:通过c6748定时器控制其GPIO引脚输出特定的脉冲,用于控制 led 芯片 tlc5973的灰度; 遇到的问题:代码实际运行的时候发现脉冲周期比实际设定的定时周期大很多(定时器周期为设为4us,实际周期30多个us),相差很大,检查之后发现cpu实际运行速度根本达不到所设定的300MHz,写GPIO引脚的输出寄存器这一句代码都需要240纳秒,其他函数的运行时间也都比较长,普遍在10us左右。 编程环境及细节:我是在ccs开发环境下创建sys/bios工程中运行得出的结果,为了控制脉冲的变化,需要在定时中断中反复的重设定时周期并重启定时器,定时器的周期设置和重新启动使用的是sys/bios提供的函数Timer_setperiod()和Timer_start(),这两个TI官方提供的函数的运行时间也都在10us以上,因为定时器设为单次运行模式即一次定时中断后即停止,在中断中重新设置周期后再启动,这两个定时器函数在定时器中断中调用,二者的运行时间很长,导致最终GPIO引脚输出的脉冲周期超过所设长度。 PLL和PSC的设置都检查过了,编译器选型也都没有改过,应该是CCS软件默认设置,考虑过可能是调试状态的影响,试过在release模式下运行,结果还是异常,刚接触dsp,没经验,困在这个问题中很久了,急需高手指点迷津,在此先行谢过!