Skip to main content

demo/
demo.rs

1use st_mem::{MemoryConfig, analyze_elf, format_report};
2
3fn main() {
4    let memory_x = "./memory.x";
5    let elf_path = "./stm32dome";
6
7    println!("[INFO] Parsing memory.x: {}", memory_x);
8    let config = MemoryConfig::from_file(memory_x).expect("Failed to parse memory.x");
9
10    if let Some(flash) = config.flash() {
11        println!("[INFO] FLASH: origin=0x{:08X}, length={}", flash.origin, flash.length);
12    }
13    if let Some(ram) = config.ram() {
14        println!("[INFO] RAM:   origin=0x{:08X}, length={}", ram.origin, ram.length);
15    }
16
17    println!();
18    println!("[INFO] Analyzing ELF: {}", elf_path);
19    let usage = analyze_elf(elf_path, &config).expect("Failed to analyze ELF");
20
21    println!("[INFO] FLASH used: {} bytes", usage.flash_used);
22    println!("[INFO] RAM used:   {} bytes", usage.ram_used);
23    println!();
24
25    println!("{}", format_report(&usage, 30));
26    println!();
27    println!("[INFO] Firmware: {}", elf_path);
28}