プログラマが組込みに手を染めてみるべき5つの理由

巻頭言

を読んだ後、少しずつそれに乗っかるエントリが増えていくのを見ていた*1。自分も書こうか書くまいかと迷っていたが、面白そうなのでやっぱり書いてみる。ま、軽い気持ちで。
オリジナルは「10の理由」なのだが、ここでは5つしかあげない。組込みプログラミングはスンゲェ面白いが、「xxはクールだから、それを使ってる俺ってクール」などという発想とは無縁だ。だから5つで十分。

組込みコンピュータはリアルな世界で動く

組込みプログラミングがワークステーションやサーバー、あるいはPCのプログラミングと決定的に異なるのは、それがリアルな世界で動くことだ。最近はサーバーどころかクライアントでも仮想化技術がかまびすしく語られている。だが仮想化を叫ぶ彼らはリアルな世界でプログラムを組んでいるつもりなのだろうか。
OSの上のブラウザの上の仮想マシンの上のスクリプト言語を組んでいては触ることのできない世界が組み込みプログラミングにはある。実世界だ。組込みプログラミングの世界では、対象とはモーターであり、LEDであり、スイッチであり、アークチュエーターだ。古い言葉で言えばメカトロニクス
戦車のプラモデルでも、模型飛行機でも、ロボットでも、電子楽器でも、なんでもござれ。自分の掌の上に乗る機械を自分の思い通りに動かす。それが組込みプログラミングの世界だ。

組込みコンピュータではハードウェアにじかに触れられる

「PCだって機械のコントロールに使える」
などと言う人もいるだろう。あんな大きくて重いものをあちこちで使う気になるとは思わないのだが、まぁ、いい。百歩ゆずって使えることにしよう。
しかし、PCはドン臭くてリアルな世界についてこれないことが多い。理由は簡単。WindowsだのLinuxだのと重いOSを使っているからだ。こいつ等は装飾過剰が進みすぎて組込みには重過ぎる。
「いや、PC用のRTOSだってあったはずだ」
と反論の声を上げたなら、もう気づいているだろう。RTOSを走らせるならPCはいらない。100Wも消費するコンピュータなど組込みに使う必要はないのだ。それよりもトータルでほんの数ワットの組込みコンピュータを使うほうがいい。
こういったコンピュータではすべてのデバイス、すべてのメモリがユーザーに解放されている。アーキテクチャプログラマの手にゆだねられるのだ。一方、LinuxWindowsMacの世界ではアーキテクチャ論は暇つぶしに過ぎない。なぜなら全部OSが吸収するからだ。
組込みの世界ではすべてがプログラマに解放されている。だからアーキテクチャの知識は必ずやプログラミングに生きてくるのだ。

開発ツールは限りなく無料に近づいた

かつて8bitマイコンの組込み用開発システムは一式数百万円した。それがいまや小遣いで買える額にまで落ちてきている。
世界規模で流通している32ビット・マイコンなら、gccが対応していると思っていい。ARM7やSH、MIPSなんかがそれだ。gccが対応しているのだから、コード・ジェネレータはフリーだ。
ICEと呼ばれるハードウェア開発ツールも、有志がプログラムを開発して公開してくれたおかげで、いまやロジックIC一個で自作できるようになった。おそらくICEの自作で一番コストがかかるのは電車賃だろう。
ハードにべったりのところからプログラムを書くのが嫌なら、フリーのRTOSもある。個人的にはTOPPERS/JSPが面白いと思うが、それ以外にも日本人が実装したRTOSはいくつもある。RTOSを使うと幾分プロセッサが隠されて、その代わりに格段にプログラムを組みやすくなる。要するにモーターとかLEDに集中できるということ。
組込み用のRTOSのソースは十分個人で読み進めることの出来る量だ。これもプログラマにとっては魅力の一つかもしれない。
開発プラットホームも大昔はワークステーションなんて時代があったが、いまやPCで気楽に開発できる。Eclipseを使って組込み開発をしている連中もいるが、大手プロセッサ・メーカーは自社のIDEをお試し版として公開している。お試し版とは方便で、少々のサイズ制限を我慢すれば期間無制限で使える。遊び放題だといっていい。
メーカー提供の環境は大抵Windows用だが、すでに書いたようにgccもある。メーカー提供IDEWindowsで走らせるか、gcc+EclipseLinuxで走らせるか、好きなほうを選べばいい。

実行環境もべらぼうに安い

さて、実行環境。つまりターゲットとなるマイコンだが、これがあきれるほど安い。なにしろムーアの法則のおかげで、ワンチップにプロセッサ、フラッシュROM、SRAM、シリアルIO、パラレルIOが全部入ってしまった。それどころか最近はクロック発振器まではいっている。おかげでいまどきのマイコンは正しい電圧をかけてやるとそれだけで動作する。
そんなチップを使ってボードが安くならないほうがおかしい。秋月電子には5000円以下で買えるマイコン・ボードがごろごろしている。ここ以外にも探してみれば安くて面白そうなワンボード・マイコンが腕に自身のある連中向けに世界中で発売されているのがわかるだろう。
5000円でも高いというのなら、雑誌のおまけと言う道もある。最近、日本の組込みの現状を憂うCQ出版社は雑誌にマイコンをおまけとしてつけるのにご執心だ。ここ1年でもこれだけある。

開発ツールの入ったCD-ROMまで付いて、インターフェース6月号は1490円。マイコンはかくも安く始められるのだ。

日本の電子産業を支えているのは組込みコンピュータである

GPSの位置計算も、車のエンジン制御も、ロボットのアーム制御も、宇宙探査機の制御もすべて組込みコンピュータが行っている。身の回りのすべての家電に組込みマイコンが入っているといっていい。
日本の電子産業の主流はITではなく組み込みなのだ。
それをもってITより組込みのほうがすばらしいなどとは言わない*2が、自分の国を支えている産業に参加するのはたとえ趣味といえども誇らしいことだ。
組込みには手を染めてみる価値がある。せっかくプログラミングの世界に足を踏み入れたのなら、スクリプト言語で抽象的な世界を泳ぐのもいいが組込みの世界も覗いてみるといい。
きっと楽しいことがごろごろしている。

*1:「使わないべき」じゃなくて「使うべきでない」だろ

*2:言わないが思っている

/* -----codeの行番号----- */