May 27, 2004H8モニタで浮動小数点を導入したH8モニタには、printfの機能が内蔵されていましたが、H8本体の内蔵メモリで実行できるようなサイズにおさえるために、文字列のみの表示が可能のようです。 しかし、なんとかして浮動小数点演算の結果を表示したい。強引ですが、やってみました。秋月の3069にある増設RAMの2Mbyteという大量のワークエリアをもってすれば、それが可能なのです。 ソースは続きをどうぞ。 #include <stdio.h>
#define printf ((int (*)(const char *,...))0x00002bb0) int main(){ 注意点を2つほど。 /usr/local/h8300-elf/lib/h8300h/libc.a(sbrk.o)(.text+0x1a): In function `_sbrk':
../../../../../../../newlib/libc/sys/h8300hms/sbrk.c:17: undefined reference to `_end' collect2: ld returned 1 exit status これはリンカスクリプトの中に_endという領域が定義されていないためにおきるエラーで、_endはプログラム領域の最後(普通はbssセクションの最終アドレス)をさすようにすれば解消されます。ヒープからメモリを使用するときに参照されているようです。 開発環境についてはこちら、あとリンカスクリプトやスタートアップルーチン、Makefileを公開中です。 コメント
コメントする
|
スポンサード リンク
|