2300196_ja-JP

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

2300196_ja-JP

2300196_ja-JP

S32R45 SptEcsIsrCb エラー!

アラームの原因を検索すると、「PDMA での AXI 読み取りエラー」が表示されます。このアラームが発生する原因は何でしょうか?

SPT エラー キューがオーバーフローしました。最初の 10 件のエラーのみが報告されます。最後に実行されたカーネルを確認してください!
SPT完了
SptEcsIsrCb エラー!、ステータス: 0x11005、エラー情報: 0x10000
SptEcsIsrCb エラー!、ステータス: 0x11005、エラー情報: 0x10000
SptEcsIsrCb エラー!、ステータス: 0x11005、エラー情報: 0x10000
SptEcsIsrCb エラー!、ステータス: 0x11005、エラー情報: 0x10000
SptEcsIsrCb エラー!、ステータス: 0x11005、エラー情報: 0x10000
SptEcsIsrCb エラー!、ステータス: 0x11005、エラー情報: 0x10000
SptEcsIsrCb エラー!、ステータス: 0x11005、エラー情報: 0x10000
SptEcsIsrCb エラー!、ステータス: 0x11005、エラー情報: 0x10000
SptEcsIsrCb エラー!、ステータス: 0x11005、エラー情報: 0x10000
SptEcsIsrCb エラー!、ステータス: 0x11005、エラー情報: 0x10000
RsdkSptRun が完了しました。SPT プロセッシングが完了しました。次のカーネルの準備ができました。

Re: S32R45 SptEcsIsrCb error!
こんにちはピーター、
ご返信ありがとうございます。
 
あなたが挙げた理由に従い、私は特に以下の点に重点を置いてコードを注意深くチェックしました。
 
WR_5、問題は見つかりませんでした。さらに、SPT カーネル コードは変更していません。
 
コード初期リスト:
 
AppMemAllocBuffer ( pHeapMem & gSdadcSampleBufferBufH [インデックス]、 sizeof ( uint16_t ) * RSDK_SPT_RANGE512_4CH_IN_BUF_SIZE
                          RSDK_SPT_DATA_ADDR_ALIGN_BYTES RSDK_OALMEM_CHUNK_ID_CBRAM );
 
RelocSptCode ( gSptModuleCodeRelocBufH . virtAddr RsdkSptRange512smp128crp4ch RSDK_SPT_GET_KERNEL_SIZE ( RsdkSptRange512smp128crp4ch ));
 
np = 0 ;
sptContext . kernelParList [ np ]. paramType= RSDK_SPT_PARAM_TYPE_ADDR ;
sptContext kernelParList [ np ++ ]。 paramValue = ( uintptr_t ) gSdadcSampleBufferBufH [ 0 ]。 phyAddr ;
 
sptContext . kernelParList [ np ]. paramType= RSDK_SPT_PARAM_TYPE_ADDR ;
sptContext kernelParList [ np ++ ]。 paramValue = ( uintptr_t ) gRadarCubeResultsBufH phyAddr ;
 
