/ «2003-11-09 (Sun) ^ 2003-11-11 (Tue)» ?
   西田 亙の本:GNU 開発ツール -- hello.c から a.out が誕生するまで --

Categories Books | Hard | Hardware | Linux | MCU | Misc | Publish | Radio | Repository | Thoughts | Time | UNIX | Writing | プロフィール


2003-11-10 (Mon)

[Writing] 解説 Linux から目覚めるゲームボーイ! (その2)

Linux から目覚めるゲームボーイ!」クロス開発ターゲットとして GBA を選択

さて、一口に「クロス開発」と言っても、世の中にはそれこそ星の数ほどの CPU ボードが存在します。x86, PPC, MIPS, SH, AVR, ARM, 8051 など、枚挙にいとまがありません。

しかし、市販されている CPU ボードの多くは5〜10万円と高額であり、入手経路も限られているため、誰もが手軽に購入できる代物ではありません。さらに、搭載されている入出力装置は LED、RS-232C、Ethernet などがほとんどであり、「字や音が出る」訳ではありません。これでは、面白味がありませんし、せっかくの向学心も萎えてしまいます。私の持論として、ハードウェアプログラミングは、楽しくなければなりません。

そこで私は、安価で魅力的な CPU ボードを追い求め、およそ1年の間、世界中のボードをチェックして回りました。購入したボードの数は、10枚どころの騒ぎではありませんが、結局私の心の琴線に触れるボードは見つかりませんでした。

ところが、意気消沈している私の目に、ネット上のある情報が飛びこんできたのです。それは「GBA にブートケーブルを接続することで、最大 256KB のプログラムを PC からダウンロードできる」という内容でした。それまで、私は「GBA でプログラムを起動するにはゲームパックが必須」と考えていたので、クロス開発の標的候補から GBA は完全に外れていたのです。しかし、ケーブル一本で好きなだけプログラムをPCから転送できるとなると、話は別です。

調べてみると、GBA のメインプロセッサは ARM7TDMI であることが判明しました。かねてから気になっていた、あの RISC CPU、ARM です。私自身は ARM を使用した経験はなかったのですが、GBA の魅力的なハードウェア環境が、私に即決を迫りました。

32ビット RISC CPU、400KB に迫る豊富なメモリー、240x160 の液晶、ずば抜けたグラフィック処理能力、デジタルサウンドチャンネルによる PCM 再生能力、OS の基本をなすタイマー割り込みと DMA 転送機構の実装、そして10種類のキー入力。Happy hacking を実現するためには、理想的な環境と言えます。

そして、私の気持ちをさらに駆り立てたのは、「任天堂と ARM の歴史」でした。当初、私には「なぜ任天堂が ARM を選択したのか」、その理由が分かりませんでした。しかし、色々調べていくうちに ARM を生み出した Acorn 社と任天堂の間には、いくつかの共通点が存在することに気づいたのです。

今でこそ両社は、世界を代表する企業に変貌を遂げていますが、その歴史は決して平坦なものではありませんでした。まさに山あり、谷あり。失敗と成功の積み重ねの上に、現在の栄光を勝ち取っていたのです。

そして、その栄光は両社がもつ強烈な spirit によって、裏付けられています。ARM の開発陣は CPU 設計に関しては素人同然の集団でしたが、徹底的に考え抜き、無駄を省き、創意工夫を凝らせることで、わずか2年で商用 RISC CPU を完成させました。

ファミコンやゲームボーイも同様であり、技術者達は考え抜くことで、十字キーのようなアイデアを産みだしました。6502 や Z80 のような枯れたハードウェアと技術に、創意工夫という新しい命を吹き込むことで、全世界に変革をもたらしたのです。

一見無関係にも思える両社の間には、一本の赤い糸がつながっている・・。私には、そんな風景が垣間見えたような気がします。

今の時代、「仏作って魂入れず」式の商品がほとんどであり、spirit が宿った製品は極めて稀な存在です。技術者魂が宿った ARM と GBA は、私達に「考え工夫することの尊さと素晴らしさ」を静かに訴えているのではないでしょうか?