In the CMSIS-Driver specification, all interface structs and functions are described as plain C.
But the function calls simply won't work in plain C, they must be C++ in order to receive the hidden "this" parameter.
Same with callbacks - they must receive reference to their "this" object.
So the question - does anybody actually implement drivers per this spec, if yes then how? C or C++?
thanks for your inquiry. If you check all packs that are publicly available, there are close to 800 unique CMSIS-Driver components in the packs and more than 25% of all supported devices are covered by CMSIS-Drivers. I would not say that "nobody is using it". For example, NXP adds CMSIS-Drivers for serial interfaces (USART, SPI, I2C) to all of their device family packs.
Hope this helps,
Thanks Christopher and Bill