簡體   English   中英

設備樹編譯器無法識別包含文件的 C 語法

[英]Device tree compiler not recognizes C syntax for include files

我想手動編譯我的板設備樹。 我已經從其官方來源下載了最新版本的dtc ,但是當我嘗試運行以下命令時,我收到一個錯誤,建議我將所有#include指令更改為/include/等等#define等。

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

我的開發板是 Khadas Vim,其核心是 amlogic S905x SoC。 所有包含文件都存在,錯誤是:

Error: meson-gxl-s905x-khadas-vim.dts:8.1-9 syntax error
FATAL ERROR: Unable to parse input tree

第 8 行是:

#include <dt-bindings/input/input.h>

#include更改為/include/將抑制錯誤!

如果您知道設備樹“語言”的一些參考資料(U-boot 文檔除外),請介紹一下。

這不是設備樹語法問題,您只需使用 C 預處理器 cpp 對 .dts 文件進行預處理,以獲得可以被設備樹編譯器按原樣消化的文件。

在您的特定情況下,假設您的當前目錄是內核根目錄,您必須使用以下兩個命令:

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 是否已構建:

ls -ail kvim1.tdb
4359446 -rw-rw-r-- 1 user user 27568 Jun  2 12:05 kvim1.dtb

官方的 Device Tree 規范請參考其官網及其git 倉庫

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM