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.

AM3358的PRU能访问GPMC控制的那些存储器设备的地址空间吗?

Other Parts Discussed in Thread: AM3358

我想用AM3358的PRU+GPMC来实现FPGA和ARM的交互,其中GPMC接有FPGA和nand flash,而PRU使用两个脚,一个作为外部中断引脚连到FPGA上,另一个作为GPO输出引脚。那PRU的读中断来时,说明FPGA的数据准备好了,PRU把数据读到DDR3上,于是ARM不需要实时去操作;而ARM写完数据后改变pru的引脚,FPGA检测到后去读取数据。请问这种方案行吗?

  • 这样做从理论上是可以的,但是,感觉在这个场景下用PRU,能获得的收益比较有限。

    用到PRU的时候,多数还是为了实现实时处理的特性,比如说,高速串口,1M以上这种速率的,要保证很大的吞吐量,你就可以用PRU来轮寻UART口的数据,从而很开的处理。但你的这里的设计,貌似初衷是为了offloading ARM的负载,。你不想让ARM去处理GPMC过来的数据,而改用PRU来做搬运工的角色,从PRU读GPI的状态,来读数据,这个没问题,但是ARM写的时候,是打算让ARM直接去写入到GPMC区域,然后ARM侧发中断给PRU,然后让PRU去拉高自己的GPO管脚。个人感觉除了读方面有所增益之外,写的时候获得的收益还是比较有限的。

    如果为了高效的通信,为啥不考虑使用同步burst方式+EMDA来做这个数据的读写处理呢

  • 你好,

            因为FPGA可以从外部世界(如网口)获取到数据需要给ARM处理的,同时ARM也可以将外部世界的数据(如USB数据)传给FPGA让其操作,所以数据流方向可能是“FPGA->ARM”,也可能是“ARM->FPGA”,而GPMC不是全双工的,我这边假设使用中断来进行区分,每次均由ARM发起GPMC的读写操作,那使用synchronous burst + DMA方式时,应怎样通知ARM那边以确定此时是需要进行读(即,从FPGA传数据到ARM)还是写(即从ARM传数据到FPGA处理)呢?