MC9S12XEP100アプリケーションを使用していますが、次の割り込みが発生しています。
大量のCAN0データを受信していて、3つのECT ISRがすべて有効になっているときに、" スプリアス割り込み " が時折発生します。(ECT ISRのコンテンツがそれぞれのECT_TFLG1をリセットしているだけの場合でも)。
XGATE ECT2ISRを無効にすると(同じ量のCAN0トラフィックで)、スプリアス割り込みは発生しません。私がXGATEを実装したのは、" Freescale\ CWS12V5.1\ (codeWarrior_Examples)\ HCS12X\ S12XE_XGATE_SETUP " という例に基づいています。この例ではROUTE_INTERRUPTマクロを使用してECT2ISR、TIM3ISR、TIM4ISRをXGATEに割り当てています。
XGATEのスプリアス割り込みの原因は何でしょうか?他にどんなトラブルシューティングができますか?
よろしくお願い申し上げます。
問題は、メインプロセッサのECT3ISRとXGATEのECT2ISRの両方が同じ1 PPS信号によってトリガーされていたことでした。そして、XGATE ECT2ISRの内部では、次の方法で割り込みフラグをクリアしていました。
ECT_TFLG1_C2F = 1U
これは、メインプロセッサがISRを実行する前にメインプロセッサのECT3フラグを誤ってクリアしていたため、スプリアス割り込みが発生していたと思います。
XGATE割り込みを更新して、代わりに次の方法でクリアしました。
ECT_TFLG1 = 4U
そして今、すべてが正常に機能しています。
ご協力ありがとうございます。