平成26年4月14日
簡単な検証
モニタプログラムの作成と平行して、Hitech Cの評価を進めていました。
最初はCP/M環境での”Hello world”から初めて、組み込み向けに暫定的なスタートアッププログラムを作成し、最低限の動作ができるまでの確認が終わったので少しずつ文書作成に入ります。まだ、完全なROM化が出来るまでの確認は終わってはいません。したっがって実用できないと判断する可能性は残っていますが、その過程を知ることも多少の意味はあるでしょう。この中でROM化に必要なCコンパイラの機能についても一緒に書いていきます。
この検証過程で、このコンパイラのもつ幾つかの制約が見つかりました。最近のCコンパイラとの差異を先に書いておきます。致命的なものは無いように感じますが、これらの制約をもって使い物にならないと判断する人もいるでしょう。
・キーワード
volatile, constキーワードがサポートされていません。
・マクロ機能の記述の制約
”#”で始まるマクロ記述は行の先頭から記述しないとダメなようです。先頭に空白やタブを置くことも出来ません。
従って
#ifndef TEST_H
#define TEDT_H
#endif
のように横方向のインデントを使ってマクロの範囲を示すことが出来ません。必ず行の先頭から記述する必要があります。これは全てのマクロ行に対しての制約です。
・アセンブラによる記述
これはドキュメントの問題ですが、アセンブラレベルで関数定義を行うための情報が記載されていません。具体的には
・関数の引数へのアクセス方法
・関数の返り値の設定方法
・保存すべきレジスタのリスト
これが最も厳しい内容です。幸いなことに、コンパイラのライブラリソースリストが付属していますので、これらからルールを推定します。
タイトル先頭へ前へ 次へ タイトル末尾へ