【问题标题】:Embedded Linux device tree parser in python? [closed]python中的嵌入式Linux设备树解析器? [关闭]
【发布时间】:2011-03-11 16:48:55
【问题描述】:

我希望创建一个实用程序,用于根据来自另一个工具的 XML 配置文件验证嵌入式(PPC 或 ARM)Linux *.dts(设备树源)或 *.dtb(二进制)文件。所以,我需要解析 dts 或 dtb 文件。我真的很想用 Python 来做这件事。有谁知道解析 dts 或 dtb 文件的 Python 库或工具吗?设备树编译器 (dtc) 的 Python 实现将是完美的,但我还没有看到。

【问题讨论】:

    标签: python linux embedded-linux device-tree


    【解决方案1】:

    Zephyr 项目(一个使用设备树的 RTOS)似乎带有一个相当通用的 Python 模块 dtlib 来解析设备树源文件。该模块是 Zephyr 源代码树的一部分,存储在scripts/dts/dtlib.py

    2021 年 12 月更新

    这似乎被分离到它自己的存储库中,在https://github.com/zephyrproject-rtos/python-devicetree 可用。

    【讨论】:

      【解决方案2】:

      目前还没有针对 libfdt(dtc 附带的设备树操作库)的 python 绑定,但创建一个应该相当简单。

      如果您对此感兴趣,Python 文档有一些关于使用 c 模块扩展 python 的内容:http://docs.python.org/release/2.6/extending/extending.htmlswig 实用程序可用于自动创建 Python-to-C 接口,因此您只需编写一个小 swig 配置文件。

      如果您最终这样做了,请发送电子邮件至 devicetree-discuss@lists.ozlabs.org - 我们很想听听您的进展!

      【讨论】:

        【解决方案3】:

        libfdt 用于解析 dtb 文件而不是设备树文件 (dts/dtsi),因此读取 libfdt 可能无济于事,而且您不能简单地使用 SWIG 创建现有设备解析器的 python 绑定。 由于 dtc 使用 lex/yacc 作为解析工具,并且其语法定义在内核中可用,我建议您可以在 python ([PLY]:http://www.dabeaz.com/ply/) 中使用 lex/yacc 来编写自己的设备树解析器。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-11-30
          • 2011-02-12
          相关资源
          最近更新 更多