print_to_stdout/
print_to_stdout.rs

1use memory_spec::MemorySpec;
2use std::str::FromStr;
3
4fn main() {
5    let content = std::fs::read_to_string("examples/memory.kdl").unwrap();
6    let memoryspec = match MemorySpec::from_str(&content) {
7        Ok(m) => m,
8        Err(e) => {
9            eprintln!("{}", e);
10            return;
11        }
12    };
13
14    let primary_slot = &memoryspec.regions()["appcore_flash"]["primary_slot"];
15    let primary_slot_origin = primary_slot.origin();
16    let primary_slot_length = primary_slot.length();
17    let appcore_ram = &memoryspec.regions()["appcore_ram"]["low_ram"];
18    let appcore_ram_origin = appcore_ram.origin();
19    let appcore_ram_length = appcore_ram.length();
20    let symbols = memoryspec.render_symbols();
21    let memoryx = format!(
22        "\
23MEMORY
24{{
25  FLASH : ORIGIN = 0x{primary_slot_origin:08x}, LENGTH = 0x{primary_slot_length:04x}
26  RAM : ORIGIN = 0x{appcore_ram_origin:08x}, LENGTH = 0x{appcore_ram_length:04x}
27}}
28{symbols}"
29    );
30    print!("{}", memoryx);
31}