Crate device_tree_parser

Crate device_tree_parser 

Source
Expand description

§Device Tree Parser

Parse Device Tree Blob (DTB) files with zero-copy performance and ergonomic APIs. Designed for embedded systems with no_std compatibility.

§Quick Start

// Load your DTB data  
let dtb_data = std::fs::read("path/to/your.dtb").unwrap();

// Create parser and parse the device tree
let parser = DeviceTreeParser::new(&dtb_data);
let tree = parser.parse_tree()?;

// Use ergonomic APIs (v0.3.0+)
for child in &tree {
    println!("Node: {}", child.name);
     
    // Access properties using Index trait
    if child.has_property("reg") {
        println!("Register: {}", child["reg"].value);
    }
}

§Features

  • Zero-copy parsing: Borrows from original DTB buffer for performance
  • Ergonomic APIs: Index traits, IntoIterator, TryFrom conversions
  • no_std compatible: Works in embedded environments with alloc
  • Type-safe: Strong typing for device tree structures and properties
  • Real-world tested: Validated against QEMU-generated DTB files

§Main Types

Re-exports§

pub use dtb::AddressRange;
pub use dtb::AddressSpec;
pub use dtb::DeviceTreeNode;
pub use dtb::DeviceTreeParser;
pub use dtb::DtbError;
pub use dtb::DtbHeader;
pub use dtb::DtbToken;
pub use dtb::MemoryReservation;
pub use dtb::NodeIterator;
pub use dtb::Property;
pub use dtb::PropertyValue;
pub use dtb::tree::parse_address_from_bytes;

Modules§

dtb