Un programa no_std mínimo

#![no_main]
#![no_std]

use core::panic::PanicInfo;

#[panic_handler]
fn panic(_panic: &PanicInfo) -> ! {
    loop {}
}
  • Se compilará en un binario vacío.
  • std proporciona un controlador de panic; sin no hay, debemos proporcionar uno nuestro.
  • También puede proporcionarlo otro crate, como panic-halt.
  • Dependiendo del objetivo, es posible que tengas que compilar con panic = "abort" para evitar un error sobre eh_personality.
  • Ten en cuenta que no hay main ni ningún otro punto de entrada; depende de ti definir un punto de entrada propio. Esto suele implicar una secuencia de comandos de enlazador y algún código de ensamblado de forma que todo esté preparado para que se ejecute el código de Rust.