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

セサミアン3人組

tag: 組み込み

技術解説 2003年5月14日

 組み込みソフトウェアには,一般のアプリケーション・ソフトウェアにはない考えかたが存在する.ここでは,「組み込み」ならではのいくつかの概念について解説する.例えば,プログラムのランタイム構造やスタートアップ・ルーチン,割り込み,配列の実体,同期/非同期,volatile,ハードウェアなどを説明する.  (編集部)

 - 目次 -


  1. プログラムはどのように動くのか

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

  3. array[-1]はなぜ動くのか(配列の実体)

  4. volatileを指定したくなるとき

  5. 時間の制御問題(同期と非同期呼び出し)

  6. ポーリングと割り込み

  7. エッジ・トリガとレベル・センス

  8. メモリとポート

 ここでは,組み込みソフトウェア開発者をめざす新人の皆さんに理解していただきたい考えかたについて解説します.ここで解説する内容は,一般的なC言語やソフトウェア開発の解説書にはあまり説明されていないものです(もしかすると,皆さんの周りの先輩もちゃんと説明できないかもしれない).しかし,組み込みソフトウェア開発ではきわめて重要な考えかたです.

 また,ハードウェアに関する説明もありますが,「わたしはソフトウェア技術者だから関係ないや」などとは決して考えないでください.この世界で長く技術者としてしごとをしていくためには,ソフトウェア技術者だからとか,ハードウェア技術者だからという枠を持つことは厳禁です.

 本稿で説明する知識は,大きく次の二つに分けられます.

1)プログラムを起動させるためのしくみと,起動したプログラムが動くための基本メカニズム

 ランタイム構造,スタートアップ・ルーチン,配列の実体,volatile,非同期呼び出し

2)プログラムがマイコン(システム)と外部との間でデータをやり取りするための基礎知識

 ポーリングと割り込み,エッジ・トリガとレベル・センス,メモリとポート

 C言語に関する本の内容は,C言語の文法や使いかたについての解説がほとんどです.WindowsやLinux/UNIX上でプログラミングするだけならそれで十分でしょう.例えば,LinuxやUNIX上ならば,おまじないのように,

  % cc example.c

とコマンド入力すれば,ファイルexample.cに書かれたC言語のプログラムがコンパイルされ,a.outという名まえの実行可能なファイルが生成されます.そして,

  % ./a.out

とコマンド入力すれば,ファイルexample.cに書いておいたプログラムが(あわよくば意図したとおりに)実行されます.この手順は,使用するOS環境やコンパイラなどによって若干変わりますが,WindowsやLinux/UNIXの環境ならば,基本的にはmain関数以降のプログラムを書き,そのファイルをコンパイルして実行するだけです.プログラムを動かすために,プログラムの起動や動作時のしくみなどを気にする必要はありません.

組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! 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日