TI中文支持网
TI专业的中文技术问题搜集分享网站

AWR1642BOOST: 共享内存的问题

Part Number:AWR1642BOOST

代码位置:这个是SDK2.0版本的driver->mailbox的这个函数int32_t Mailbox_write(Mbox_Handle handle, const uint8_t *buffer, uint32_t size)中

他的代码中有一段是这样的

if((driver->remoteEndpoint != MAILBOX_TYPE_BSS) && (driver->cfg.chType == MAILBOX_CHTYPE_MULTI))//我们都满足
{
/*Write internal header*/
header = driver->cfg.chId;使用这个ID
memcpy ((void *)(driver->hwCfg)->baseLocalToRemote.data, (void *)(&header), sizeof(header));先把头发过去
/*Write message. Need to account for internal header size*/
memcpy ((void *)((uint8_t *)((driver->hwCfg)->baseLocalToRemote.data) + MAILBOX_MULTI_CH_HEADER_SIZE), (const void *)buffer, size);再把数据发过去
}
else
{
/*Write message.*/
memcpy ((void *)(driver->hwCfg)->baseLocalToRemote.data, (const void *)buffer, size);否则就直接发数据不发头
}

我想知道,这个变量driver->hwCfg)->baseLocalToRemote.data是否就是DSS和MSS的共享内存,他的定义一般在哪里分配空间。

jian zhang:

请问这个是否就是DSS和MSS之间可以传递消息的中间载体

,

Nancy Wang:

晚些我会转给其它工程师看一下。

,

Chris Meng:

你好,

建议你看看trm里的mailbox相关模块的信息。

typedef struct Mailbox_HwCfg_t{ /** * @brief Register and memory base for localEndpoint to remoteEndpoint communication. */ Mailbox_Base baseLocalToRemote; /** * @brief Register and memory base for remoteEndpoint to localEndpoint communication. */ Mailbox_Base baseRemoteToLocal; /** * @brief Mailbox Full Interrupt Number */ uint32_t boxFullIntNum; /** * @brief Mailbox Empty Interrupt Number */ uint32_t boxEmptyIntNum;}Mailbox_HwCfg;

赞(0)
未经允许不得转载:TI中文支持网 » AWR1642BOOST: 共享内存的问题
分享到: 更多 (0)