This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

OMAP138 DSP和ARM的冲突问题

DSP通过UPP启动中断采集数据进行处理,ARM的程序存储在DDR中,负责处理完的数据的显示,当DSP长时间占用upp资源进行数据采集的时候比如5秒,这时ARM会停止显示,过一段时间之后才开始从新工作。

我看资料上说,upp和DDR等外设都是通过SCR控制器之后,才能和ARM/DSP的内部进行数据交换的,所以是不是DSP占据upp进行数据传输,导致DDR的程序不能进入到ARM的cashe中造成的ARM程序断续执行的呢。我试过在DSP占据的过程中每次启动upp之间如果加延时的话,ARM就可以比较顺利的执行。如果是因为SCR的问题造成的冲突的话,这个问题还能解决吗?优先级方面ARM已经设置的要比DSP高了。

  • 这是一个系统优化的问题,针对你的问题可以分两部分进行调整。

    1. 通过MSTPRI0/1/2调整SCR上的master的优先级.

    2. DDR的PBBPR寄存器的PR_OLD_COUNT值需要调整为0x20左右。

    原因:“ARM停止显示”指的是LCD的DMA停止刷新数据,默认的LCD的优先级是5,uPP是4。PR_OLD_COUNT的默认值是0xff,这样的配置导致始终是最高优先的访问得到服务。