各位专家好!
请问:
我现在想通过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 DirectIO or send message to DSP1. DSP1 is the slave for test, it monitor the doorbell and message interrupt 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.接收到的包的包头是如何解析的呢?是自动解析的吗?还是需要通过程序解析?