bcpInitCfg.BcpTunnel_txOpen = &srio_tx_open;
bcpInitCfg.BcpTunnel_txClose = &srio_tx_close;
bcpInitCfg.BcpTunnel_rxOpen = &srio_rx_open;
bcpInitCfg.BcpTunnel_rxClose = &srio_rx_close;
bcpInitCfg.BcpTunnel_send = &srio_send;
bcpInitCfg.BcpTunnel_recv = &srio_recv;
bcpInitCfg.BcpTunnel_freeRecvBuffer = &srio_freeRecvBuffer;
上面一组代码是 BCP 在初始实例的时候需要配置的,
在bcp_transport_srio.c中可以看到,赋值表达式右边的函数都是形如下面代码,返回 NULL 或者 0
Void* srio_tx_open (Void* hSrioCfg)
{
/* Do nothing */
return NULL;}
当工程没有用到 SRIO 作为其他用途时,BCP 工作正常,输出数据也是正确的。
但现在需要将 SRIO 与其他设备(FPGA)交换数据,这样一来,就需要重新配置开头那段代码,否则 BCP 的 RX/TX 都打不开
我不使用 SRIO 传输 BCP 数据。
请问
我怎样配置上述代码,才能保证我所使用的 BCP 只作为 LOCAL,而且不会影响到 SRIO?
Andy Yin1:
你这是参考的哪个例子,pdk中有独立测试使用BCP的例子,与SRIO等无关,如Bcp_testProject就是一个独立测试BCP工作在不同模式的例子。
Bear Melon:
回复 Andy Yin1:
Andy 你好
参考的是Bcp_exampleProject,但是我同样查看了Bcp_testProject,
在 System_init() 函数中,初始化BCP instance的时候同样也有srio,和上述代码块是一样的。
PS: 硬核应用中,包括bcp fftc 和 srio ,都有一个_osal.c的文件,在同时应用这些硬核时,
是不是要重新整合一个公用的 _osal.c文件?
若要重新整合,其中有若干宏定义并不一致,比如 QMSS_HW_SEM , 那么如何解决这样的冲突?
谢谢!