/ «2003-10-25 (Sat) ^ 2003-10-27 (Mon)» ?
   西田 亙の本:GNU 開発ツール -- hello.c から a.out が誕生するまで --

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


2003-10-26 (Sun)

[Thoughts] 機械語への道

S嬢来る

skyfree.org 上で「PIC プログラミング道場」を執筆していたS嬢が友人と共に、来松。PIC プログラミング道場は、私のサイトの中でもかなりの人気を博し、今でも「その後はどうなったのか?」と連絡を頂くことがある。

私の怠慢で尻切れトンボになっていたのだが、今春晴れて博士になられたS嬢は、若干時間の余裕が出来たらしい。聞けば、「是非とも機械語をマスターしたい」のだそうである。

「しかし、修行の道は厳しいのである。誰もが手軽に機械語をマスター出来る訳ではないのだよ。それでもやるかね?」という問いに対して、即座に「やります!」と。彼女の決心は固いらしい。心なしか、S嬢の目がウルウルしているように見える。秋晴れの空を見上げながら、二人は新しい門出に向けて、砥部焼きの絵付けに熱中するのであった・・(?)。

機械語への道

高級言語やスクリプト言語を自在に操るためには、アセンブリ言語・機械語レベルの知識が必要なことは、言うまでもない。一方で、BASIC や C の初歩レベルにある人達が、独学で機械語を習得することは、至難の技である。「機械語学習の必要性は頭では分かっているのだけれども、何から始めれば良いのか分からない・・」このような思いを秘めた人達は、全世界でかなりの数に上るのではなかろうか?

思い返せば、一人の人間がシステム全体を見渡すことが出来たのは、20年前の8ビットマイコンまでのような気がする。64KBというメモリー空間は、今となっては猫の額にも満たないほどの広さだが、個人が好き勝手に暴れ回るには、これでも広大すぎる。1MB、1GBなど、狂気の沙汰だ。過食はいけない。

とは言うものの、私達の身の回りにあるのはGHzクラスの32ビット・パソコンばかりだ。Replica1 という特殊なものもあるけれど、堅気の人達の手に届く範囲ではない。何より、高価である。

そこで私が一番最初に考えた候補が Microchip 社 の PIC である。日本でも秋月電子や書籍を通じて有名になったマイクロコントローラーだが、調べれば調べるほど、私の食欲は減退していった。理由は色々あるのだけれど、最大の理由はドキュメントが今ひとつであった点だろう。

PIC を探索している過程で、世の中のハードウェア野郎達の間で、すこぶる人気の高いマイクロコントローラーが存在することを知る。言わずと知れた ATMEL 社の AVR だ。これまで随分多くの会社のドキュメントを見てきたが、ATMEL 社が配布している文書群の品質たるや、ダントツ・ブッチギリの世界一である。先日紹介した Motorola でさえ、ATMEL には遠く及ばない。日本のデバイス企業など、月とスッポン、土俵に上がる前に勝負は付いている・・といったところか。

ATMEL 社の文書は、何が凄いのか?日本の企業には何が欠けているのか?これについては、いつかまとめるつもりだが、端的に言えば、ユーザーとの Eye contact を取ることができるかどうか、この点にかかっている。Eye contact はプレゼンテーションにおける、基本中の基本だが、その重要性を説く日本人は少ない。

なにがしかの授業をイメージしてほしい。ある教師は、目線を学生に合わせ、彼らの理解度を推し量りながら授業を進める。もう一人の教師の目線は、始終テキストと黒板にのみ向かい、学生と目を合わせることはない。良く見受けられる光景である。学会やシンポジウムでも、これと全く同じ光景を観察することができる。言うまでもなく、前者は ATMEL、後者は日本企業の姿だ。悲しいことだが、これが現実だ。

話を元に戻そう。教育上の観点から考えれば、学生に最もふさわしいマイクロコントローラーは、ATMEL AVR だろう。しかし、ここで立ちはだかるのが、「良いものが必ず売れる訳ではない」という法則だ。実際、AVR をベースにした優秀なキットは、日本では手に入れることが出来ない。

「それでも、ワシは AVR で勉強したいんや!」という、熱いハートを持った方には、ブルガリアの OLIMEX 社が販売している AVR ボードをお勧めする。私が知る限り、最もバランスが取れた AVR 学習キットである(しかも安価)。ブルガリアと言うと、ヨーグルトと新体操ぐらいしか知らなかったのだが、非常に丁寧な対応で、好感度大である(元々は 安価な PCB ボードデザインで有名な会社)。

ということで色々彷徨した挙げ句に辿り着いたのが、ルネサス(旧 日立・三菱)社の H8 シリーズ。正直、ATMEL の優れたドキュメントを知った後では、H8 の資料を読破するのは辛い作業だ。しかし、秋月電子の安価なキット、容易な入手性、GCC の対応状況、などを考慮すると、やはりこの選択肢しかないのである。

色々熟考した末、S嬢の機械語デビューには秋月電子の「AKI-H8/3664F タイニーマイコンボードキット単品」および「H8タイニーI/Oボード」を使用することに決定!(まだ商品が手元に到着していないので、変更の可能性あり)

驚くなかれ、ふたつ合わせて2700円也である。これで16ビットレジスター16本を持った、16MHz CPU が手に入るのだ。しかも、CPU 内部には RAM 2KB、Flash ROM 32KB が搭載されており、RS-232C を通じて簡単にプログラム出来てしまうのである!全く、なんて素敵な時代になったのだ。こんな楽しいことを知らずにあの世へ参る訳には行かぬ。

S嬢よ、2700円で機械語ワールドを飛翔するのじゃ!