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

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

9.2.2.2. 制限された環境での実行

ISR は制限された環境で実行されます。HAL API 呼び出しのほとんどは、ISR からは利用できません。たとえば、HAL ファイルシステムへのアクセスは許可されません。原則として、独自の ISR を作成する際は、何らかの理由 (ハードウェア割り込みの待機など) でブロックされる可能性のある関数呼び出しを含めないでください。

ISR で使用できないこれらの API 関数を特定する方法の詳細については、HAL API リファレンスの章を参照してください。

ISR 内で ANSI C 標準ライブラリー関数を呼び出す際には注意が必要です。C 標準ライブラリーの I/O API を呼び出すと、システム内でデッドロックが発生して、ISR 内でシステムが永久にブロックされる可能性があるため、この API の使用は避けてください。

特に、stdout が非割り込みベースのデバイスドライバーにマッピングプされていることが確実でない限り、ISR 内から printf() を呼び出さないでください。呼び出してしまうと、printf() がシステムをデッドロックし、割り込みが無効になっているために発生することがないハードウェア割り込みを待機する可能性があります。