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.
请问以消息队列的方式交换数据,相比ipc_ex1_basic_c28x1的IPC_sendCommand,优点是什么呢
队列函数会创建和管理消息对象的循环缓冲区。 顾名思义,如果在另一端有机会读之前,发送了多个消息,那么队列函数将会给这些消息排队。 IPC_sendCommand 函数并没有集成此队列,由调用 IPC 函数的应用程序在发送另一个之前检查确认 / 响应。
我感觉有点类似FIFO的机制
您好 感谢帮助
您说的可以理解,还想请问一下,消息队列缓冲区的大小,可以调整吗?
工程里driverlib文件夹是exlude的,
下面的driverlib.lib链接的是
\TI\c2000ware\C2000Ware_4_01_00_00\driverlib\f2838x\driverlib\ccs\Debug\driverlib.lib
应该是编译好的一个库文件吧
您好 感谢帮助
还是有以下疑问请教您 麻烦了
工程文件列表中的driverlib.lib,链接的路径是TI\c2000ware\C2000Ware_4_01_00_00\driverlib\f2838x\driverlib\ccs\Debug\driverlib.lib,这个看起来是一个编译好的库文件,您提到的IPC_BUFFER_SIZE参数,我在ipc.h文件中找到了它的定义
问题1. 这个IPC_BUFFER_SIZE,按照注释,定义的是消息的数量,circular buffer的大小,我还是没有找到定义
问题2.不论是ipc.c,还是ipc.h,甚至整个driverlib文件夹,都是exclude的。那么修改这些exclude的C文件或者头文件的内容,会有用吗?
问题3.在ipc.h文件中定义了IPC_MSGQ_SUPPORT
为什么如图所示的ipc.c文件中的那部分代码,会显示未参与编译的状态呢,我在工程的搜索,并没有找到#undef IPC_MSGQ_SUPPORT这样的语句
问题4.数据是如何复制到消息队列的循环buffer里的呢
以上代码中,TxMsg.address = (uint32_t)CPU1Data;设定了数据的指针给address
那么数据复制是在调用IPC_sendMessageToQueue函数时发生的吗?
只需要driverlib.lib文件和相关的头文件。最后一个文件夹“driverlib”是exclude from build的,它只能用于参考/查看driverlib代码。
其余的几个问题我等有回复了一起更新在你的新帖里吧