2012-02-18 7 views
3

こんにちは私は現在、「ベアメタル」で動作しているAT91SAM7X256を使用しています。私はデータシートとアーキテクチャマニュアルを徹底的に読んだので、FIQがIRQよりも優先順位が高いという結論に達しました。したがって、FIQはIRQによって先取りされるべきではありません。arm7tdmi IRQとFIQの優先度

実際には気づいていますCPSRのFビットに触れていなくても、IRQはFIQハンドラの実行を中断します。 IRQをサービスするためにFIQを中断してはならないと仮定するのは間違っていますか?私は私のFIQサービスルーチンが中断されないことを確認するために必要な何

?あなたはFIQハンドラを入力すると、あなたが

答えて

3

、ARMコアが自動的に「I」とCPSRの「F」ビットを設定することにより、FIQとIRQの両方、さらに割り込みを無効に

感謝。これにより、FIQを先取りすることはできません。しかし、SWはこの動作を無効にすることができます!だから私はあなたのコードの一部がCPSRに触れていて、「私」のビットをリセットしていると思います。したがって、FIQの実行中でもIRQ割り込みが発生する可能性があります。

は、上記の説明に追加するには、理由のFIQが特別にIRQハンドラがのみ入力されたときに「I」ビットが唯一、さらにIRQを無効にすることで、そこに設定されていることであるようです。 'F'ビットが設定されていないため、さらにFIQがSWの介入を必要とせずに実行中のIRQハンドラを中断する可能性があります。