「組み込み」ならではの基礎知識 ――スタートアップ・ルーチンからハードウェアまで

セサミアン3人組

tag: 組み込み

技術解説 2003年5月14日

2 main関数以前(スタートアップ)

 WindowsやLinux/UNIXの環境でC言語を使ってプログラミングするときは,main関数以降をコーディングします.が,プログラムはmain関数から始まっているのではありません.その前段階として,スタートアップ・ルーチンというものが存在するのです.

 組み込みシステムにおいて,プログラムを動かすためにはスタートアップ・ルーチンを理解することが必要です.スタートアップ・ルーチンが何をしているのかを把握せずにデバッグしても,ざるで水を汲むような作業になりかねません.組み込みソフトウェア技術者としてスタート地点に立つために,ぜひ理解しておかなければならない項目です.

●電源を入れるとまず動くのがスタートアップ・ルーチン

 組み込みプログラムは通常マイコンの上で動作します.マイコンが動き始めるときの動作はマイコンによって異なりますが,ここではその一例を説明します.

 組み込み機器が動き始める,つまり電源が入ったり,リセット・ボタンが押されたりすると,マイコンにはリセットによる強制的な割り込みが入ります(図2-1の(1)).この割り込みは,マイコンに「今の状態がどうあれ,初期状態から動作せよ」という強制的な指令です.リセットによる強制的な割り込みが入ると,マイコンはある固定のアドレス(割り込みベクトル領域と呼ばれる特別なメモリ領域のうち,リセットに割り当てられたベクトル番地)の内容を読み込みます.そこに書かれている内容はマイコンによって異なり,ジャンプ先のアドレスであったり,短いプログラムであったりします.

 書かれている内容がジャンプ先のアドレスの場合は,そのアドレスに制御を移します(図2-1の(2)).また,書かれている内容がプログラムの場合は,そこに書かれているプログラムを実行しますが,その内容は先ほどと同じように,あるアドレスに制御を移すものです.いずれにせよ,これらによってプログラムが動き出すわけです.このときに呼び出されるプログラムをスタートアップ・ルーチンと呼びます.

f02_01.gif
〔図2-1〕マイコンが動き始めるときの動作
組み込み機器に電源が入ると,まず(1)リセット割り込みが入り,マイコンは割り込みベクトル領域内のある固定のアドレスの内容を読み込む.そこに書かれている内容に基づいて,(2)スタートアップ・ルーチンを呼び出す.スタートアップ・ルーチンでは(3)スタックの設定や初期化処理を行い,その後(4)main関数を呼び出す.なお,プログラムの実行終了後にも,(5)スタートアップ・ルーチンに戻って後処理を行うことが多い.

組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! FPGAマガジン No.12『ARMコアFPGA×Linux初体験』好評発売中

FPGAマガジン No.11『性能UP! アルゴリズム×手仕上げHDL』好評発売中! PDF版もあります

PICK UP用語

EV(電気自動車)

関連記事

EnOcean

関連記事

Android

関連記事

ニュース 一覧を見る
Tech Villageブログ

渡辺のぼるのロボコン・プロモータ日記

2年ぶりのブログ更新w

2016年10月 9日

Hamana Project

Hamana-8最終打ち上げ報告(その2)

2012年6月26日