重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

Windows系開発のみで組み込み開発超ど素人です。

題名のソフトのVer4.03を使っているのですがデバッグ環境を構築しようとウィザードを使ってファイルを生成し、ステップ実行などデバッグモードでの実行ができるようになり、main()に

int a;
a=10;
printf("%d", a);

を入れてprintfのところでプログラムを停止し、aの値を参照したいのですがインスタントウォッチでみるとNot available nowと表示され、値が分かりません。

aの値の確認はどのようにすればできるのでしょうか?
また、printf()はどこに出力されるのでしょうか?

A 回答 (4件)

>ここにprintf()を定義するということでしょうか?


printfを直接書くのではありません。
readとかwriteとか、それらしい関数がありませんか?その中身を書くんです。

あるいは、
/**************************************************************************/
/* Declaration of reference function */
/* Reference of assembly program in which the simulator debugger input or */
/* output characters to the console */
/**************************************************************************/
extern void charput(char); /* One character input */
extern char charget(void); /* One character oputput */
と、あるようにcharput,chargetの中身を書くのか。
このあたりはターゲットによっていろいろやり方が変わってくる話だと思います。

私の環境は1.0なので、細かい違いなどありましたらご容赦願います。
    • good
    • 0
この回答へのお礼

連絡が遅くなってすいません。
本格的に忙しくなってきてしまい時間を掛けられなくなってしまいました。
もう少し勉強してからまたご質問させていただきます。
ありがとうございました。

お礼日時:2008/03/27 10:06

R8CでHelloWord のサイトURLがあるので参考にしてください。



以下、補足(蛇足かもしれない)
Hewは、環境の枠のようなものなので、内蔵されているシミュレータによって
動作等が変わってきます。シミュレータは、マイコン別になっていますので
それぞれ設定等が違うかと思います。

H系はあまり詳しくないのですが、たとえばSH3なら、
「I/Oシミュレーション」とか言うボタンがあるので、それをクリック
すると、Windowが表示され、そこに出ます。

M系は、ちょっとややこしくて、ライブラリをコンパイルし直さないといけない
です。といってもMake一発ですが
表示には
メニュー表示->CPU->出力ポート
で使われているUART0か1と表示フォーマットの設定が必要です。

参考URL:http://alvs.dyndns.tv/~vcom/modules/pukiwiki/?HE …
    • good
    • 0
この回答へのお礼

連絡が遅くなってすいません。
本格的に忙しくなってきてしまい時間を掛けられなくなってしまいました。
時間が空いたときに参考にさせていただきます。
ありがとうございました。

お礼日時:2008/03/27 10:08

>また、printf()はどこに出力されるのでしょうか?


環境、バージョンにもよるかと思いますが、自分で書かなくてはならないと思います。
スケルトンの中に、lowsrc.cというファイルがありませんか?

この回答への補足

回答ありがとうございます。
はい、lowsrc.cはプロジェクトの中にありました。
ここにprintf()を定義するということでしょうか?
そうだとすると、ウィザードで自動で生成されたりしないでしょうか?

補足日時:2008/03/19 17:31
    • good
    • 0

本当にこれだけのソースなら、最適化されて、aという変数は存在しないでしょう。


つまり、以下のようなソースにされてしまいます。
printf("10");

なので、
>Not available now
となります。

この回答への補足

ありがとうございました。
volatileをつけて表示できるようになりました。

printf()の出力先はご存じないでしょうか?

補足日時:2008/03/19 11:31
    • good
    • 0

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