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.

tci6638 IPC例子MessageQ的几个问题



编译TCI6638_linux_elfe/x44_compute的IPC例子,编译成功,我有几个问题:

1.在Ipc_start( )之前需要添加Ipc_transportConfig(&TransportRpmsg_Factory),是否意味着将TransportRpmsg作为默认的传输方式?

2.在例子工程里的App.c,App_setup()里创建并注册了一个TransportQMSS,而在整个ARM Host的工程里却找不到MessageQ_setTransportId(msg,TRANSPORT_QMSS_ID)函数,参考MCSDK UG Chapter Developing Transports,若要以TransportQMSS作为传输方式,则需要绑定messege与TransportQMSS ID,然后调用MessageQ_put( )发送。

3.MessageQ_put( )函数的功能仅仅是将消息加入到队列,然后立刻返回,还是会等待消息发送完成之后返回?我尝试在MessageQ_put( )前后哦分别获取内核时钟到微妙级别,发现message包的大小对MessageQ_put( )的运行时间无太大影响。

4.如果我要测MessageQ的发包速率应该怎么测?在哪个函数前后获取时间差?

  • 1)需要看你的程序中对&TransportRpmsg_Factory 配置是什么,这个通过C代码看,不难理解

    2)只是放到message queue中

    3)可以把本地发送时的时间填到MSG_HEADER中,ARM侧拿到时,和本地接收时间对比,当然前提时ARM和本地时间要同步或者固定的OFFSET要知道