AR# 47553

Zynq-7000、APU - 中止されるロード/格納の後に命令が ITR へ書き込まれると ARM デバッグ実行が停止する

説明

プロセッサがデバッグ ステートにあり、SDABORT フラグが設定されていると、中止されるロード/格納命令の後に ITR に書き込まれた命令が間違って実行され、中止されません。ITR 命令が実行されると、別のエラーが発生する可能性があります。

ソリューション

影響 :
深刻な問題ではありません。実行されるべきでない命令が実行されたため、別のエラーが発生する可能性があります。ほとんどのケースで、このエラーは大きな問題を引き起こさないものと見られます。

回避策 :

回避策が複数ありますので、「回避策の詳細」セクションを参照してください。

対象となるコンフィギュレーション :

プロセッサの 1 つまたは両方を使用するシステム
影響のあるデバイス リビジョン : すべて。修正の予定なし。詳細は、(ザイリンクス アンサー 47916) - 「Zynq-7000 デザイン アドバイザリ マスター アンサー」を参照してください。



詳細

プロセッサがデバッグ ステートにあり、中止されるロード/格納命令の後に ITR に書き込まれた命令が、SDABORT_l を消去したときに実行され、中止されません。コンディション :
  • extDCCmode ビットがデバッガーにより停止モードになる。
  • 前に出力されたロード/格納命令により、同期データ中止が生成される (MMU エラーなど)。
  • 効率を高めるために、ロード/格納が完了しており、中止されていないかを確認するため、DBGDSCRext はデバッガですぐには読み出されず、ITR にさらに命令が書き込まれ、問題があればそれらが中止されるものとしている。
  • シーケンスの終わりにデバッガーにより DBGDSCR が読み出され、ロード/格納が中止されていることが検出される。
  • SDABORT_l フラグがデバッガーにより消去される (DBGDRCR で Clear Sticky Aborts ビットに書き込み)。

上記のコンディションで、ITR に書き込まれる命令が実行され、中止されなくなる可能性があります。

影響の詳細

深刻な問題ではありません。実行されるべきでない命令が実行されたため、別のエラーが発生する可能性があります。ほとんどのケースで、このエラーは大きな問題を引き起こさないものと見られます。

回避策の詳細

複雑にはなりますが、影響を抑えることができる回避策がいくつかあります。各ケースで、デバッグ中のパフォーマンスは低下します。
  • 停止モードを使用しないでください。
  • ロード/格納操作を実行するときは停止モードを使用しないでください。
  • 停止モードでロード/格納操作を実行した後は、常にスティッキー アボートがないか確認してください (2 番目の回避策が好ましいということになります)。
  • 停止モードでロード/格納操作を実行した後、ターゲット ステートを破損させてしまう可能性のある命令 (ロード/格納命令、VFP、CP15 などのレジスタに書き込まれる命令など) を出力する前に、常にスティッキー アボートがないか確認してください。]).
AR# 47553
日付 08/06/2012
ステータス アクティブ
種類 デザイン アドバイザリ
デバイス