The other discussion is here:
I am very interested in this topic as it comes up quite a bit, yet we have not figured out a good way to handle this. When I speak to people they all want an I/O subsystem but every time they explain to me what they need it to be like there are major differences based on their use case and if we end up making a subsystem which is generic it is bound to be large and slow, which nobody wants.
It seems to me that if you have the drivers which generally come from the vendors (each with it’s own unique interface and hw supported optimizations and special features) and you just use a FreeRTOS queue to serialize access to the HW driver, like @aggarg described in that post, then it is pretty straightforward to make it work?