2386586_ja-JP

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

2386586_ja-JP

2386586_ja-JP

S32K312におけるFlexCAN拡張RX FIFO + DMA動作に関する説明が必要

こんにちは 、

現在、S32K312上でDMAを備えたFlexCAN拡張RX FIFOの開発に取り組んでいます。 enhanced FIFOenhanced FIFO拡張FIFO

 

私たちはrtd v 7.0.1を使用しており、現在直面しているいくつかの所見や問題点についてご説明をいただきたいと考えています。


1. MEX構成の検証

DMAを有効にしたFlexCAN Enhanced RX FIFOの推奨MEX構成を確認していただけますか?私たちの構成が意図されたRTD利用モデルに沿っていることを確実にしたいと考えています。

2. RX FIFO + DMAデータ損失観測機能の強化

FlexCANの正誤表で示されているように、拡張RX FIFOが有効になっている場合、以下のメッセージバッファは使用されません。

MB0~MB7、MB10、MB12、MB20、MB22、MB30、MB32、MB40、MB50、およびMB60。

当社の体制は以下のとおりです。

  • 拡張RX FIFOが有効になりました
  • DMA が許可される
  • 透かしは10件に設定されています
  • DMAはFIFOデータをソフトウェアバッファに転送します

観察された行動:

  • CANメッセージはEnhanced RX FIFOに正しく受信されます。
  • DMAは、ウォーターマークレベルに達するまでデータを正常に転送します。
  • DMA完了割り込みがトリガーされました。
  • この時点以降、次のFIFO位置(11回目以降)では受信CANメッセージが観測されません。
  • データ損失および異常なFIFO動作が確認された。

このシナリオで予想される挙動と、メッセージ喪失が確認される可能性のある理由について説明していただけますか?

3. FlexCAN_Ip_RxFifo DMA再構成

RTDドライバのデバッグ中に、FlexCAN_Ip_RxFifo APIがDMAパラメータを再構成しているように見えました。

具体的には:

  • マイナーループカウントは16に設定されているようです。
  • 転送サイズは4バイトのようです

これにより、総転送サイズは64バイト(解釈によっては約68バイト)となり、リファレンスマニュアルで説明されている強化RX FIFOエントリサイズとは一致しないようです。

このAPIの意図された動作と、これらのDMA設定の背景について説明していただけますか?

4. RX FIFOメモリ監視機能の強化

デバッグ中のもう一つの観察点は、DMAがFIFOからソフトウェアバッファにデータを転送しているように見えるにもかかわらず、以下の通りです:

  • FIFOメモリ領域には、古いメッセージIDがまだ残っています。
  • メモリブラウザーには、最初の拡張RX FIFO要素のみが表示されるようです。
  • FIFOロケーションが期待どおりに更新されていないようです。

参考のためにスクリーンショットを添付します。

これは予想される動作なのか、またEnhanced RX FIFOメモリをランタイムデバッグ時にどのように解釈すべきか説明していただけますか?

5. 構造サイズの不一致

また、RTDの構造とリファレンスマニュアルの間に不一致も観察されました。

  • FlexCAN_Ip_MsgBuffType のサイズ (RTD 内): 78 バイト
  • リファレンスマニュアルに基づく強化RX FIFO要素サイズ:80バイト

もう少し詳しく教えていただけますか:

  • なぜこのようなサイズの違いが生じるのか?
  • 梱包や位置合わせに関する考慮事項はありますか?
  • DMA転送は78バイトと80バイトのどちらに設定すべきでしょうか?

意図されたユースケース

私たちの要件は以下を使用することです。

  • 拡張RX FIFO
  • DMAベースの受信
  • メッセージ受信のためのCPU割り込みはありません

意図された動作は以下のとおりです。

  1. CANメッセージはEnhanced RX FIFOで届きます。
  2. DMAはFIFOエントリを自動的にソフトウェアバッファに転送します。
  3. 通常の動作にはソフトウェアポーリングやRX割り込み処理は不要です。

拡張RX FIFOによって予約されているメッセージバッファ(MB0~MB7、MB10、MB12、MB20、MB22、MB30、MB32、MB40、MB50、およびMB60)は意図的に使用されず、残りのメッセージバッファが送信に使用されます。

要求

以下の情報を提供していただけますか:

  1. DMA動作を備えた拡張RX FIFOを実証する、利用可能なサンプルプロジェクト。
  2. このユースケースに推奨されるRTD構成。
  3. RTDが現在、DMAを用いたソフトウェア再武装なしで連続的な強化RX FIFO受信をサポートしているかどうかの説明。
  4. 強化されたRX FIFO + DMA受信を実装したベアメタルドライバーの例はありますか?

再開まで今しばらくお待ちください。

Tags (1)
No ratings
Version history
Last update:
12 hours ago
Updated by: