TI中文支持网
TI专业的中文技术问题搜集分享网站

C6678 Keystone SRIO例程传输数据问题

在论坛下载的Keystone_SRIO例程中,有几个问题没弄清楚

1.loopbak测试srio传输的是什么数据?

2.程序中,例如使用SWRITE事务时,Keystone_SRIO_LSU_transfer(&lsuTransfer);函数中,RIO_LSU_REG2寄存器写的地址ocalDspAddress=0x10802200是不是就是要发送的数据所在的寄存器地址?

3.0×10802200所在地址是Core0 L2 SRAM,难道就是测试发送的随机数据吗?

4.我要是想发送自定义的数据,是不是把这个地址改为要发的数据地址就行了?

谢谢!

Bruce Yang:

请专家帮忙解答下,这样理解对吗。谢谢

Bruce Yang:

Thomas,您好,非常感谢您得回复,

我用的是6678EVM

还有个问题,我在测试SRIO NO LOOP模式时,配置如下:

1.设置循环模式SRIO_Loopback_Mode loopback_mode= SRIO_NO_LOOPBACK;

2.

SRIO_Packet_Type packet_type[]=

{

SRIO_PKT_TYPE_SWRITE   ,

// SRIO_PKT_TYPE_NWRITE   ,

// SRIO_PKT_TYPE_NWRITE_R ,

// SRIO_PKT_TYPE_NREAD    ,

//SRIO_PKT_TYPE9_STREAM  ,

//SRIO_PKT_TYPE11_MESSAGE

};//我只测试SWRITE

3.

#define DSP0_SRIO_BASE_ID 0xA0

#define DSP1_SRIO_BASE_ID 0xB0

#define SRIO_DEFAULT_TEST_SPEED 1.25   //1.25  2.5  3.125  5.0

4.

SRIO_2DSP_Test()函数下,srio通道设置为:srio_cfg.srio_1x2x4x_path_control= SRIO_PATH_CTL_1xLaneA;

只是用laneA

5.测试参数改为

SRIO_Multiple_Test_Config test_2DSP_cfg=

{

SRIO_PATH_CTL_1xLaneA, /*multiple_port_path*/

   /*packet_type               source                                                   dest                                                size*/

   {{0,                        0,                                                      0,                                                   0},   /*port0 is not availible for this case*/

   {0,                         0,                                                      0,                                                   0},   /*port1 is not availible for this case*/

   {SRIO_PKT_TYPE_SWRITE,     CORE0_LL2_HOST_SIZE1_FDQ,                               DSP1_SRIO_BASE_ID+SRIO_RX_FLOW_CORE1_LL2,            1024*1024},   /*port2*/

   {SRIO_PKT_TYPE_SWRITE,      ((Uint32)&packetBuffer_LL2_Size1[0][0])+0x10000000,     ((Uint32)&packetBuffer_LL2_Size1[1][0])+0x10000000, LL2_PACKET_BUFFER_SIZE1}}    /*port3*/

};

设置选择测试参数

transferParam= &test_2DSP_cfg.transfer_param[2];

测试结果:

1.如果不注释

/*On Turbo Nyquist EVM only lane 2 and 3 are connected between 2 DSPs*/

srio_cfg.blockEn.bLogic_Port_EN[0]= FALSE;

srio_cfg.blockEn.bLogic_Port_EN[1]= FALSE;

运行结果如下:

[C66xx_0] SRIO test between two DSPs start……………………………………..

[C66xx_0] Initialize main PLL = x10/1

[C66xx_0] Initialize DDR PLL = x20/1

[C66xx_0] configure DDR at 666 MHz

[C66xx_0] SRIO path configuration 1xLaneA                        

[C66xx_0] SWRITE   from 0x     809 to 0x      b3, 1048576 bytes, completion code = 4

2.如果注释上面两条语句后,会卡在while(0==(srioRegs->RIO_SP[i].RIO_SP_ERR_STAT&

CSL_SRIO_RIO_SP_ERR_STAT_PORT_OK_MASK));

我的问题是:

1.我只有一个EVM6678,想看看SRIO发出的数据,想先用频谱分析仪大概测试下是不是所设置的频率。所以用NO LOOPBACK,用探针测试SRIO的金手指txn1 or txp1。用一块DSP,没有SWITCH,只执行SWRITE,SRIO金手指会有数据吗?

2.请问DSP0_SRIO_BASE_ID和DSP1_SRIO_BASE_ID是做什么用的???

3.completion code = 4代表什么错误啊,在哪能了解这种错误信息?

4.为什么开启端口0、1会开在那呢?

5.是不是必须有一个parter才能测试no loopback或者SRIO_EXTERNAL_LINE_LOOPBACK,不论是什么类型的事务???

十分感谢!!!

coolloog:

回复 Thomas Yang1:

你好

我在跑SRIO例程中的NO LOOPBACK模式时,我想查看两块板子接受收和发送是不是一样,在Memory Browser输入你上面提到的待发送数据在内存中的地址0x10802200。但是在两块EVM中的0x10802200地址的数据信息不一样,如下图  ,如果我想指定地址里的数据发送应该怎么改例程

赞(0)
未经允许不得转载:TI中文支持网 » C6678 Keystone SRIO例程传输数据问题
分享到: 更多 (0)