2124287_ja-JP

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

2124287_ja-JP

2124287_ja-JP

Flexio_I2c_Ip_MasterWaitTransferEndはPOLLINGモードでのみ動作します

こんにちは、

お客様から、Flexio_I2c_Ip_MasterSendDataBlocking() が DMA または INTERRUPT モードでは機能しないという報告があります。この API は、トランザクションの終了を待機するために Flexio_I2c_Ip_MasterWaitTransferEnd() を内部的に呼び出します。ただし、この関数はポーリング モードの場合にのみブロックされます。

FelipeGarcia_0-1750976149900.png

この API は、この操作が完了するまで待機する必要があることを意味します。ただし、これは動作ではなく、最初のブロッキング呼び出し後の 2 回目の I2C 送信ではエラーが発生します。

確認したところ、 Flexio_I2c_Ip_MasterSendDataBlocking は関数の始めで DriverType を POLLING に自動的に割り当てていることがわかりました。このことから、この関数は POLLING モードでのみ使用することを目的としていると考えられますが、本当にこのCASEでしょうか?

FelipeGarcia_1-1750976264028.png

もしCASEなら、これはどこかに文書化され、間違ったモードで呼び出された場合は何らかのエラーが返される必要があります。

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

フェリペ

優先度: 中RTDRe: Flexio_I2c_Ip_MasterWaitTransferEnd only works in POLLING mode

こんにちは@FelipeGarcia

RTD 開発チームがこの問題を分析しました。そして彼らの解決策は:

UM にメモを追加します: Flexio_I2c_Ip_MasterSendDataBlocking() および Lpi2c_Ip_MasterSendDataBlocking() 関数はポーリング モードのみをサポートします。

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

ダン

Re: Flexio_I2c_Ip_MasterWaitTransferEnd only works in POLLING mode

こんにちは、 @bryan_brauchlerさん

あなたの懸念を RTD チケットに記入しました。

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

ダン

Re: Flexio_I2c_Ip_MasterWaitTransferEnd only works in POLLING mode

@DanNguyenDuy

この API は間違ったモードで呼び出された場合にエラーを返す必要がありますか?モードが誤って割り込みまたは DMA モードに設定されている場合、関数は透過的に失敗してはなりません。


-ブライアン

Re: Flexio_I2c_Ip_MasterWaitTransferEnd only works in POLLING mode

こんにちは、 @bryan_brauchlerさん

実際、Lpi2c_Ip_MasterSendDataBlocking() 関数もプーリング方法でデータを送信します。SO、私はこの機能をチケットに追加しました。

DanNguyenDuy_0-1751358960680.png

DanNguyenDuy_1-1751358977424.png

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

ダン

Re: Flexio_I2c_Ip_MasterWaitTransferEnd only works in POLLING mode

@DanNguyenDuy @FelipeGarcia

また、割り込み/DMA モードで呼び出された場合、これがサポートされていない場合、この関数は何らかのエラーを返す必要があると思います。

現在、関数は間違ったモードで呼び出されたCASEに成功応答を返します。前の呼び出しが完了しないため、連続した呼び出しでは多くの問題が発生します。

また、これは Lpi2c_Ip_MasterSendDataBlocking の動作とは異なるようです。これは、IMO では同じインターフェースであるはずです (お客様が I2C に Lpi2c と FLEXIO の両方を使用する場合、これらの 2 つの関数はそれぞれ Lpi2c/FlexIO インターフェースに対して同じように動作すると想定されます)。

最高、


ブライアン

Re: Flexio_I2c_Ip_MasterWaitTransferEnd only works in POLLING mode

こんにちは@FelipeGarcia

私の観点からすると、この問題は、この機能がポーリング モードのみをサポートしているという注記が抜けていることによる RTD ドライバのバグである可能性があります。

開発チームにバグチケットを提出しました: ARTD-192705

このチケットの分析が完了したらお知らせします。

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

ダン


Re: Flexio_I2c_Ip_MasterWaitTransferEnd only works in POLLING mode

お客様が使用しているバージョン: RTD 5.0.0、S32DS v3.6.0

Re: Flexio_I2c_Ip_MasterWaitTransferEnd only works in POLLING mode

こんにちは@DanNguyenDuy

お客様が使用している特定の RTD バージョンを確認中ですが、最新バージョンを確認したところ、同じ API 構造 ( S32K3_RTD_6_0_0_D2506_ASR_REL_4_7_REV_0000_20250610) が確認されました。

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

フェリペ

Re: Flexio_I2c_Ip_MasterWaitTransferEnd only works in POLLING mode

こんにちは@FelipeGarcia

使用した RTD パッケージのバージョンはどれですか?

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

ダン

Tags (1)
No ratings
Version history
Last update:
‎11-21-2025 09:30 AM
Updated by: