(toppers-users 1612) Re: 機種依存部の階層構造について(Re:

TAKADA Hiroaki hiro @ ertl.jp
2004年 9月 7日 (火) 01:36:08 JST


機種依存部の3階層化についてですが、最初に ARM に移植した時から話題には
なっていました。ARM/MIPS のように IRC が決まらないプロセッサでは、確か
に悩ましいです。

結論から言いますと、やりたくないと考えています。というのは、2階層でも
複雑なのに、さらに複雑化させるのは避けたいためです。Makefile を見てい
ただけると、どう複雑になるか想像がつくと思います。

もう1つの理由は、2階層のままでも、3階層に近いことができる気がすること
です。これについては、下に書きます。さらに、3階層化すれば、将来的には
さらに4階層化したいという声が出てくると思います。コア、コア+IRC、チッ
プ、ボードという4階層です。

IRC が決まらないといっても、ある程度種類が限られるなら、プロセッサ依存
部に置いて、#ifdef で切り分けるのがよいかと思います。IRC は、割込みハ
ンドラの出入口にかかわってきますので、今井さんが書かれているように性能
を重視するなら、この手が有力かと思います。また、IRC 毎にファイルを分け
て、Makefile.config に #if を使う手もあります。

IRC がチップ/ボード毎に違うなら、IRC はシステム依存部に置けばよいと思
います。が、これはあまり考えにくい気がします。

中間的な方法としては、主要な IRC 対応のコードをプロセッサ依存部に置い
て、システム依存部の Makefile.config でどれを使うか指定する方法もある
と思います。

このように考えると、今の2階層のままでも、3階層に近いことはできる気がす
るのですが、いかがでしょうか?

高田広章
名古屋大学