CSR 8675: how messages are transferred between DSP & MCU?
CSR系列的消息传递机制到底是如何实现的?
这个问题的抛出是由于在编写应用时发现DSP与MCU之前传递信息收到种种局限,速率大受影响。
所以请问是否有大神知道MessageSend的究竟是如何实现的?
就我目前的理解:
firmware内部肯定是有个专门存储所有消息的queue,无论是MessageSend还是MessageSendLater等等要发送的消息都会在这个queue中排队。然后VM依次处理,将消息传递给对应的handler,(这个过程应该就是deliver),然后在free掉这条消息。
不知我知否理解有误。
那么重点来了,如果DSP与MCU之间传递数据只能通过这种方式,那就太受局限了。
只能靠这两种message所带的payload传递?!
case MESSAGE_FROM_KALIMBA:
{
SOG_MAIN_PRINT(("MESSAGE_FROM_KALIMBA \n"));
break;
}
case MESSAGE_FROM_KALIMBA_LONG:
{
SOG_MAIN_PRINT(("MESSAGE_FROM_KALIMBA_LONG \n"));
break;
}
才疏学浅,求大神指路!