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 有许多疑问、如下所示:
1、在 16.6 IPC 通信协议中:
是否可以在触发 IPCSET[3]中断时设置 IPCSET[4]~IPCSET[31]的任意一个或多个? 这样、在远程 CPU 的3个中断中、可以通过状态寄存器的值在3个中断过程中处理多个情况。
2、我们可以设置循环缓冲区中 IPC 消息的数量、但可以设置 循环缓冲区的大小吗?
3、 如何将数据复制到消息队列的循环缓冲区?
在上述代码中、"TxMsg.address =(uint32_t) CPU1Data;"将数据指针设置为 address、调用 IPC_sendMessageToQueue 函数时、数据复制也会发生?
此致、
绿色
绿色、
[引用 userid="306637" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/C2000-microcontrollers-forume/1132617/tms320f28388d-question-about-ipc"]是否可以在触发中断时设置 IPCSET[4]~IPCSET[31]中的任意一个或多个 IPCSET[31]? 这样、在远程 CPU 的3个中断中、可以通过状态寄存器的值在3个中断过程中处理多个情况。[/引用]在 C28x 中、只能将 IPC0-IPC3事件配置为在 CPU 上触发 IPC 中断。
但是、您可以通过在 IPCISR 代码中读取 IPCSTS 寄存器并根据代码决定要执行的操作、设置多个 IPC 标志4 - 31来处理许多情况。
[引用 userid="306637" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/C2000-microcontrollers-forume/1132617/tms320f28388d-question-about-ipc"]我们可以设置循环缓冲区中的 IPC 消息数,但我们可以设置 循环缓冲区的大小吗?[/quote否、请勿在 ipc.h /IPC.c 中更改任何宏 这些宏是 driverlib 的一部分、不能修改。
根据您的问题、我相信您希望增加发送到 CPU2的数据数量。 您需要更改以下内容
为此、请执行以下操作:
1)增加存储在 MSGRAM_CPU1_TO_CPU2中的 ReadData 数组的大小(0x3A000)
2) 2)将 ReadData 数组的大小与 for loop 的大小匹配
3) 3)将 TxMsg.dataaw1的大小增加到数组的大小。
使用代码的以下部分从 CPU1复制要发送到 CPU2的数据。 执行 IPC_sendMessageToQueue 时、它会向 CPU2发送 TxMsg.command、地址、数据1、数据2信息。
此致、
曼诺伊