0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何在 Petalinux 下定位 decice-tree 错误

FPGA之家 来源:XILINX产品应用工程师 作者:张超 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 已经足够定位错误类型和位置。比如下面,

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 会非常冗长,我们在其中仔细找 dtc 的报错,其中提示 “Duplicate label 'gem0' on /ethernet@ff0b0000 and /amba/ethernet@ff0b0000“,说明 ‘gem0’ 的 label 在多个地方重复定义了。而且报错也提示了错误的位置为“…/system-user.dtsi:3.31-15.9”,我们根据错误提示去删除重复的 gem0定义即可。

有时候通过 petalinux 的 log 无法定位到具体错误位置,这时候我们可以通过在 Petalinux 之外手动编译 device tree文件的方式来获得更具体的错误信息。手动编译需要用到dtc (Devicetree Compiler), 如果你的机器上还没有 dtc 的话可以从 linux-xlnx/scripts/dtc 位置找到源码并执行 make 来编译生成 dtc 工具。

如前所述 Petalinux 下的 device tree 分布在两个位置,我们先把所有 dts/dtsi 文件都拷贝到单独工作目录中方便后续手动编译。

设备树的顶层为 system-top.dts, 并引用了很多其它 dtsi 文件,类似 C 语言中的 include 机制。可以先利用 gcc 来进行预处理,将分立的 dts/dtsi 文件汇总到一个文件中,

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

再用 dtc 来编译设备树文件。

dtc-Idts-Odtb-oout.dtb.dts

接下来根据 dtc 的报错信息,就可以容易地定位到错误类型和位置。


原文标题:开发者分享 | 如何在 Petalinux 下定位 decice-tree 错误

文章出处:【微信公众号:FPGA之家】欢迎添加关注!文章转载请注明出处。

审核编辑:彭静

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 设备
    +关注

    关注

    2

    文章

    4887

    浏览量

    73858
  • 源码
    +关注

    关注

    8

    文章

    689

    浏览量

    31517
  • 编译
    +关注

    关注

    0

    文章

    696

    浏览量

    35287
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    FPGA技术教程Linux开发:Petalinux安装

    本篇 Petalinux安装 ,选自 ALINX 黑金云课堂 FPGA 免费直播课 。该课程由 ALINX 资深工程师团队倾力打造, 从 0 到 1 系统化教学 ,帮助每位工程师跨过 FPGA 开发
    的头像 发表于 04-20 16:30 746次阅读

    CAN总线报错看不懂?5种错误帧+5步排查法一次讲清

    CAN总线通信异常?错误帧频繁出现?本文详解五种错误帧类型,并提供五步排查法,助你快速定位问题根源。错误帧的作用错误帧是CAN总线用于
    的头像 发表于 03-16 11:36 442次阅读
    CAN总线报错看不懂?5种<b class='flag-5'>错误</b>帧+5步排查法一次讲清

    何在 Vision Five 2 上安装 python 库?

    这可能是一个完全愚蠢的问题,但我如何在 Vision Five 2 上安装 python 库。 使用该命令后,它给了我这个错误。 默认为用户安装,因为普通站点包不可写 错误:找不到满足要求
    发表于 03-06 07:51

    何在 VF2 上编译东西?

    有关于如何在 VF2 中设置编译环境的指南吗? 我不想交叉编译。 我知道 USB Wifi 驱动程序附带了映像,但我无论如何都想学习内核,所以我的首要任务是为板编译 ESWIN 6600U 模块
    发表于 03-03 07:15

    Ubuntu 23.10 -&gt; 错误:重新定位溢出怎么解决?

    程序并完成安装。 但是,在启动安装的后续步骤中,我收到此错误错误:重新定位溢出。 我按照文档运行以下步骤: PCI 枚举 NVMe 扫描 efidebug boot add -b 0001
    发表于 02-10 08:21

    Linux 6.8 内核 - 错误:找不到 cmdline 扁平化设备树怎么解决?

    我正在尝试一个新的 6.8 linux 内核,但我在启动时收到这个错误: 从0x44000000到0x40200000的移动图像,end=41724000 错误:未找到 cmdline 扁平化设备树
    发表于 02-09 07:13

    隧道施工安全管理系统#隧道定位系统厂家 #隧道定位系统

    定位系统
    恩田智能设备
    发布于 :2025年12月19日 15:20:43

    泡沫起升仪步进/伺服电机细分驱动技术:实现冲程毫米级定位的电子方案

    的精准调控,避免传统驱动方式下定位偏差较大、运行卡顿等问题,为泡沫起升仪的高效作业提供可靠的动力控制支撑。​ 一、技术核心逻辑:从“粗放驱动” 到 “精细分解”​ 步进伺服电机的传统驱动方式,通常是按照电机固有
    的头像 发表于 12-04 09:20 533次阅读
    泡沫起升仪步进/伺服电机细分驱动技术:实现冲程毫米级<b class='flag-5'>定位</b>的电子方案

    GPS定位和地磁定位有什么区别?

    GPS定位和地磁定位是两种原理完全不同、应用场景也差异巨大的技术。简单来说:GPS定位是绝对定位,告诉你“你在世界的哪个经纬度”。地磁定位
    的头像 发表于 11-19 12:01 743次阅读
    GPS<b class='flag-5'>定位</b>和地磁<b class='flag-5'>定位</b>有什么区别?

    `lv_obj_tree.h` 在 **LVGL v9** 中的位置和作用

    lv_obj_tree.h 在 LVGL v9 中的位置和作用如下: 文件路径 lv_obj_tree.h 位于 LVGL 源码的 src/core/ 目录下,完整路径是: lvgl/src
    发表于 11-13 15:49

    Cortex-M0+处理器的HardFault错误介绍

    在ARM处理器中,如果一个程序产生了错误并且被处理器检测到,就会产生错误异常。Cortex-M0+处理器只有一种异常用以处理错误:HardFault。
    的头像 发表于 10-14 10:50 3662次阅读
    Cortex-M0+处理器的HardFault<b class='flag-5'>错误</b>介绍

    电商API常见错误排查指南:避免集成陷阱

      在电商平台开发中,API集成是连接系统、实现数据交换的核心环节。然而,许多开发者在集成过程中常遇到错误,导致项目延迟、数据丢失或用户体验下降。本文将逐步介绍常见错误类型、排查方法以及预防策略
    的头像 发表于 07-11 14:21 2304次阅读
    电商API常见<b class='flag-5'>错误</b>排查指南:避免集成陷阱

    北斗三号兼容升级如何选择新一代北斗高精度定位模组

    随着北斗三号全球卫星导航系统全面建成,其定位精度、信号强度及功能多样性均实现跨越式升级。对于行业用户而言,如何在保留原有设备价值的同时获取北斗三号的全新能力?如何在不同频段、不同场景下实现稳定精准的
    的头像 发表于 06-25 17:44 1129次阅读
    北斗三号兼容升级如何选择新一代北斗高精度<b class='flag-5'>定位</b>模组

    如何验证CAN控制器的错误响应机制?

    CAN节点的稳定性、可靠性和安全性得益于其强大的错误管理机制。上一篇文章我们介绍了CAN控制器的错误管理机制的工作原理。本文将基于其工作原理及ISO16845-1:2016标准,为大家介绍
    的头像 发表于 04-30 18:24 1030次阅读
    如何验证CAN控制器的<b class='flag-5'>错误</b>响应机制?