#devices #tree #fdt #dtb #data-structures

无 std dtb_parser

无需 std 但依赖 alloc 的设备树 blob 解析库

7个版本

0.2.3 2023年8月20日
0.2.2 2023年8月19日
0.1.2 2022年10月5日
0.1.1 2022年9月14日
0.1.0 2022年8月21日

#491嵌入式开发

每月47次下载

MIT 许可证

38KB
878 代码行

dtb_parser

用法

pub const BLOB: &[u8] = include_bytes!("device.dtb");

fn main() {
    let tree = DeviceTree::from_bytes(BLOB).unwrap();
    println!("{}", tree);

    assert!(!matches!(tree.find_node("/soc/pci@30000000"), None));
}

待办事项

  • 树和节点解析
  • 具有继承值的属性(如 #address-cells)
  • 整个树的显示特剧行为(输出与 dts 有关,主要在值的表现上存在细微差异,这受到 #<指定符>-cells 的影响)
  • PHandle 绑定
  • Nexus 节点和指定符映射
  • 当 #address-cells 值设置为 3 的情况

lib.rs:

dtb_parser

将设备树 blob 解析为人友好的数据结构。

需要无 [std] 但 [alloc] 库。

无运行时依赖

特性