sptContext . kernelParList [ np ]. paramType= RSDK_SPT_PARAM_TYPE_ADDR ;
sptContext kernelParList [ np ++ ]。 paramValue = ( uintptr_t ( gFft512TwiddleFactorsBufH . phyAddr );
 
 sprintf (ファイル名 " %s% s " FILE_IN_PATH "fft512_twiddle_factors.dat" );
/* RSDKデータは、PPCアーキテクチャとの互換性のため、ビッグエンディアン形式でファイルに保存されます。エンディアンの変換は、ファイルへのデータの読み書き時にのみ行われます。プロセッシングフロー内での変換は必要ありません。*/
 
DbgReadFileConvert ( fileName 0 、 ( char * ) gFft512TwiddleFactorsBufH . virtAddr gFft512TwiddleFactorsBufH . numBytes ENDIAN_CHANGE DATA_BUFF_IS_CACHED );
         
sptContext . kernelParList [ np ]. paramType= RSDK_SPT_PARAM_TYPE_ADDR ;
sptContext kernelParList [ np ++ ]。 paramValue = ( uintptr_t ) gFft512BlackmanWindowBufH phyAddr ;
 
sprintf (ファイル名 " %s% s " FILE_IN_PATH "fft512_win_blackman.dat" );
DbgReadFileConvert ( fileName 0 、 ( char * ) gFft512BlackmanWindowBufH . virtAddr gFft512BlackmanWindowBufH . numBytes ENDIAN_CHANGE DATA_BUFF_IS_CACHED );
 
sptContext . kernelParList [ np ]. paramType= RSDK_SPT_PARAM_TYPE_VALUE ;
sptContext . kernelParList [ np ++ ]. paramValue = 3 ; /* 出力シフトなし */

sptContext . kernelParList [ np ]. paramType= RSDK_SPT_PARAM_TYPE_LAST ;
 
印刷リスト:


gSptModuleCodeRelocBufH.phyAddr: 0x34000000

gSdadcSampleBufferBufH[0].phyAddr: 0x28000000

gSdadcSampleBufferBufH[1].phyAddr: 0x28003000

gSdadcSampleBufferBufH[2].phyAddr: 0x28006000

gSdadcSampleBufferBufH[3].phyAddr: 0x28009000

gRadarCubeResultsBufH.phyAddr: 0x34002000

gFft512TwiddleFactorsBufH.phyAddr: 0x340bd000

gFft512BlackmanWindowBufH.phyAddr: 0x340bf000

Re: S32R45 SptEcsIsrCb error!

こんにちは、

考えられる原因は次のとおりです:

1. SPT入力とS32DS入力の不一致

SPT カーネル入力が予期された S32DS 構成と一致しませんでした。
PDMA は、SPT カーネルの構成によって決定されたアドレスでメモリを読み取ります。バッファ サイズ、キューブ ベース アドレス、またはチャネル カウントが揃っていない場合、PDMA は無効または予期しないメモリ位置を読み取ろうとする可能性があります → AXI 読み取りエラー。
 
2. 作業レジスタ(WR_x)の設定が正しくないか破損している
PDMA が無効または誤って構成されたバッファを指す作業レジスタを使用する場合、AXI ファブリックは不正な読み取り要求を受信し、バス エラーをトリガーします。
 
3. 同期PDMA実行モードと非同期PDMA実行モード
.sync → .async
.syncでモードでは、PDMA は誤った構成 (バッファ ポインタ、依存関係など) により満たされない可能性のある条件を待機します。
これにより、エラー フラグが蓄積され、PDMA エンジンが無効な読み取りを繰り返し試行すると AXI エラーが発生する可能性があります。
 
4. データ幅またはフォーマットが間違っている(例:WR_16とWR_11)
PDMA が 16 ビットの複合データを期待しているが、ターゲット レジスタ/バッファが異なる幅/レイアウトに設定されている場合、AXI 読み取りバーストが不整合になる可能性があり、プロトコル エラー → AXI 読み取りエラーが発生します。
 
5. AXIプロトコルレベルのエラー(一般的な原因)

S32R45 に固有のものではありませんが、AXI 読み取りエラー メカニズムは普遍的に適用されます。

  • バースト長またはサイズが無効です
  • マップされていないアドレスまたは保護されたアドレスからの読み取りの試み
  • スレーブタイムアウトまたは応答しないターゲット
  • アップストリームの問題による読み取り応答エラー(SLVERR または DECERR)

PDMA が不正な AXI トランザクションを生成すると、AXI インターコネクトは SLVERR を返します。これは PDMA 読み取りエラーとして表示されます。


あなたのケースで最も可能性の高い原因
両方のログに基づくと、主な容疑者は次のとおりです。

  1. 間違ったWR_xレジスタ(特にWR_5 / WR_16の選択)
    非常に一般的には誤って構成され、無効な AXI 読み取りにつながります。
  2. SPTカーネル入力とS32DS入力の不一致
    以前のケースでは、見落とされ、根本原因として検証されることがよくあります。
  3. PDMA同期モードが依存関係のデッドロックを引き起こす
    .syncを切り替えてみる→ .asyncデバッグ用。

よろしくお願いいたします。

ピーター

 
 
Re: S32R45 SptEcsIsrCb error!

こんにちはピーター、

レーダー フロントエンドの波形サンプリング ポイントの数を 2 倍にすると、エラーは発生しなくなりましたが、チャープ バッファのサイズは変更されていません。問題をさらに分析するのにご協力ください。どうもありがとうございます。

Re: S32R45 SptEcsIsrCb error!

こんにちは、

シナリオにおける最も可能性の高い根本原因:

  1. カーネルの予想されるチャープピッチと実際のバッファレイアウト間のストライド/アライメントの不一致 - サンプルを 2 倍にするとバーストサイズが揃い、バグがマスクされます。
  2. WR_x 選択 / データ幅の不一致 (実数 vs 複素数、16 ビット vs その他)。サンプル数が変化すると偶然に修正されます。
  3. kernelParList 内のパラメータ順序/タイプの混同 (ADDR と VALUE) が、特定のサイズの場合にのみ発生します。ミラー スレッドには同様のパラメータ シーケンスが示されており、インデックスをスリップするのは簡単です。
  4. WR 24ビットオフセットエッジは、2倍にすると異なるパッキング/レイアウトで消えます。

よろしくお願いいたします。

ピーター

タグ(1)
評価なし
バージョン履歴
最終更新日:
‎01-30-2026 03:27 AM
更新者: