首先我們來了解下 Petalinux 工程中 device-tree 的文件位置:
工具自動生成的device-tree文件位于
components/plnx_workspace/device-tree/device-tree,
該文件夾下的文件請勿自行修改,供用戶編輯的 device-tree 文件位于
project-spec/meta-user/recipes-bsp/device-tree/files
對于大部分錯誤,通過 petalinux 工具的 error log 已經(jīng)足夠定位錯誤類型和位置。比如下面,
實際的 log 會非常冗長,我們在其中仔細找 dtc 的報錯,其中提示 “Duplicate label 'gem0' on /ethernet@ff0b0000 and /amba/ethernet@ff0b0000“,說明 ‘gem0’ 的 label 在多個地方重復(fù)定義了。而且報錯也提示了錯誤的位置為“…/system-user.dtsi:3.31-15.9”,我們根據(jù)錯誤提示去刪除重復(fù)的 gem0定義即可。
有時候通過 petalinux 的 log 無法定位到具體錯誤位置,這時候我們可以通過在 Petalinux 之外手動編譯 device tree文件的方式來獲得更具體的錯誤信息。手動編譯需要用到dtc (Devicetree Compiler), 如果你的機器上還沒有 dtc 的話可以從 linux-xlnx/scripts/dtc 位置找到源碼并執(zhí)行 make 來編譯生成 dtc 工具。
如前所述 Petalinux 下的 device tree 分布在兩個位置,我們先把所有 dts/dtsi 文件都拷貝到單獨工作目錄中方便后續(xù)手動編譯。
設(shè)備樹的頂層為 system-top.dts, 并引用了很多其它 dtsi 文件,類似 C 語言中的 include 機制??梢韵壤?gcc 來進行預(yù)處理,將分立的 dts/dtsi 文件匯總到一個文件中,
gcc-I
再用 dtc 來編譯設(shè)備樹文件。
dtc-Idts-Odtb-oout.dtb
接下來根據(jù) dtc 的報錯信息,就可以容易地定位到錯誤類型和位置。
審核編輯:劉清
-
Linux
+關(guān)注
關(guān)注
87文章
11420瀏覽量
212361 -
C語言
+關(guān)注
關(guān)注
180文章
7628瀏覽量
139757 -
GCC
+關(guān)注
關(guān)注
0文章
109瀏覽量
25175
原文標(biāo)題:開發(fā)者分享 | 如何在 Petalinux 下定位 decice-tree 錯誤
文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
如何使用ZCU102 Petalinux教程獲取BSP?
構(gòu)建PetaLinux應(yīng)用程序代碼時出現(xiàn)錯誤的解決辦法?
無法下載petalinux怎么辦
zedboard petalinux構(gòu)建工程錯誤是什么原因造成的?
petalinux(二)開啟petalinux內(nèi)核調(diào)試模式

Linux Device Tree的基本概念

人工智能的一些錯誤研究方向
Petalinux工程中設(shè)備樹的介紹

如何在Petalinux創(chuàng)建Linux內(nèi)核模塊?
煤礦井下定位系統(tǒng)的原理及功能
煤礦井下定位系統(tǒng)為什么選擇UWB定位技術(shù)

如何在 Petalinux 下定位 decice-tree 錯誤
用于在挖泥機下定位人員的自治系統(tǒng)

評論