各位:
最近在研究多核dsp-c6678。大概了解dsp c6788和主机host之间是通过pcie进行数据交互。
我的疑问如下:
对于host to dsp
1.
host端 如何把存在host的内存ddr中的数据发送给pcie。
2.
dsp端 如何从pcie获取数据,并存放到dsp的内存ddr上。
对于dsp to host
1.
dsp端,如何把dsp内存中的处理结果发送给pcie。
2.
host端, 如何从pcie上获取结果。并存放到host的主机内存中。
谁能讲讲这四个过程的大致原理。谢谢!
Andy Yin1:
主要是涉及到一个in-outboud地址转换,首先需要配置好地址转换关系。
每个设备内部有一段PCIe data memory,在out输出时,将数据写到PCIe data memory,PCIe硬件会对改地址段进行输出地址转换为PCIe总线地址,向外发送;对于接收端,接收到PCIe总线地址后,根据相应的inbout地址转换map转换成内部地址,然后PCIe会自动将接受的数据写到内部转换后的地址。
C6678 PCIe user guide中有相应的In-outbound地址转换说明。
Armstrong:
回复 Andy Yin1:
Andy Yin1
主要是涉及到一个in-outboud地址转换,首先需要配置好地址转换关系。
每个设备内部有一段PCIe data memory,在out输出时,将数据写到PCIe data memory,PCIe硬件会对改地址段进行输出地址转换为PCIe总线地址,向外发送;对于接收端,接收到PCIe总线地址后,根据相应的inbout地址转换map转换成内部地址,然后PCIe会自动将接受的数据写到内部转换后的地址。
C6678 PCIe user guide中有相应的In-outbound地址转换说明。
mike lee1:
回复 Andy Yin1:
Andy Yin1,您好
我是不是可以这么理解:device1的0x1230_0000映射到了device2的outbound region0(0x6000_0000),OB_SIZE=1MB,是不是就意味着0x1230_0000开始的1MB地址的内容都自动传输到了device2的region0?如果起始地址为0x1230_0000的1MB内存中内容有变化,那region0需要什么操作才会同步于起始地址为0x1230_0000的1MB中的内容呢?
谢谢!
dong zhang5:
楼主您好,我现在也在研究这个问题,想向您请教,方便加个联系方式吗