10 releases
0.2.9 | Jun 29, 2023 |
---|---|
0.2.7 | Jun 2, 2023 |
0.2.3 | May 30, 2023 |
0.2.2 | Jul 5, 2021 |
0.1.0 | Mar 16, 2021 |
#145 in Build Utils
383 downloads per month
Used in ld-memory-cli
13KB
252 lines
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 or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.