最近、「12ステップで作る組込みOS自作入門」
12ステップで作る組込みOS自作入門 (2010/05) 坂井 弘亮 商品詳細を見る |
を参考にしながら AKI-H8 3069Fのボードで遊んでいます。
組込み開発環境ではprintf()関数がないので、相当する関数を自作する必要があります。
そこで、次のようなIFの関数を作る事にしました。
void printNumDec(ULONG num)
引数で受け取った num を10進数でシリアルに出力する関数です。
この関数ないで、以下のようなコードを書いたらコンパイルエラーになりました。
while ( (num / column == 0) )
{
//column /= 10;
//cnt--;
}
■gccのコンパイル結果
"lib.c:(.text+0x175): undefined reference to `___udivsi3'"
どうも
while ( (num / column == 0) )
の部分で起きているみたいです。
whileループの中で計算をしたらだめなのかと思いましたが、
通常VisualStudioやGCCではこんなエラーは発生しません。
まだ原因がよくわかっていないので調べてみたいと思います。
【追記】
column /= 10;
のようなコードでも
lib.c:(.text+0x18d): undefined reference to `___udivsi3'
とのリンクエラーが発生しています。
やれやれ。。。