プロが教えるわが家の防犯対策術!

C言語ですがちょっと特殊な範囲です。
H8マイコンについてどうしてもわからないことがあったので質
問させていただきます。

H8-3687+HEW4を使っております。
やりたいことはRAMではなくROMに書き込んだ状態で
printf/scanfを使用したいのです。
(Htermに文字列を表示するなど・・・。)
付属のstdio.hをインクルードしてもwrite/readが足りないとコンパ
イラにおこられます。
とりあえず、モニタのlower.cを改造して使えばコンパイルは
通るのですが、動作はしません。(-1が返ってきます。)
write単体では動くのですが・・・。

とにかく、ROMに書き込んでprintf/scanfをを使ってPCと通信したいの
で、よい方法があればよろしくお願いします。
stdioに限らず、等価な結果が得られればかまいません。

もちろん、モニタ上でprintfは問題なく動きます。

A 回答 (1件)

printfとscanfを動かすには、標準出力と標準入力を実装する必要があります。

通常はシリアルポートに割り付けることになると思います。
これは、質問者さんも書かれているようにlower.cを修正して使うことになります。厳密にはopenやcloseも実装しなければなりませんが、とりあえずwriteとreadを実装すれば十分でしょう。それぞれの関数の中の処理は自作する必要があります(H8のシリアル通信ならサンプルはいくらでもあると思います)。

> もちろん、モニタ上でprintfは問題なく動きます。

ちょっと、この意味がわかりません。
モニタというのはどのモニタのことを指していますか?

この回答への補足

補足させていただきます。

モニタとはルネサスの配布しているデバッグモニタです。
目的は、このモニタを使わずにprintf/scanfを使うことです。

lower.cを修正してwrite、readは実装しました。
コンパイルエラーは起こりません。
しかし、printfは動きません。
(信じられませんが、writeが呼ばれていない可能性が高いようです)
私がやったことは修正したlower.cをプロジェクトに追加しただけです。
おそらくは、printfがきちんとwriteを使ってくれるにはどうしたいいのかが問題だと思います。

ちなみにwrite単体は動作しますので、関数定義のミスの可能性は低そうです。

よろしくお願いします。

補足日時:2005/10/05 01:05
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!