This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

【C6670】BCP 和 SRIO 冲突问题



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?

  • 你这是参考的哪个例子,pdk中有独立测试使用BCP的例子,与SRIO等无关,如Bcp_testProject就是一个独立测试BCP工作在不同模式的例子。

  • Andy 你好

    参考的是Bcp_exampleProject,但是我同样查看了Bcp_testProject,

    在 System_init() 函数中,初始化BCP instance的时候同样也有srio,和上述代码块是一样的。


    PS: 硬核应用中,包括bcp fftc 和 srio ,都有一个_osal.c的文件,在同时应用这些硬核时,

    是不是要重新整合一个公用的 _osal.c文件?

    若要重新整合,其中有若干宏定义并不一致,比如 QMSS_HW_SEM , 那么如何解决这样的冲突?

    谢谢!