【驱动】【设备树】一个简单的系统级芯片(SoC)的设备树节点

简介: 【驱动】【设备树】一个简单的系统级芯片(SoC)的设备树节点

一个简单的系统级芯片(SoC)的设备树节点

`学习设备树

设备树(Device Tree)源代码

soc {
    compatible = "simple-bus";
    #address-cells = <1>;
    #size-cells = <1>;
    ranges = <0x0 0xe0000000 0x00100000>;

    serial@4600 {
        device_type = "serial";
        compatible = "ns16550";
        reg = <0x4600 0x100>;
        clock-frequency = <0>;
        interrupts = <0xA 0x8>;
        interrupt-parent = <&ipic>;
    };
};

节点解释

1、soc 节点

  • compatible = “simple-bus”;
  • 表示该节点是一个简单总线,通常用于描述一个没有复杂总线功能的 SoC。
  • #address-cells = <1>;
  • 指定该节点下的子节点地址的单元数量为 1。这意味着每个子节点的地址由一个单元(32 位)描述。
  • #size-cells = <1>;
  • 指定该节点下的子节点大小的单元数量为 1。这意味着每个子节点的大小由一个单元(32 位)描述。
  • ranges = <0x0 0xe0000000 0x00100000>;

          描述设备树中的地址范围映射。格式为 <子设备总线地址 映射到父总线地址 长度>。在这个例子中,设备的地址空间从 0xe0000000 开始,长度为 0x00100000(1 MB)。即子总线上的地址范围从 0x0 开始,映射到父总线上的地址范围从 0xe0000000 开始,长度为 0x00100000(1 MB)。


2、serial@4600 节点

  • device_type = “serial”;
  • 指定该节点描述的是一个串行设备。
  • compatible = “ns16550”;
  • 指定该设备与 ns16550 兼容。ns16550 是一个常见的 UART(通用异步收发传输器)型号。
  • reg = <0x4600 0x100>;
  • 描述设备的寄存器地址和长度。这里,寄存器基地址为 0x4600,寄存器长度为 0x100(256 字节)。
  • clock-frequency = <0>;
  • 描述设备的时钟频率。这里设置为 0,可能表示设备的时钟频率未指定或不适用。
  • interrupts = <0xA 0x8>;
  • 描述设备的中断信息。格式为 <中断编号 中断类型>。0xA 是中断编号,0x8 可能表示中断触发类型或中断优先级。
  • interrupt-parent = <&ipic>;
  • 指定中断控制器的 phandle。&ipic 表示中断控制器的设备树节点句柄(phandle),表明 serial@4600 节点的中断由该中断控制器管理。

总结

这段设备树代码描述了一个 SoC 节点,其中包含一个串行设备(serial@4600)。该设备使用 ns16550 UART 控制器,与 simple-bus 兼容,并定义了寄存器的地址、时钟频率和中断信息。serial@4600 节点的中断由指定的中断控制器管理。


相关文章
Beyond Compare 4密钥过期解决办法,超实用
Beyond Compare 4密钥过期解决办法,超实用
37676 1
|
存储 算法 编译器
【Linux 应用开发 】交叉编译的浮点数处理问题:从表象到底层原理的探索与解决
【Linux 应用开发 】交叉编译的浮点数处理问题:从表象到底层原理的探索与解决
657 1
|
C语言 C++
【C语言】rand()函数(如何生成指定范围随机数)
【C语言】rand()函数(如何生成指定范围随机数)
1144 0
|
存储 C++ 容器
c++vector容器-赋直操作讲解
c++vector容器-赋直操作讲解
2052 0
|
9月前
|
数据处理 数据格式
在Excel中,有没有办法一次性复制粘贴多列数据?
在Excel中,有没有办法一次性复制粘贴多列数据?
1837 1
|
人工智能 自然语言处理 并行计算
Github 12k star ,Shap‑E 深度解析:秒生成 3D 模型,一文掌握应用与技巧
Shap-E 是 OpenAI 开源的创新工具,能将文本或图片秒级转换为高质量 3D 模型,支持 Mesh 与 NeRF 格式输出。具备快速生成、双模态输入、本地部署等优势,适用于游戏原型、3D 打印、内容创作等场景,GitHub 已获 12k+ 星标。
1422 0
|
安全 Java 数据库连接
Java中的异常处理:深入理解try-with-resources语句
在Java的异常处理领域,try-with-resources语句是一个重要的特性,它简化了资源管理并提高了代码的可读性。本文将详细探讨try-with-resources的工作原理、使用场景以及如何正确运用这一结构来优化资源管理,同时指出常见的误用情况和最佳实践。
915 0
|
算法 安全 Linux
Linux 裁剪并交叉编译openssl库
Linux 裁剪并交叉编译openssl库
1203 1
|
编译器 Linux C++
CMake 秘籍(六)(2)
CMake 秘籍(六)
888 0

热门文章

最新文章