我希望创建一个实用程序,它可以针对来自其他工具的XML配置文件验证嵌入式(PPC或ARM)Linux * .dts(设备树源)或* .dtb(二进制)文件。所以,我需要解析dts或dtb文件。我真的很想用Python做这件事。有谁知道那里解析dts或dtb文件的Python库或工具?设备树编译器(dtc)的Python实现将是完美的,但我还没有看到它。
答案 0 :(得分:1)
libfdt(dtc附带的设备树操作库)没有python绑定,但是创建它应该相当简单。
如果您对此感兴趣,那么Python文档有一些关于使用c模块扩展python的信息:http://docs.python.org/release/2.6/extending/extending.html。 swig
实用程序可用于自动创建Python-to-C接口,因此您最终只需编写一个小的swig配置文件。
如果您最终这样做,请发送电子邮件至devicetree-discuss@lists.ozlabs.org发送电子邮件 - 我们很想知道您的情况!
答案 1 :(得分:0)
libfdt用于解析dtb文件而不是设备树文件(dts / dtsi),因此它可能无助于读取libfdt,并且您不能简单地使用SWIG创建现有设备解析器的python绑定。 由于dtc使用lex / yacc作为解析工具,并且其语法定义在内核中可用,我建议您可以在python中使用lex / yacc([PLY]:http://www.dabeaz.com/ply/)来组成自己的设备树解析器。
答案 2 :(得分:0)
Zephyr项目(使用设备树的RTOS)似乎带有一个相当通用的Python模块dtlib
来解析设备树源文件。该模块是Zephyr源代码树的一部分,并存储在scripts/dts/dtlib.py中。