Что-то не соображу, как идеологически правильнее сделать следующее. У программы есть интерфейс SPI slave и можно ей послать данные на запись или указать регистр для чтения. Идея такая, чтобы таким образом рулить настройками программы, запускать/останавливать некие действия. Как лучше организовать архитектуру этих регистров внутри программы для избежания гонок, а также с таким расчётом, чтобы в дальнейшем мог быть прикручен и другой интерфейс, например uart.
Mailbox не очень подходит, потому что нужно организовать и чтение. Мютексы не понравились тем, что нужно указывать какой-то приоритет. И вообще, стоит ли здесь использовать сервисы оси или сделать программными средствами: буферизация данных + volatile атрибут?