unironically best thing about embedded rust is that you can basically write arduino (pin.set_high()) but it'll compile to something efficient in a lot of cases. the HAL crate layer is where you do unsafe mostly, and you can write drivers targeting the safe abstraction and they work crossplatform
believe it or not, it is so much more pleasant. also very little devicd driver stuff in rust needs to be unsafe past the basic register flips.