I'm a rank noobie to Rust and feel like I may remain a noobie for a long time, there is much to assimilate. But I have done a lot of work on all manner of embedded systems over the years, from process control in assembler to avionics to military communications to the humble traffic light. So here are some random thoughts around the question.
Firstly "embedded system" is a very wide ranging term, encompassing 8 bit micros running around in simple loops to full up Linux running systems. We should perhaps specify further, real-time system, safety critical system, bare metal system, just "small" systems.
My experiments with Rust so far show that it is quite capable of producing code with the performance and small size of C. It can be used without any complex run time. I see little standing in the way of doing whatever can be done in C in Rust. If there are such things one can drop down to C easily, as one can drop down to assembler from C if one has to. Already we have Rust targeted at ARM and RISC V. All this and we get a lot of the safety of Ada, arguably more in some respects. This has inspired great enthusiasm for Rust in me and I will certainly be evaluating it further in the coming months.
I did not like to assume anything about your embedded systems experience and as noted above "embedded" is a huge field. There are as many ways to architect an embedded system properly as there are embedded system problems. As I said, from a simple loop, to state machines driven by timer ticks or some external interrupt, to those using some kind of scheduler, preemptive or cooperative. To those using an RTOS or even Linux.
I suspect this is why it's not so easy to find advice on embedded/real-time/control system architecture techniques. You can find whole books on the subject though.
Now, having said that I think whatever can be done in C can be done in Rust, the issue that I have yet to resolve in my mind is how would adopting Rust upset my usual approaches to tackling such embedded problems. Would all that borrow checking and such cause me a great deal of grief? Will I be able to adapt to what is required by Rust easily or is it too much effort? So far I'm optimistically assuming that would not be such a hurdle.
I'm glossing over the issue of the current state of software support for any particular devices, in terms of HALs and such. It's early days and that will come. Typically I don't use any anyway. As long as we have the chip data sheets and a cross compiler we are good to go.