您好,我想问下在GE例程里,源地址/目的地址怎么和discriptor建立起关系的?
Uint32 message_src_dest[][2]=
{
{DDR_HOST_SIZE1_FDQ, GE_RX_FLOW_DDR }, /*DDR->DDR*/
{DDR_HOST_SIZE1_FDQ, GE_RX_FLOW_SL2 }, /*DDR->SL2*/
{SL2_HOST_SIZE1_FDQ, GE_RX_FLOW_DDR }, /*SL2->DDR*/
{SL2_HOST_SIZE1_FDQ, GE_RX_FLOW_SL2 } /*SL2->SL2*/
};
#define DDR_HOST_SIZE1_FDQ (TEST_QUEUE_BASE+11)
#define GE_RX_FLOW_DDR 0
#pragma DATA_SECTION(hostDescriptor_DDR,"QMSS_Data.Descriptor_DDR")
#pragma DATA_ALIGN (hostDescriptor_DDR, 128)
Uint8 hostDescriptor_DDR[DDR_HOST_DESCRIPTOR_NUM][GE_DESCRIPTOR_SIZE];
#pragma DATA_SECTION(packetBuffer_DDR_Size0,"PacketData.buffer_DDR")
#pragma DATA_SECTION(packetBuffer_DDR_Size1,"PacketData.buffer_DDR")
Uint8 packetBuffer_DDR_Size0[DDR_SIZE0_PKT_BUF_NUM][DDR_PACKET_BUFFER_SIZE0];
Uint8 packetBuffer_DDR_Size1[DDR_SIZE1_PKT_BUF_NUM][DDR_PACKET_BUFFER_SIZE1];
Qmss_DescMemRegionCfg descMemRegionsCfg[]=
{ /*The base address of descriptor region Size of each descriptor Number of descriptors
16*n,1<=n<=8192 2^(5+n), 0<=n<=15*/
{(Uint32)hostDescriptor_SL2, GE_DESCRIPTOR_SIZE, SL2_HOST_DESC_LINK_ENTRY_NUM},/*host descriptor in SL2*/
{((Uint32)hostDescriptor_LL2)+0x10000000, GE_DESCRIPTOR_SIZE, LL2_HOST_DESC_LINK_ENTRY_NUM},/*host descriptor in Core0 LL2*/
{((Uint32)hostDescriptor_LL2)+0x11000000, GE_DESCRIPTOR_SIZE, LL2_HOST_DESC_LINK_ENTRY_NUM},/*host descriptor in Core1 LL2*/
{((Uint32)hostDescriptor_LL2)+0x12000000, GE_DESCRIPTOR_SIZE, LL2_HOST_DESC_LINK_ENTRY_NUM},/*host descriptor in Core2 LL2*/
{((Uint32)hostDescriptor_LL2)+0x13000000, GE_DESCRIPTOR_SIZE, LL2_HOST_DESC_LINK_ENTRY_NUM},/*host descriptor in Core3 LL2*/
{(Uint32)hostDescriptor_DDR, GE_DESCRIPTOR_SIZE, DDR_HOST_DESC_LINK_ENTRY_NUM}/*host descriptor in DDR*/
};
在cmd文件中看到PacketData.buffer_DDR分配的空间是0x82000000,为什么在测试的时候是
[C66xx_0] GE transfer from 0x820c0000 to 0x820c2800, 1 packets x 64 bytes, 7281 cycles, 70 Mbps
[C66xx_0] GE transfer from 0x820c2800 to 0x820c5000, 1 packets x 128 bytes, 9261 cycles, 110 Mbps
[C66xx_0] GE transfer from 0x820c5000 to 0x820c7800, 1 packets x 256 bytes, 12534 cycles, 163 Mbps
[C66xx_0] GE transfer from 0x820c7800 to 0x820ca000, 1 packets x 512 bytes, 19558 cycles, 209 Mbps
[C66xx_0] GE transfer from 0x820ca000 to 0x820cc800, 1 packets x 1024 bytes, 31484 cycles, 260 Mbps
[C66xx_0] GE transfer from 0x820cc800 to 0x820cf000, 1 packets x 2048 bytes, 57306 cycles, 285 Mbps
[C66xx_0] GE transfer from 0x820cf000 to 0x820d1800, 1 packets x 4096 bytes, 107728 cycles, 304 Mbps
[C66xx_0] GE transfer from 0x820d1800 to 0x820d4000, 1 packets x 8192 bytes, 208948 cycles, 313 Mbps
这个地址是怎么设置的?为什么是src是0x820c0000而不是0x820000000 dst为什么是0x820c2800?