| Crates.io | fdt-raw |
| lib.rs | fdt-raw |
| version | 0.1.5 |
| created_at | 2025-12-07 09:58:31.411649+00 |
| updated_at | 2025-12-21 11:34:30.646141+00 |
| description | A low-level, no-std compatible library for parsing Flattened Device Tree (FDT) binary files |
| homepage | https://github.com/drivercraft/fdt-parser |
| repository | https://github.com/drivercraft/fdt-parser |
| max_upload_size | |
| id | 1971367 |
| size | 78,254 |
用于解析设备树二进制文件(DTB)的低级 Rust 库。
fdt-raw 是一个基于 Device Tree Specification v0.4 实现的纯 Rust、#![no_std] 兼容的设备树解析库。该库提供了对扁平设备树(FDT)结构的底层访问接口,适用于嵌入式系统和裸机开发环境。
no_std 兼容:适用于裸机和嵌入式环境heapless 进行无分配器集合操作主要的 FDT 解析器,提供对设备树结构的访问:
#address-cells 和 #size-cellsuse fdt_raw::Fdt;
// 从字节数据解析 FDT
let fdt = Fdt::from_bytes(&dtb_data)?;
// 遍历根节点的子节点
for node in fdt.root().children() {
println!("Node name: {}", node.name()?);
// 遍历节点属性
for prop in node.properties() {
println!(" Property: {}", prop.name()?);
}
}
// 访问内存保留块
for reservation in fdt.memory_reservations() {
println!("Reserved: 0x{:x} - 0x{:x}",
reservation.address,
reservation.address + reservation.size);
}
heapless = "0.9" - 无分配器集合log = "0.4" - 日志记录thiserror = {version = "2", default-features = false} - 错误处理dtb-file - 测试数据env_logger = "0.11" - 日志实现本项目采用开源许可证,具体许可证类型请查看项目根目录的 LICENSE 文件。
欢迎提交 Issue 和 Pull Request。请确保:
cargo fmt)cargo test)cargo clippy)