hnuOS lab3
实验过程
设备树是用于解决ARM等嵌入式系统由于设备种类纷繁复杂导致的与平台相关的大量内核代码被大量重复的问题。通过设备树来描述系统硬件及其属性,然后通过bootLoader将其传递给kernel,以便kernel可以有较大的灵活性。如下图所示设备树的例子。
我们要自己编写程序解析dtb文件,需要使用libfdt库(设备树编译器DTC的配套库)提供API接口以及处理设备树的二进制结构
首先在wsl中安装libfdt库:
1 |
|
一些关键api:
编写代码
- 递归遍历并设备树的结构和属性
- 读取并解析.dtb文件
- 递归遍历设备树的节点(Nodes)和属性(Properties)。
- 以缩进格式打印节点层次结构,并格式化不同类型的属性值(字符串、32位整数、二进制数据等
main函数
print_property_value函数
traverse_nodes函数
输出
可以看到解析成功