親愛 なる
最近、私たちのプロジェクトで、FlexCAN割り込みに関連する問題に遭遇しました。この現象の説明は次のとおりです。
CANインスタンス2では、メッセージを受信するために14個のメッセージバッファ(MB)を設定しました。一定期間のテストの後、RTOSタスクスケジューリング全体が応答しなくなったことが判明しました。
ブレークポイントを通じて、システムがFLEXCAN_IRQHandlerを継続的に処理していることがわかりました。さらにデバッグを進めると、対応するメッセージ バッファー割り込みがアクティブであることがわかりましたが、メッセージ バッファーの状態はFLEXCAN_MB_IDLEでした。その結果、FLEXCAN_IRQHandler はその特定のメッセージ バッファーの割り込みフラグをクリアできなくなり、FLEXCAN_IRQHandler が継続的に呼び出され、システムが他の割り込みを処理できなくなる可能性があります。
問題の再現中にメッセージ バッファーがどのように使用されていたかの概要を次に示します。
デバッグの提案をお願いします。
感謝!
Hi @PetrS ,
応援よろしくお願いいたします!コードを更新しただけで、問題は再発しませんでした。
Hi,
後のSDKバージョン(SDK4.0.xから)では、私が知る限り、ISRループでのトラップの可能性でこの動作が修正されました。以下は 4.0.3 のコードですバージョン。。。
そのため、最新のSDKに更新してください。
BR, Petr
SDK バージョン情報を更新します:
s32k144_sdk 3.0.0