各位专家好!
请问:
我现在想通过6678的SRIO接收来自
FPGA的数据,DSP作为从属。用的是
论坛给的KI_STK_V1.1的SRIO例程,在test between 2 DSPs的程序段里修改了加粗行:
修改后的代码如下:
SRIO_Loopback_Mode loopback_mode= SRIO_NO_LOOPBACK; uiDspNum=1;if(SRIO_NO_LOOPBACK==loopback_mode) //test between 2 DSPs[/*DSP0 is the master for test, DSP0 Direc
tiO or send message to DSP1.DSP1 is the slave for test, it monitor the doorbell and messageinterrupt to detect the received data*/ if(0==uiDspNum) [ SRIO_2DSP_Test(); ] else [ srio_cfg.device_ID_routing_config= dsp1_device_ID_routing_config; srio_cfg.uiNumDeviceId= sizeof(dsp1_device_ID_routing_config)/ sizeof(SRIO_Device_ID_Routing_Config); msg_cfg.message_map = DSP1_message_map; msg_cfg.uiNumMessageMap= sizeof(DSP1_message_map)/sizeof(SRIO_RX_Message_Map); srio_cfg.msg_cfg= &msg_cfg;
serdesLinkSetup.linkSpeed_GHz= SRIO_DEFINED_TEST_SPEED;//传输速度 2.5G srio_cfg.srio_1x2x4x_path_control= SRIO_PATH_CTL_1xLaneA;//1x srio_identify_used_ports_lanes(srio_cfg.srio_1x2x4x_path_control);
/* lane 0 connected to FPGA*/ srio_cfg.blockEn.bLogic_Port_EN[1]= FALSE; srio_cfg.blockEn.bLogic_Port_EN[2]= FALSE; srio_cfg.blockEn.bLogic_Port_EN[3]= FALSE; KeyStone_SRIO_Init(&srio_cfg); SRIO_PktDM_init(); /*accumulation is only used for the 2nd DSP for two DSPs test*/ QMSS_Accumulation_config(); puts("DSP ready as slave for test"); while(1); ]]
请问:
1.用这个程序可以接受到FPGA的数据吗,还需要配置其他寄存器吗?除了标示的这些行,还需要修改其它内容吗?
1.串并转换是在SERDES里面自动进行的吗,需不需要程序控制?
2.接收到的数据要怎么看呢?是直接读目的寄存器吗?
3.接收到的包的包头是如何解析的呢?是自动解析的吗?还是需要通过程序解析?