0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何在 Petalinux 下定位 decice-tree 錯誤

FPGA之家 ? 來源:XILINX產(chǎn)品應(yīng)用工程師 ? 作者:張超 ? 2022-07-21 09:16 ? 次閱讀

今天邀請到賽靈思專家和大家分享下如何在Petalinux下定位decice-tree錯誤的一些技巧。

首先我們來了解下 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)足夠定位錯誤類型和位置。比如下面,

ERROR: device-tree-xilinx-v2020.1+gitAUTOINC+f725aaecff-r0do_compile: Error executing a python function inexec_python_func() autogenerated:

The stack trace of python calls that resulted in this exception/failure was

……

Subprocess output:

/tmp/xilinx-zcu102-2020.2-2021.02.08-01.47.20-87H/work/zynqmp_generic-xilinx-linux/device-tree/xilinx-v2020.1+gitAUTOINC+f725aaecff-r0/system-user.dtsi ERROR (duplicate_label): /ethernet@ff0b0000: Duplicate label 'gem0' on /ethernet@ff0b0000 and /amba/ethernet@ff0b0000

ERROR: Input tree has errors, aborting (use -f to force output)

ERROR: Logfile of failure stored in: /tmp/xilinx-zcu102-2020.2-2021.02.08-01.47.20-87H/work/zynqmp_generic-xilinx-linux/device-tree/xilinx-v2020.1+gitAUTOINC+f725aaecff-r0/temp/log.do_compile.62492

ERROR: Task (/group/bcapps/chaoz/plnx_zcu102_bsp_2020p2/xilinx-zcu102-2020.2/components/yocto/layers/meta-xilinx/meta-xilinx-bsp/recipes-bsp/device-tree/device-tree.bb:do_compile) failed with exit code '1'

NOTE: Tasks Summary: Attempted 3410 tasks of which 3402 didn't need to be rerun and 1 failed.

……

ERROR: Failed to build project

實際的 log 會非常冗長,我們在其中仔細(xì)找 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), 如果你的機(jī)器上還沒有 dtc 的話可以從 linux-xlnx/scripts/dtc 位置找到源碼并執(zhí)行 make 來編譯生成 dtc 工具。

如前所述 Petalinux 下的 device tree 分布在兩個位置,我們先把所有 dts/dtsi 文件都拷貝到單獨工作目錄中方便后續(xù)手動編譯。

設(shè)備樹的頂層為 system-top.dts, 并引用了很多其它 dtsi 文件,類似 C 語言中的 include 機(jī)制??梢韵壤?gcc 來進(jìn)行預(yù)處理,將分立的 dts/dtsi 文件匯總到一個文件中,

gcc-I-E -nostdinc-undef-D__DTS__ -x assembler-with-cpp-o.dts.dts

再用 dtc 來編譯設(shè)備樹文件。

dtc-Idts-Odtb-oout.dtb.dts

接下來根據(jù) dtc 的報錯信息,就可以容易地定位到錯誤類型和位置。


原文標(biāo)題:開發(fā)者分享 | 如何在 Petalinux 下定位 decice-tree 錯誤

文章出處:【微信公眾號:FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

審核編輯:彭靜

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 設(shè)備
    +關(guān)注

    關(guān)注

    2

    文章

    4416

    瀏覽量

    70453
  • 源碼
    +關(guān)注

    關(guān)注

    8

    文章

    630

    瀏覽量

    29074
  • 編譯
    +關(guān)注

    關(guān)注

    0

    文章

    647

    瀏覽量

    32743
