AR# 47585

Zynq-7000 SoC, APU - ISB 指令无法确保启用/禁用跟踪的调试启用访问权限的可视性

描述

尽管能适当了解所有与调试有关的特性,但 ISB 指令不足以让跟踪流了解认证状态寄存器的变化。 

因此,跟踪会在当前的路标上停止,可能会直到下一个异常进入或返回,也可能会到下一个串行分支,即使在执行 ISB 时也是如此。

要解决这个问题,ISB 指令必须被一个可导致更改可见的事件所取代。特别是针对下一个指令将 ISB 替换为一个 MOVS PC 时,会实现正确的功能性。

解决方案

影响:

很小,跟踪流可能不会启动,也不会停止,正如程序所预计的那样。

解决方法::

请使用一个可导致更改可见的事件取代 ISB 指令。特别是针对下一个指令将 ISB 替换为一个 MOVS PC 时,会实现正确的功能性。

受影响的配置:

使用 ARM 处理器跟踪功能的系统。

受影响的器件修订版本:全部,无计划修复。请参考(Xilinx 答复 47916) Zynq-7000 设计咨询主答复记录


根据 ARM 架构,在异常进入或返回或 ISB 指令之后,认证状态寄存器的任何变化都应该让处理器获悉。

尽管能适当了解所有与调试有关的特性,但 ISB 不足以让跟踪流显示变化。因此,跟踪会在当前的路标上停止,可能会直到下一个异常进入或返回,也可能会到下一个串行分支,即使在执行 ISB 时也是如此。

一个串行分支是以下内容之一:

用 S 位设置(例如,MOVS PC,r14)对 PC 进行数据处理
LDM pc ^

AR# 47585
日期 05/25/2018
状态 Active
Type 设计咨询
器件