Asynchronous Messaging Service¶
Asynchronous Messaging Service (AMS) is designed to exchange sporadic / asynchronous events between firmware components, such as key phrase detection. It can also be optionally selected in the firmware build configuration. The service exposes an external interface to the host and is API accessible from firmware components.
NOTE: The AMS integration is currently a work in progress; it might not be fully functional in SOF main branch.
Asynchronous messages are one-way from producer to all consumers and allows to:
direct asynchronous communication between components (1:1)
sending one asynchronous message to many components (1:N)
producing asynchronous messages by many modules where 1 is receiving (M:1)
producing asynchronous messages by many modules where many are receiving (M:N)
Messages are exchanged over IDC protocol and shared memory with multi-core support. Message producers and consumers can be run on different cores.
Development guide: Async Messaging Best Practices