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

描述

在引导期间,第二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。
编辑 重设标签(回车键确认) 标为违禁 关闭 合并 删除

提问于 2018-07-31 14:47:27 +0800

这个帖子被标记为一个社区wiki

这个帖子是一个wiki(维基). 任何一个积分 >500的人都可以完善它