業界独り言 VOL1 99/11

秋から、すぐそこの冬へ 寒くなってまいりました。

最近の組み込み業界では、技術の空洞化が著しい。そういったことがメーカーを離れて良くわかってきた。溜池テレグラムの威光もあって、W-CDMAはきっと離陸するのだろう。実際設計する人々の顔が見えないメーカーが増えているような気がする。不満を持ちやりたいことを掲げてやらせてくれる会社に意気を感じて転職するのも良いだろう。実際やりたい事が終わるまでは会社にいられるというような会社方針を打ち出している会社はあるようだ。他方、大学を出ても就職先がない。不景気だという。設計方針を誤って出したばかりの端末が、設計期間を見誤り春モデルを最近出荷開始したある会社は新製品なのに最初から1000円で、カメラ屋でディスカウントになっている。「ハードの設計は完了したがソフトの目処はたたない」

そんな風景を見つつ一生懸命やった仕事が方針の誤りで残念な結果になっているという事態なのだ。サポートをしているとメーカーの出来や風土などもよくわかる。大学で予備校の先生を呼んで補習をしている大学があるそうな。大学がそうならば、会社もおなじなのだろう。デジタルの端末を開発して結果として出てくるアナログの音の評価の支援がある。実際にイヤホン端子から取り出して録音したWAVファイルが添付されて解析してほしいという。凄い時代だ。こうした添付ファイルが処理できる人の手に渡って解析されて対策が打たれていく。時間を超える経度による時差が活躍している。小さな時差では、打ち合わせでひいきのチームの会話に終始して優勝できなくて残念でしたねなどという会話が必要になる。移動する新幹線の時間を活用できるのだろうか。

会社を辞めてみると、いろいろな立場の人と忌憚無い会話をできたりする時間が出来る。会社という枠をはずしてみると素敵な人が多いことに気がつく。会社の仕組みがカースト制のように思えてみたりする。カースト制の歴史をもつ人達と暮らしてフラットな組織で自由に活動していくのが当たり前になったことから、18歳で中国から渡米して25歳の今上級技術者として会社の製品の先端を牽引している人たちがいる。私の上司も私よりも若い。事業部長も同様だ。だが、気持ちでは負けていない。若いが年寄臭い日常をしいてしまうのは会社組織の性ではないだろうか。

続きを読む

Cコンパイラ開発顛末記 小窓次郎

はじめに
C3POとは、6809用に開発されたMicroCをベースにして日立のHD6301/6303にカスタマイズとチューニングを行った組み込み目的のCコンパイラです。現在DOSで動作するバイナリ-とソースコードとマニュアルなどがあります。開発の機会を与えてくださった、前職場の上司ならびに、快く端末開発の過程で付き合ってくれた仲間達、また没頭を許してくれた細君に感謝いたします。このコンパイラは、現在の状況で使う価値があるかといえば・・・?ということだと思います。まあ、まだチップとして630Xシリーズがあればフリーのコンパイラとしての価値があるのかもしれません。注意を加えるならば、このコンパイラはアセンブラソースコードを吐くタイプのコンパイラであってクロスアセンブラが必要になります。当時のクロスアセンブラの文法には準じたコードが出ますし、またその部分もコードが独立していますのでカスタマイズは可能です。ソースコードですのでご参照いただければ明白です。

開発されたのは、1984年12月が最初の版のリリースでした。1988年頃までは実務と趣味でメンテナンスをしてきたと思います。

アーカイブ(LZH形式です)

目的と開発の背景
このコンパイラの開発目的は次のようなものでした

  • 組み込み開発で適用可能なコンパイラが欲しかった
  • C言語を勉強する必要があった
  • アセンブラでのプログラミングノウハウをコンパイラにカプセル化したかった

今ならば、GCCも有りますし、昨今の溢れかえったFlashサイズなどからこだわりはなくなってしまったようですが、開発当時(1984)の組み込み開発事情を考えていただければまともに使えるコンパイラとは当時の8080用に開発されたLSI-Cだったかと思います。無論6809用であればMicroCはエレガントなコードを生成してくれました。コンピュータとしてのアーキテクチャが綺麗だったこともあります。しかし、私の暮らしていた組み込みの世界では、アーキテクチャよりも消費電力や多機能が搭載されていたマイクロコントローラという概念でかのモトローラと特許係争にまで陥ったほどのベストセラーになった日立の8ビットコントローラが厳然としたデファクトとしてありました。このCPUで16kBを越す大規模なソフトウェア開発の効率を上げたいというのが当時の背景でありました。

アセンブラベースで8kBぐらいの容量でメモリーダイヤル搭載の自動車電話を開発していた時代なのです。当時のアセンブラベースでICEと睨めっこしつつの開発というのは、現在のCベースで10MBを越すアプリケーション開発をしている状況から考えると稚拙に思われるかもしれません。せいぜい開発人数も3人で半年位かけて開発しているわけで8KBのコードですとアセンブラソースコードで9000行クラスでしょう。そうなると開発規模は、一人あたりの生産性は300ライン/月くらいだといわれていた時代でもあります。いまは、ベースとなるソースコードがCになって同様の数字なのでしょうか。アセンブラで記述するということによる問題点は相当の熟練を要するというのが背景にあります。スタック操作を誤れば簡単に暴走できますし、そうしたことからリアルタイムトレースといったツールや方法の必要論がまかり通っていました。

続きを読む