AR# 47567

Zynq-7000 SoC、引导 — 从 JTAG 引导时,CPU1 的程序计数器 (PC) 指向无效地址

描述

引导过程中,第二个 CPU (CPU1) 通常执行 WFE 指令。停止第二个 CPU 时,BootROM 没有考虑到完成 BootROM 进程时所重新映射和隐藏的内存。因此,在第二个 CPU 接收到一个唤醒事件时,它会从一个映射到 OCM 或 DDR 内存的位置恢复运行。然后第二个 CPU 会运行随机指令,导致系统行为不明确。

使用 JTAG 调试器将第二个 CPU 的起始地址设置为已知地址。

解决方案

影响:轻微除了 JTAG 之外,这种行为不会出现在引导模式下,有一个解决方法。实际对功能没有影响。JTAG 引导模式旨在让调试器通过 JTAG 访问这两个 CPU。
解决方法::使用如下所述的调试器为 CPU1 设置 PC。
配置
受影响的:
从 JTAG 控制器引导的系统。
受影响的器件修订版本:请参考(Xilinx 答复 47916) - Zynq-7000 设计咨询主答复记录


使用 JTAG 调试器将第二个 CPU 的起始地址设置为已知地址。

遵循以下步骤:

  1. 使用 JTAG 调试器连接第二个 CPU。
  2. 选择性地使用内存写入操作将 WFE 和分支指令加载到内存中。
  3. 将第二个 CPU 的 PC 设置为所需的执行起始地址。
  4. 启动第二个 CPU。

链接问答记录

主要问答记录

Answer Number 问答标题 问题版本 已解决问题的版本
52538 Zynq-7000 SoC - Boot and Configuration N/A N/A

相关答复记录

Answer Number 问答标题 问题版本 已解决问题的版本
46911 EDK 14.1 Zynq-7000 - How do I create a stub for the second CPU core? N/A N/A
AR# 47567
日期 05/25/2018
状态 Active
Type 设计咨询
器件