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

    文章

    4702

    浏览量

    72023
  • 源码
    +关注

    关注

    8

    文章

    675

    浏览量

    30467
  • 编译
    +关注

    关注

    0

    文章

    680

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

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

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

    在任何平台上使用PetaLinux的先决条件

    本篇文章介绍了在任何平台上使用 PetaLinux 的先决条件。PetaLinux 是一种嵌入式 Linux 软件开发套件 (SDK),主要用于基于 FPGA 的系统级芯片 (SoC) 设计或 FPGA 设计。
    的头像 发表于 04-24 10:40 ?707次阅读
    在任何平台上使用<b class='flag-5'>PetaLinux</b>的先决条件

    如何破解车载定位系统测试难题?北汇信息仿真解决方案让验证更高效

    前言"在智能驾驶时代,当车载导航出现定位漂移、辅助驾驶在恶劣天气下频繁失效、紧急呼叫服务响应错误时,背后往往都是车载定位系统的精度问题在作祟。如何确保车辆在动态场景下的亚米级定位精度
    的头像 发表于 04-09 10:05 ?455次阅读
    如何破解车载<b class='flag-5'>定位</b>系统测试难题?北汇信息仿真解决方案让验证更高效

    基于Vector工具进行CAN协议错误帧的分析实践

    广播发送的短帧结构,还体现在其错误检测机制上。通过总线数据以及总线波形来分析总线故障时,CAN协议错误检测机制中丰富的错误帧类型能让定位问题的效率更高。
    的头像 发表于 01-15 10:03 ?671次阅读
    基于Vector工具进行CAN协议<b class='flag-5'>错误</b>帧的分析实践

    智慧仓储人员定位系统的应用

    在仓储物流行业,高效、准确的定位管理系统是提升运营效率、降低成本的关键。然而,传统仓储管理常面临诸多痛点,如物料定位难、人工操作错误率高、信息化程度低等问题,这些问题不仅增加了管理难度,还影响了企业
    的头像 发表于 01-10 10:31 ?648次阅读
    智慧仓储人员<b class='flag-5'>定位</b>系统的应用

    GPIO错误排查与解决

    在嵌入式系统和微控制器编程中,通用输入输出(GPIO)是最常见的接口之一。然而,在使用GPIO时,我们可能会遇到各种错误。 1. 理解GPIO GPIO是微控制器上的一组引脚,可以被配置为输入或输出
    的头像 发表于 01-09 09:46 ?2622次阅读

    RTOS中的错误检查机制

    在嵌入式应用中,有可能发生各种各样的错误,系统必须能够检测到这些错误并作出适当的响应。RTOS通常内置了一些错误检查功能,用于检测错误并向应用提供响应
    的头像 发表于 01-03 14:44 ?817次阅读

    何在Petalinux下Patch u-boot源码

    在软件开发过程中我们经常遇到用 Patch 来传递和更新代码的场景。本文以一个端到端的例子来演示在 Petalinux 使用过程中,如何给 u-boot 的源码生成 Patch 并在 Petalinux 中编译。
    的头像 发表于 12-04 16:26 ?1902次阅读
    如<b class='flag-5'>何在</b><b class='flag-5'>Petalinux</b>下Patch u-boot源码

    SQL错误代码及解决方案

    在SQL数据库开发和管理中,常见的错误代码及其解决方案可以归纳如下: 一、语法错误(Syntax Errors) 错误代码 :无特定代码,但通常会在错误消息中明确指出是语法
    的头像 发表于 11-19 10:21 ?6876次阅读

    socket编程中的错误处理技巧

    错误处理能够确保程序在遇到异常情况时不会崩溃,而是能够优雅地处理问题。 提升用户体验 :通过适当的错误处理,可以给用户提供清晰的错误信息,避免用户感到困惑。 便于调试和维护 :良好的错误
    的头像 发表于 11-01 17:47 ?1678次阅读

    何在Altium Designer中快速定位器件

    想知道如何在Altium Designer中快速定位器件嘛?
    的头像 发表于 10-12 09:28 ?1.5w次阅读
    如<b class='flag-5'>何在</b>Altium Designer中快速<b class='flag-5'>定位</b>器件

    TPA3128的PBTL模式做定压功放使用,请问PBTL模式下定压功放的额定输出电压是多少呢?

    的额定输出电压,因此请问PBTL模式下定压功放的额定输出电压是多少呢?应该如何计算?和供电电压有什么关系?
    发表于 10-10 06:29

    网关错误是什么意思

    网关错误是计算机网络中一个常见且复杂的问题,它通常发生在客户端和服务器之间的通信过程中,导致客户端的请求无法被正确处理或响应。为了全面理解网关错误,本文将从其定义、原因、类型、影响、诊断方法以及解决方案等多个方面进行详细阐述。
    的头像 发表于 09-30 11:40 ?1.1w次阅读

    SRAM中的错误检测

    电子发烧友网站提供《SRAM中的错误检测.pdf》资料免费下载
    发表于 09-20 11:15 ?0次下载
    SRAM中的<b class='flag-5'>错误</b>检测

    CAN总线错误状态的种类

    CAN总线错误状态的种类主要包括以下几种,每种状态都反映了CAN总线网络中节点或总线的不同错误情况,以及相应的通信能力和限制。
    的头像 发表于 09-03 14:17 ?3793次阅读