当dsp频繁访问sdram时, arm就无法访问ddr, 导致arm程序反应迟缓
dsp访问频率大概8us访问1次
arm上跑的linux系统, 可能是时间片远大于8us的缘故, 总是抢不过dsp, 当arm程序需要大量内存访问时问题尤为明显,程序跟死机一样.
我想问问TI的工程师, 在138的设计里, 对这种arm与dsp同时访问外部总线的情况是如何处理的,有没有办法互补影响
补充一下:DSP的程序运行在内RAM中,运行中访问的是用于数据采集的FPGA,是通过upp访问的,采集的数据存到DSP的内ram中,需要采集数据的时候,每8us有6us左右的时间用于数据传输,这个过程要重复运行几秒的时间。ARM的程序是运行在DDR中的,不太清楚ARM程序的加载方式是什么样的。应该是分段通过DMA或者upp传输的吧。
Tony Tang:
1. 修改SYSCFG的寄存MSTPRIn,配置master的优先级,如果希望DSP优先于ARM,则将DSP的配置值比ARM大。0代表最高优先级,7代表最低优先级。
2. 修改DDR的BPPBR寄存器的值,0x20是一个推荐值。
3. DSP访问DDR是什么方式?CPU访问还是EDMA访问?访问量多大?
总线竞争是存在的,但不应该有这么大影响。这里跟时间片没有关系。
liangzhu ma:
回复 Tony Tang:
DSP的程序运行在内RAM中,运行中访问的是用于数据采集的FPGA,是通过upp访问的,采集的数据存到DSP的内ram中,需要采集数据的时候,每8us有6us左右的时间用于数据传输,这个过程要重复运行几秒的时间。ARM的程序是运行在DDR中的,不太清楚ARM程序的加载方式是什么样的。应该是分段通过DMA或者upp传输的吧。