VIVADO SDK Jtag Dbug 程序时断点调试一直在Disassembly中循环,无法进入main函数

文章描述了在使用Vivado2018.3SDK进行JTAG调试时,遇到程序卡在Disassembly并无法进入main函数的问题。可能原因包括DDR内存问题、PS端硬件故障等,通过调整LinkerScript和检查PS端资源得以解决。
摘要由CSDN通过智能技术生成

软件:vivado 2018.3,调试打印hello world。

问题概述

        VIVADO SDK Jtag Dbug 程序时断点调试一直在Disassembly中循环,无法进入main函数。

现象

1. Programming 程序一直卡在99%不动,疑似hdf文件有问题或 dbug configuration设置有问题,修改后可以下载烧录。

2. 下载程序后,断点调试按键不亮,点 suspend后断点调试进入 Disassembly ,在几行地址上循环。

分析

        当时是未进入main函数。PS端程序运行时在DDR中占用一部分空间当作ram使用,如果DDR有问题,那程序无法继续运行下去。

(此处留坑,PS程序运行时在DDR中申请的空间多大?地址范围是怎样?怎么配置?)

参考Vivado SDK 调试程序时,DBUG模式相关设置_generate linker script-CSDN博客 

验证

        Xilinx Tools --> 点击generate linker script  -->  点击ok,将Basic 下面 Place...三项选成ram,程序可以正常dbug了。此时是在PS自带的一小片ram上运行程序。这个空间大小看芯片型号,一般 64/192KB.

另参考:

关于ZYNQ程序一直在“Disassembly“中的调试记录_sdk的helloworld用debug进入到disassemby-CSDN博客

排查以下4项,有很大参考性: 

  1. ZYNQ的PS端或时钟芯片晶振没起振;
  2. 供电有问题;
  3. ZYNQ损坏;
  4. DDR损坏。

其他参考:

1. vivado的SDK在Debug/Run过程中程序无法烧写且出现一直跳出Disassembly界面以及ARM Cortex-A9 MPCore #0(Suspended)的情况_vitis debug弹出disassembly-CSDN博客

2. vivado sdk在release模式下调试时总是进disassembly页面而不是c代码界面的处理方法_vivado sdk 卡在disassembly-CSDN博客3. Xilinx SDK程序Debug无法在main函数入口处停住解决_sdk 调试不进main-CSDN博客

zynq调试时未进入main函数,直接进入Disassembly解决方法_vitis直接进入 disassembly-CSDN博客

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值