https://www.etlcpp.com/home.html
Стандартная задача на мелких эмбедах - из прерываний стугать сообщения, чтобы их потом уже в main loop разгребали по мере возможности (но без фатальных залипов). Многозадачку тащить не хочется.
Естественно, у каждой очереди на концах по одному отправителю и получателю, чтобы не искать приключений. Вместо «collision resolution» => «collision avoidance», ценой небольшого резервирования памяти (на «щели» в очереди). Объясните пожалуйста на примере stm32:
- в какой момент с queue начнутся проблемы, и понадобится заморачиваться с более серьезными блокировками?
- На M0-M4 для пересылки структур обычная очередь проканает, или там тоже out of order на запись в память лезет?
- зачем надо было городить queue_spsc_locked, которому надо просовывать блокировщики, если queue_spsc_atomiс вроде и так работает?
PS. Достаточно чтобы работало с gcc/llvm.