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}