Skip to content
Snippets Groups Projects
Select Git revision
  • 1b747d6c99f287da24d534823e01ecfb9a9fcc00
  • master default protected
  • rtic6
3 results

main.rs

Blame
  • Forked from Per Lindgren / rtic_f4xx_nucleo
    Source project has a limited visibility.
    main.rs 5.40 KiB
    //! main.rs
    
    #![deny(unsafe_code)]
    #![deny(warnings)]
    #![no_main]
    #![no_std]
    
    use panic_halt as _;
    //use panic_rtt_target as _;
    use rtt_target::{rprintln, rtt_init_print};
    use stm32f4;
    
    #[rtic::app(device = stm32f4)]
    const APP: () = {
        #[init]
        fn init(_cx: init::Context) {
            rtt_init_print!();
            rprintln!("init");
        }
    
        #[idle]
        fn idle(_cx: idle::Context) -> ! {
            rprintln!("idle");
            panic!("panic");
    //        loop {
    //            continue;
    //        }
        }
    };
    
    // A) A Simple Trace
    // > cargo run
    // cargo run
    //    Compiling app v0.1.0 (/home/pln/courses/d7020e/rtic_f4xx_nucleo)
    //     Finished dev [unoptimized + debuginfo] target(s) in 0.18s
    //      Running `probe-run --chip STM32F411RETx target/thumbv7em-none-eabi/debug/app`
    //   (HOST) INFO  flashing program (15.06 KiB)
    //   (HOST) INFO  success!
    // ────────────────────────────────────────────────────────────────────────────────
    // init
    // idle
    //
    // B) Breaking
    // Now press Ctrl-C
    // ^Cstack backtrace:
    //    0: app::idle
    //         at src/main.rs:25
    //    1: main
    //         at src/main.rs:13
    //    2: Reset
    //         at /home/pln/.cargo/registry/src/github.com-1ecc6299db9ec823/cortex-m-rt-0.6.13/src/lib.rs:526
    //
    // Make sure you got the expected output
    // Awnser: Yes, got the expected output.
    //
    // C) Panic tracing
    // Rust is designed for reliability, with the aim to deliver memory safety
    // and defined behavior at all times.
    // Recoverable errors (in libraries and user code) should use the `Result<T,E>` type,
    // while unrecoverable errors should `panic`.
    //
    // Let's introduce a `panic` (uncomment line 24).
    // > cargo run
    //
    // What is the output?
    //
    // [Your answer here]
    // Compiling app v0.1.0 (/home/niklas/Desktop/D7020E/rtic_f4xx_nucleo)
    // error: unreachable expression
    //   --> src/main.rs:25:9