Other Parts Discussed in Thread: AM62P, SYSCONFIG
部件号: AM62P
主题: SysConfig 中讨论的其他器件
您好、
我尝试在 WKUP 和 MCU 之间建立 IPC、而我使用的 MCU+SDK 版本为 11.01.08。 当前状态是我可以从 WKUP 向 MCU 发送一条消息、而我想在从 WKUP 向 MCU 发送多条消息时确定邮箱 FIFO 队列中的消息数。
根据 TRM、我发现我需要读取 Mailbox_MSG_STATUS_y、Mailbox cluster0 Mailbox_MSG_STATUS 的地址为 0x290000C0。


在我的代码中、我使用的 FIFO ID 是 4。 根据我在“ipc_notify_V0_mailbox.h"中“中找到的公式、我在调用“IpcNotify_sendMsg"后“后读取了地址 0x290000D0、但我发现此寄存器的值没有变化(始终=0)。
我的问题是:
- Mailbox_cluster 和 Mailbox_fifo 之间的关系是什么? 哪个 mailbox_cluster dose mailbox_fifo_4 属于?
- 如果我想读取 fifo_4 的 Mailbox_MSG_STATUS、地址 0x290000D0 是否正确?
我在下面附上了测试代码。
uint32_t gClientId_low = 4u; // client id for low 16bit address
status = IpcNotify_registerClient(gClientId_low, ipc_notify_msg_handler_wkup_lowAddr, NULL);
IpcNotify_syncAll(SystemP_WAIT_FOREVER);
uint32_t low16bit_addr = 0x1234;
uint32_t high16bit_addr = 0x5678;
uint32_t* MAILBOX_MSG_STATUS_4 = (uint32_t*) 0x290200D0;
uint32_t msgCnt_mailbox4 = *MAILBOX_MSG_STATUS_4 & 0x0f;
status = IpcNotify_sendMsg(gRemoteCoreId[0], gClientId_low, low16bit_addr, 1);
uint32_t msgCnt_mailbox4_1 = *MAILBOX_MSG_STATUS_4 & 0x0f;
status = IpcNotify_sendMsg(gRemoteCoreId[0], gClientId_low, high16bit_addr, 1);
uint32_t msgCnt_mailbox4_2 = *MAILBOX_MSG_STATUS_4 & 0x0f;
BR、
Bomiao






