大家反映OMAPL138(C6748)等器件的EMIFA的CPU读写效率比较低,这是由于芯片内部总线架构决定的。如果应用中需要高速的EMIFA读写,建议采用EDMA方式取代CPU读写。
如下图所示,采用EDMA方式,可以实现32byte的连接读写时序。(由于SCR的BR7将大于32byte的访问分成以32byte为单位的访问,所以是最多只能连续32byte的连续访问)。
在配置EDMA时,如果希望达到最高吞吐率,要将A count设为32byte,或者32byte的倍数。
这里要注意的是:通常EMIFA连接FPGA以FIFO形式访问,地址固定,这种配置下,EMIFA在传输A count个数的数据期间,地址会自动增加,这需要FPGA为该FIFO端口预留出足够的地址空间,以免访问超出该端口的范围。
xiaohuan lee:
您好,我现在想使用EMIFA去读FIFO数据,然后使用dsplink的示例把数据传到ARM端。您知道如何在dsplink的示例中调用EMIFA读FIFO数据的这段程序吗?