# ld-memory This crate allows creating `MEMORY` blocks programmatically. It is supposed to be used in build.rs of crates that now ship memory.x files, which don't easily allow specifying offsets and limits as needed for e.g., a bootloader taking space in front of the application binary. ## Example: This code: ``` use ld_memory::{Memory, MemorySection}; pub fn main() { let memory = Memory::new() .add_section(MemorySection::new("FLASH", 0, 0x40000)) .add_section(MemorySection::new("RAM", 0x20000000, 0x10000)); println!("{}", memory.to_string()); } ``` ... will print this: ``` MEMORY { FLASH : ORIGIN = 0x00000000, LENGTH = 262144 RAM : ORIGIN = 0x20000000, LENGTH = 65536 } ``` ## License This work is licensed under either of - Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0) - MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT) at your option.