← Back to context

Comment by supertroop

7 days ago

Bare metal refers to not using an rtos. I know that sounds weird but it is an industry convention. It does not refer to the language.

That's exactly what I said. Rust compiles to binary opcodes. Assembly is not an rtos, and does not require one. ASM isn't a standard "language". It's literally a fancy display of opcodes and registers that the CPU reads to execute operations. C does the exact same thing, ie compile to opcodes. You can convert binary back and forth from ASM to opcodes with a lookup table. At its core, ASM is just a convenient way to read and write cpu opcodes. I misspoke saying "to assembly" when I meant "to binary opcodes", but such a minor pedantic misspeak I didn't think anyone who understood embedded systems would not understand the meaning. Sorry about that.

  • Whether the code compiles to assembly is orthogonal to whether the program can function without runtime support.

    Compiled Rust code that relies on syscalls will not function on a “bare metal” microcontroller.

    • Oh, thank you. I didn't know that. Sorry about my ignorance. Really thought that it defaulted to a direct machine code without library assistance.

      1 reply →