Nios® V プロセッサー・ソフトウェア開発者ハンドブック

ID 743810
日付 7/08/2024
Public
ドキュメント目次

4.4.4. 例外処理

HAL インフラストラクチャーは、強力な割り込み処理サービスルーチンと例外処理用の API を提供します。 Nios® V プロセッサーは、ハードウェア割り込み、実装されていない命令、およびソフトウェア・トラップによって発生した例外を処理できます。

このセクションでは、 Nios® V プロセッサー内部割込みコントローラーを使用した例外処理について説明します。

HAL が提供する例外ハンドラーを使用する前に、以下の一般的な問題点と重要なポイントを考慮してください。

  • 割り込みの優先順位付け Nios® V プロセッサーはその 16 のプラットフォーム割り込みに優先順位を付けませんが、HAL の例外ハンドラーは番号が小さい割り込みに高い優先順位を割り当てます。プラットフォーム・デザイナー でペリフェラルの割り込み要求 (IRQ) の優先順位を変更する必要があります。
  • 割り込みのネスティング — HAL インフラストラクチャーは割り込みのネスティングを許可しています。つまり、より高い優先順位の割り込みが、より低い優先順位の割り込みを処理している例外ハンドラーからプロセッサーの制御を先取することができます。ただし、割り込みのネスティングに伴うパフォーマンスのペナルティのため、アルテラ は割り込みのネスティングはお勧めしていません。
  • 命令ハンドラーの環境 — 例外ハンドラーを作成する際、デッドロックが 発生する可能性があるため、ハンドラーが割り込み依存の関数やサービスを実行しないようにする必要があります。たとえば、例外ハンドラーは、IRQ 駆動バージョンの printf() 関数を呼び出すべきではありません。