Zynq Qspi启动

时间:2015-01-27 07:15:11

标签: arm boot zynq

我使用 Arm DS-5和Xilinx SDK Zynq 板上开发程序。 我试图从Qspi Flash启动Zynq 702板。 到目前为止,我所做的是从Xilinx SDK生成FSBL项目,并使用SDK中的Bootgen工具将其与我的应用程序相结合,然后将其编程到闪存中。 我脑子里有几个问题。

  • DS-5生成.axf文件,Bootgen需要.elf文件。我可以用吗 .axf文件只需将其扩展名更改为.elf或我是否需要 还有一些步骤吗?
  • 是否有工具显示.axf文件的内部结构? 显示在哪里?
  • 如果我设法从QSPI启动,我该如何调试?例如,我想从FSBL开始调试我的应用程序,是否可能?因为在Qspi Boot中,当我打开电路板时,我的应用程序将开始运行,当我连接JTAG时,它将在我的应用程序的某个地方。

2 个答案:

答案 0 :(得分:0)

AXF可能会有一些额外的ARM工具链魔法(我不确定是否可以),但从本质上讲它是一个ELF文件 - ARM工具链提供了fromelf在其中进行探索,但readelfobjdump等其他工具也可以使用。

我不熟悉Zynq平台,所以我不知道任何特定的调试器技巧,但一般的只是在代码的开头放置一个无限循环(可能使用volatile或inline) asm trickery,如果有必要阻止优化) - 一旦调试器连接并打破它,你只需将PC移动到循环并继续。

答案 1 :(得分:0)

您可以通过JTAG完全停止QSPI引导的Zynq,并对其进行任何处理。但是,有一些怪癖。有时Zynq会进入某种锁定状态,而JTAG根本无法工作,因此您需要重新启动电源后才能重试。通过JTAG启动软件后,某些写得不好的外围设备可能会死掉,因此您可能需要先重新加载位流。而且还有一些与Vivado相关的错误(例如,除非降级至2017.2或更改MIO2-6拉动或修补FSBL,否则无法重新刷新主板的错误),但我不确定它们是否适用于您的情况。 / p>