收藏 人收藏

    評論

    相關(guān)推薦

    何在Altium Designer中快速定位器件

    想知道如何在Altium Designer中快速定位器件嘛?
    的頭像 發(fā)表于 10-12 09:28 ?581次閱讀
    如<b class='flag-5'>何在</b>Altium Designer中快速<b class='flag-5'>定位</b>器件

    在VSCODE終端make時遇到錯誤要一行一行看然后定位,可以直接跳轉(zhuǎn)點擊或者VSCODE定位錯誤嗎?

    每次在VSCODE終端make時遇到錯誤要一行一行看然后定位,可以直接跳轉(zhuǎn)點擊或者VSCODE直接定位錯誤嗎?能給個指引鏈接嗎?謝謝!
    發(fā)表于 06-25 07:37

    一文讀懂CAN通訊錯誤

    CAN總線通信技術(shù)廣泛應(yīng)用于多個行業(yè),是每個總線設(shè)計工程師必學(xué)的一個通訊網(wǎng)絡(luò)。然而,對于CAN通信中的錯誤幀,許多人僅停留在表面了解,缺乏深入理解,這導(dǎo)致許多工程師在面對總線通信故障時感到無從下手
    的頭像 發(fā)表于 06-12 08:24 ?2296次閱讀
    一文讀懂CAN通訊<b class='flag-5'>錯誤</b>幀

    何在CYGWIN的IFX環(huán)境中安裝cysecuretool?

    嗨, 我正在嘗試在 cygwin 中安裝 cysecure 工具但遇到了錯誤。 誰能指導(dǎo)如何在 CYGWIN 的 IFX 環(huán)境中安裝 cysecuretool?
    發(fā)表于 01-25 08:25

    Aurix pFlash內(nèi)存部分是如何在微控制器級別上創(chuàng)建ECC寫入錯誤的?

    我正在查看 Aurix pFlash 內(nèi)存部分是如何在微控制器級別上創(chuàng)建 ECC 寫入錯誤的,以及他們是如何通過故障注入技術(shù)使用它產(chǎn)生多位錯誤的 通常 ecc 錯誤是使用高電壓和其他方
    發(fā)表于 01-22 07:37

    CMOS設(shè)置錯誤的解決方法

    CMOS設(shè)置錯誤的解決方法? CMOS是計算機(jī)中的一塊電路,用于存儲電腦的基本配置信息。如果設(shè)置錯誤,可能會導(dǎo)致計算機(jī)無法正常啟動或運行,因此需要盡早解決。本文將為你詳細(xì)介紹如何解決CMOS設(shè)置錯誤
    的頭像 發(fā)表于 12-28 15:13 ?7514次閱讀

    ug內(nèi)部錯誤,內(nèi)存訪問違例怎么解決

    ug內(nèi)部錯誤,內(nèi)存訪問違例怎么解決 內(nèi)部錯誤和內(nèi)存訪問違例是編程中常見的問題,它們可能會導(dǎo)致應(yīng)用程序崩潰、數(shù)據(jù)丟失或系統(tǒng)不穩(wěn)定。在本文中,我將詳細(xì)解釋內(nèi)部錯誤和內(nèi)存訪問違例的原因,如何解決這些
    的頭像 發(fā)表于 12-27 16:27 ?5544次閱讀

    vlookup常見的12種錯誤

    VLOOKUP是Excel中非常常用的函數(shù)之一,它能夠根據(jù)指定的值,在某一列范圍內(nèi)進(jìn)行查找,并返回相應(yīng)的值。雖然VLOOKUP是一個強(qiáng)大的函數(shù),但是由于其復(fù)雜性和靈活性,常常容易出現(xiàn)一些錯誤。在本文
    的頭像 發(fā)表于 12-01 11:19 ?2855次閱讀

    智能定位技術(shù)在生活中的應(yīng)用

    就包括智能定位技術(shù),這次我們主要來聊一下定位技術(shù)在我們身邊有哪些應(yīng)用。 01 智能定位技術(shù)的應(yīng)用 1.救援 GPS信號好,定位精度高,冒險電影中的主角在進(jìn)入?yún)擦?、沙漠進(jìn)行冒險時,通常會
    的頭像 發(fā)表于 11-30 15:29 ?689次閱讀
    智能<b class='flag-5'>定位</b>技術(shù)在生活中的應(yīng)用

    zedboard petalinux構(gòu)建工程錯誤是什么原因造成的?

    記錄:/home/ylh/xilinx/petalinux/hdmi_zed/building/tmp/work/plnx_zynq7-xlinx-linux-gnueabi/device-tree
    發(fā)表于 11-28 07:33

    腳本錯誤scripterror怎么解決

    “腳本錯誤”(Script Error)通常是在運行或嘗試運行一段腳本或程序時出現(xiàn)的錯誤。這種錯誤可能源于許多不同的原因,包括語法錯誤、運行環(huán)境問題、依賴庫缺失等。解決腳本
    的頭像 發(fā)表于 11-26 14:46 ?7109次閱讀

    TSMaster采樣點配置方法與消除錯誤幀流程

    當(dāng)通訊節(jié)點間采樣點參數(shù)和波特率參數(shù)不匹配造成一些錯誤幀時,我們?nèi)?b class='flag-5'>何在TSMaster中設(shè)置以及調(diào)整波特率參數(shù)和采樣點參數(shù),來減少以及消除總線上出現(xiàn)的錯誤幀,進(jìn)一步提高通信質(zhì)量。本文著重講解講解
    的頭像 發(fā)表于 11-25 08:21 ?673次閱讀
    TSMaster采樣點配置方法與消除<b class='flag-5'>錯誤</b>幀流程

    c語言代碼錯誤怎么找

    當(dāng)我們編寫C語言代碼時,常常會遇到一些錯誤。這些錯誤可能是語法錯誤,邏輯錯誤或者是運行時錯誤。無論是什么類型的
    的頭像 發(fā)表于 11-24 10:05 ?3139次閱讀

    智能定位技術(shù)在生活中的應(yīng)用

    智能定位技術(shù),這次我們主要來聊一下定位技術(shù)在我們身邊有哪些應(yīng)用。01智能定位技術(shù)的應(yīng)用1.救援GPS信號好,定位精度高,冒險電影中的主角在進(jìn)入?yún)擦?、沙漠進(jìn)行冒險時
    的頭像 發(fā)表于 11-09 08:17 ?822次閱讀
    智能<b class='flag-5'>定位</b>技術(shù)在生活中的應(yīng)用

    請問智能小車如何在一個空地上定位呢?

    請問智能小車如何在一個空地上定位呢?現(xiàn)在在空地上畫上了黑線來尋跡,但是不夠靈活,如何讓小車隨意去一個坐標(biāo)呢?
    發(fā)表于 10-25 06:32