stm32_rust_template/
main.rs1#![no_std]
10#![no_main]
11
12extern crate alloc;
13use alloc::boxed::Box;
14use alloc_cortex_m::CortexMHeap;
15use cortex_m_rt::entry;
16use panic_halt as _;
17
18#[global_allocator]
19static ALLOCATOR: CortexMHeap = CortexMHeap::empty();
20
21const HEAP_SIZE: usize = 1024; mod apps;
24mod arch;
25mod bsp;
26mod components;
27mod driver;
28mod mcu;
29mod utils;
30
31use crate::apps::{init_all_apps, init_app_registry, register_app, run_all_loop_steps};
32
33#[entry]
34fn main() -> ! {
35 unsafe { ALLOCATOR.init(cortex_m_rt::heap_start() as usize, HEAP_SIZE) };
37
38 let _ = arch::cortex_m4::systick::systick_init_1ms(16_000_000);
40
41 init_app_registry();
43
44 register_app(Box::new(apps::blink::create_simple_blink_app()));
47
48 if let Err(_) = init_all_apps() {
50 loop {
52 cortex_m::asm::nop();
53 }
54 }
55
56 loop {
58 run_all_loop_steps();
59 }
60}