各位专家好!
我在自己的板子上已经调通了DSP-DSP的SRIO,但是在使用时发现,使用DirectIO模式传输,偶尔会出现传输时延过长的现象。
我使用的芯片是6678,程序是根据例子程序,结合自己板子的情况改的。无论我传输块大小如何,无论传输双方的地址是位于什么存储,都会出现这个问题。
我所谓的延时,是调用Keystone_SRIO_LSU_transfer 和 Keystone_SRIO_wait_LSU_completion两个函数的时间,使用TSCL寄存器测的。例如,我需要传输块长度为200KB的数据,正常情况下,测试时间为200000~300000 cycles之间,但是偶尔会出现9-11为十进制数的情况,例如4000000000 cycles,由于出现此种现象,导致了我程序的时序出了问题。但是根据Keystone_SRIO_wait_LSU_completion的返回值观察到,传输是正确无误的。
根据我的理解,Keystone_SRIO_LSU_transfer 只是在配置LSU寄存器,不需要很长时间,而Keystone_SRIO_wait_LSU_completion则是通过context bit来标识传输结束,如果不能得到context bit,则程序会一直循环。
现在我不怀疑是软件的配置有问题,怀疑是否我制板除了问题,我做出的两块板,有一块是正常的,另外一块出现了我所描述的现象,而DSP本身的工作貌似没有出现问题,只是接口出问题,想请教各位专家,能否在硬件方面给予我一些建议,让我有一些调试方向?
感谢您的关注!