首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >设备树编译器不识别包含文件的C语法

设备树编译器不识别包含文件的C语法
EN

Stack Overflow用户
提问于 2018-06-02 15:16:52
回答 1查看 10.6K关注 0票数 23

我想手动编译我的板设备树。我已经从官方的dtc中下载了最新版本的来源,但是当我尝试运行以下命令时,会发现一个错误,建议我将所有#include指令更改为/include/等等。

代码语言:javascript
运行
复制
dtc -I dts -O dtb -p 0x1000 meson-gxl-s905x-khadas-vim.dts -o kvim1.dtb

我的董事会是卡达斯·维姆( Khadas ),心中有一个非逻辑的S905x SoC。所有包含的文件都存在,错误是:

代码语言:javascript
运行
复制
Error: meson-gxl-s905x-khadas-vim.dts:8.1-9 syntax error
FATAL ERROR: Unable to parse input tree

第8行是:

代码语言:javascript
运行
复制
#include <dt-bindings/input/input.h>

#include更改为/include/将抑制错误!

如果你知道一些设备树‘语言’的参考(除了U引导文档),请介绍它。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-02 16:09:11

这不是设备树语法问题,您只需使用C预处理器cpp对.dts文件进行预处理,以获得一个可以由设备树编译器按原样消化的文件。

在特定情况下,假设当前目录是内核根目录,则必须使用以下两个命令:

代码语言:javascript
运行
复制
cpp -nostdinc -I include -I arch  -undef -x assembler-with-cpp  arch/arm64/boot/dts/amlogic/meson-gxl-s905x-khadas-vim.dts meson-gxl-s905x-khadas-vim.dts.preprocessed

dtc -I dts -O dtb -p 0x1000 meson-gxl-s905x-khadas-vim.dts.preprocessed -o kvim1.dtb

kvim1.dtb: Warning (unit_address_vs_reg): Node /scpi/clocks/scpi_clocks@0 has a unit name, but no reg property
kvim1.dtb: Warning (unit_address_vs_reg): Node /soc/bus@c8100000/pinctrl@14 has a unit name, but no reg property
kvim1.dtb: Warning (unit_address_vs_reg): Node /soc/periphs@c8834000/rng has a reg or ranges property, but no unit name
kvim1.dtb: Warning (unit_address_vs_reg): Node /soc/periphs@c8834000/pinctrl@4b0 has a unit name, but no reg property
kvim1.dtb: Warning (unit_address_vs_reg): Node /soc/periphs@c8834000/eth-phy-mux has a reg or ranges property, but no unit name
kvim1.dtb: Warning (unit_address_vs_reg): Node /gpio-keys-polled/button@0 has a unit name, but no reg property
kvim1.dtb: Warning (simple_bus_reg): Node /soc/bus@c8100000/pinctrl@14 missing or empty reg/ranges property
kvim1.dtb: Warning (simple_bus_reg): Node /soc/periphs@c8834000/rng simple-bus unit address format error, expected "0"
kvim1.dtb: Warning (simple_bus_reg): Node /soc/periphs@c8834000/pinctrl@4b0 missing or empty reg/ranges property
kvim1.dtb: Warning (simple_bus_reg): Node /soc/periphs@c8834000/eth-phy-mux simple-bus unit address format error, expected "55c"

验证构建了kvim1.dtb:

代码语言:javascript
运行
复制
ls -ail kvim1.tdb
4359446 -rw-rw-r-- 1 user user 27568 Jun  2 12:05 kvim1.dtb

有关正式的设备树规范,请参阅其官方网站git存储库

票数 31
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50658326

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档