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

ID 743810
日付 10/31/2022
Public

このドキュメントの新しいバージョンが利用できます。お客様は次のことを行ってください。 こちらをクリック 最新バージョンに移行する。

ドキュメント目次

3.4.2.3. HALの初期化

他の C プログラムと同様、HAL の初期化の最初の部分は、 Nios® Vプロセッサー crt0.Sルーチンによって実装されます。crt0.Sは、C ランタイムの初期化を完了した後、HAL alt_main()関数を呼び出します。これにより、HAL BSP ランタイム・ライブラリーとサブシステムが初期化されます。

HAL alt_main()ファンクションは、以下のステップを実行します。

  1. Initializes interruptsalt_irq_init()関数を使用して Nios® Vプロセッサーの割り込みサポートをセットアップします。
  2. Starts MicroC/OS-II— MicroC/OS-II が実行するように設定されている場合 (ALT_OS_INITおよび ALT_SEM_CREATE関数を使用)、MicroC/OS-II を起動します。MicroC/OS-II の使用と初期化に関する追加情報については、オペレーティング・システムの選択を参照してください。 .
  3. Initializes device drivers— デバイスドライバーを初期化します (alt_sys_init()関数を使用)。 Nios® Vプロセッサー・ツール HAL でサポートされているすべてのペリフェラルを自動的に検出し、alt_sys_init() コードでの各ペリフェラルのデバイス・コンフィグレーション関数への呼び出しを自動的に挿入します。この動作をオーバーライドするには、BSP Editorの [Drivers] タブでデバイスドライバーを無効にします。デバイスドライバーの有効化と無効化については、デバイスドライバーの管理を参照してください。
  4. Configures stdio functions—stdin、stderr、および stdout の stdio サービスを初期化します。これらのサービスにより、アプリケーションは GNU newlib stdio 関数を使用し、ファイル ポインターをサポートされているキャラクター・デバイスにマップできます。 stdio サービスのコンフィグレーションの詳細については、キャラクター モード デバイスを参照してください。
  5. Initializes C++ global constructors and desctructors — グローバル C++ コンストラクタおよびデストラクタ関数のハンドルの初期化。これらの関数呼び出しは、アプリケーションが C++ プログラミング言語で記述されている場合に必要です。
  6. Calls main() main()、またはアプリケーション・プログラムのコールの機能 。ほとんどのアプリケーションは、 main() 関数宣言を行い、この関数で実行を開始します。

デフォルトでは、HAL コンフィグレーション・メカニズムは C++ プログラミング言語のサポートを有効にします。組み込みシステムのコード・フットプリントの削減で説明されているように、この機能を無効にすると、アプリケーションのコード・フットプリントが削減されます。 Nios® Vプロセッサー C++ 言語のサポートは、GCC ツールチェーンに依存します。