0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

組込み機器におけるアプリケーション起動までの流れの概要

Last updated at Posted at 2025-04-08

経緯
組込み機器の場合、電源ONしたら自動的にアプリケーションが起動すると思われるが、その仕組みがわからなかったため以下の質問をした。(アプリケーション自体の記述方法が特殊なものなのかが知りたかったため、main関数が呼ばれると思っていいのかを聞いている。)

質問:「組込み機器の場合、OSが自動的にプログラムを起動する必要があると思われますが、起動されるプログラムは普通にmain関数が最初に呼ばれるのでしょうか?」

以下はChatGPTの回答。


組込み機器におけるプログラムの起動方法について説明します。

組込みシステムでは、一般的なコンピュータのようにオペレーティングシステム(OS)がすべての管理を行うわけではなく、特にリアルタイムオペレーティングシステム(RTOS)やノンOS環境では、プログラムの起動の仕組みが少し異なります。具体的に、起動時に最初に呼ばれる関数は、一般的には main 関数ではなく、システムの設計によりますが、以下のような流れになります。

組込み機器のプログラム起動手順

  1. ブートローダ
    最初に組込み機器が起動すると、ブートローダ(Bootloader)が実行されます。ブートローダは、ハードウェアの初期化を行い、その後、実行可能なプログラム(OSやアプリケーション)をメモリにロードして実行します。

  2. システムの初期化
    ブートローダがプログラムをロードした後、プログラムの初期化が行われます。この初期化は、ハードウェアや周辺機器の設定、クロックの設定、メモリの管理などを含みます。

  3. エントリーポイント
    プログラムが開始する際、特にリアルタイムOS(RTOS)やノンOS(bare-metal)環境では、最初に呼ばれる関数は main ではなく、システム固有のエントリーポイントであることが一般的です。このエントリーポイントは、OSやハードウェアに依存します。例えば、RTOSを使用する場合は、最初にOSの初期化関数が呼ばれ、その後タスクの管理が始まります。

  4. main 関数の呼び出し(OSが存在する場合)
    OSが存在する場合、OSの初期化が完了した後に main 関数が呼ばれるのが一般的です。OSがプログラムの制御を渡すとき、main がその実行の最初の関数となります。特に、POSIX互換のOSやRTOSが搭載されている組込みシステムでは、最初にOSがロードされ、タスクやスレッドが作成され、その後にアプリケーションのコードが main 関数から始まります。

  5. ノンOS環境(bare-metal)
    ノンOS環境やRTOSが使われていないシステム(bare-metal環境)では、OSの管理がないため、アプリケーションは直接ハードウェアとやり取りします。この場合、最初に呼ばれる関数は、スタートアップコード(スタートアップファイル)であり、main 関数はその後に呼ばれます。スタートアップコードは、システムの初期化(メモリの設定、割り込みの設定、スタックの設定など)を行います。

起動時の流れ(概要)

  1. ブートローダ が起動し、ハードウェアを初期化。
  2. 必要なプログラムをメモリにロード。
  3. システム初期化関数が実行され、ハードウェアの設定が行われる。
  4. OSがあれば、OSのカーネルが初期化され、タスクやスレッドを管理開始。
  5. main 関数 が呼ばれる(OSがある場合)。
  6. ノンOS環境では、スタートアップコードが実行された後、main が呼ばれる。

まとめ

  • OSがある場合: 最初に呼ばれるのは main 関数ですが、それまでにOSの初期化が行われます。
  • RTOSやノンOSの場合: 最初に呼ばれる関数は main ではなく、システム初期化用のコードやエントリーポイントとなることが多いです。
  • ブートローダ がシステムを起動し、最初に実行されるプログラムはブートローダの設定に依存します。

組込みシステムでは、特にハードウェアやOSがシンプルであるため、main 関数が呼ばれる前に多くのシステム初期化が必要になります。そのため、main は多くの場合、ハードウェアが準備できた後に実行されるコードの一部となります。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?