ターゲットとは何か

TOPPERS/ASPカーネルをターゲット依存部と非依存部に分けているわけですが、どうもこのターゲット依存部について、JSP時代のシステム依存部から違和感を感じていました。汎用性が悪いのです。
たとえば、あるLPCXpresso 1768や、EZ-KIT BF533のようなEVBを考えましょう。これらは一つのボード設計ですから、これらように専用のターゲットを作ります。LPCXpresso 1768なら、target/lpcxpresso1768 サブディレクトリに専用ターゲット依存部が用意されています。
さて、こうやって用意されたターゲット依存部ですが、次のようなことをするときに、汎用性が悪いと感じていました。

  • UART0ではなく、UART1をコンソールとしたい場合、ターゲット依存部を書き変えなければならない。
  • 内蔵RCオシレータではなく32kHz オンボード振動子を使う場合、ターゲット依存部を書き変えなければならない。

こういったところが変な設計であると感じていたのですが…どうやら私が間違っていたかもと思い始めています。
ターゲットとは、「プロジェクト」であって「ボード」ではないのかもしれません。そう考えると、なるほどと思えるんですよね。既存のターゲット依存部を利用するから悪いのであって、毎回プロジェクト用のターゲット依存部を、既存の物をもとに作ればいいのです。
それはそれでどうなのよ、と思うのですが、産業機器の開発サイクルを考えれば、そちらがまっとうな気がしてきました。ちゃちゃっとサンプルコードを書いている私のほうが異常なのです。