C++, hell, I’d say C. The more abstraction, the less reliability. My group would never use anything but C in our embedded projects. I think it’s the “move fast, break stuff” attitude of non-embedded developers that has poisoned everything.
C++ is a trash language; somebody said it's object orientation is like trying to make an octopus by stapling four more legs on a puppy. It allows devs to abstract to the point of absurdity and obfuscates intention. C is much more hygenic, imo.