ISRの復帰アドレスを編集する必要があります。割り込みが処理された後、ISRはどこから来たのかにかかわらず、特定のアドレスに戻る必要があります。これは、迅速なシステムリセットを容易にするためです。この機能は、通常のファームウェアでは実装できません。タイミングがタイトすぎるため、頻繁にフラグをチェックすることができません。Cortex-M3:割り込み復帰アドレスの変更
例外入力時にISRによって保存されたスタックフレームを編集しようとしましたが、これは数ミリ秒間動作するようですが、マイクロの「何かが悪い」状態に入ります。この状態では、スタックは正常に見え、何かが間違っているという兆候はありません。これは、スタックをポップして、まったく同じデータをスタックに戻しても発生します。また、スタックポインタ相対ストアを使用すると、このエラーが発生します。
例外処理についての情報はhereですが、何が間違っているか教えてください。
アイデア?私は実際には、割込みがどこに来るかにかかわらず、同じラベルに戻すために割込みを取得する必要があります。
おかげで、 スチュアート
あなたはISRを書いていますか? –
ISRから戻ってくるのではなく、リセットベクトルにジャンプできますか?ほとんどのCPU状態をリセット時の状態に似ているものに戻してからジャンプする関数を書くことは可能です。 – RBerteig
私はISRを書いた。私は、部分を完全にリセットしたくはありません。コミット初期化の量はかなり多いので、再実行すべきではありません。割り込みから希望のコード位置にジャンプすることはできますが、割り込みは永遠に処理されており、再度トリガされることはありません。 – Vatsu1