用C6455做SPI接口和SRIO接口。C6455做从SPI,32位,SPI中断优先级高于SRIO。
在单独使用SPI接口时,没有出现异常。但是如果同时处理SPI接口数据和SRIO接口数据,时间长后数据会SPI数据会完全停止或SPI数据会暂时中断一会,观察程序运行,发现SPI接口曾出现两种异常:
1.程序会卡死在读SPI中DDR数据前的判断SPCR是否准备好的位置中(程序段中用while语句做判断)
2.程序会慢读一拍DDR数据, 比如主SPI发数据0x0002后,6455读上来的确是上次已发的0x0001数据,但观察DDR数据,DDR数据已变为0x0002。
此时,SRIO数据一直没有异常。降低主SPI时钟后,还有存在这个问题。
请大神们支招。