といった利点があります。まあよくあるデバッガです。
詳しい使い方は HEW シミュレータ で検索してルネサス公式のpdfのマニュアルをダウンロードしてください。
できないことはありませんが、ちゃんと動くかの保証ができない上、シミュレーターIOが使えないので解説しません。 シミュレーターが動く新しいワークスペースを作成し、そこにソースコードを移行してください(intprg.cも書き換えてるなら忘れずにコピーする)。 どうしてもやりたい人はwikiの編集履歴から参照してください(うまくいく保証はしません)。
左側でAppliccationを選択、ワークスペース名(ここではH8simuとする)いれて”次へ”
既存のプロジェクトに導入する人はどのフォルダに作るかをしっかり覚えておいてください。
自分の使用しているCPUシリーズとタイプを選択して”次へ”(この例ではH8 3052F)
ここの設定項目はCPUの種類ごとに変わります。
ここの設定で次のターゲット選択画面で、どのターゲットを選ぶか決まります。
H8 3052FはAdvanceモードしかないので特に気にしなくていいです。
sh 7125だとエンディアンの選択があります。
“次へ”
“I/Oライブラリ使用”にチェック(シミュレーターIOを使うため)。
ターゲット選択画面が出るまで”次へ”
ターゲットを選びます
2つ前の画面で選んだ動作モードに対応します。
この例だとAdvanceモードなので、HAの方を選びます。
よくわかんない人は全部にチェックでもいいと思います。
“完了”か、”次へ”で最後まで進んで”完了”
シミュレータ・デバッガを使えばプログラムを一行ずつ実行できますが、コンパイラはコンパイルするときにデフォルトで最適化を行い、省略できるコードは省略してしてしまうので、この状態だとうまくプログラムを一行ずつ実行できません。なので次のどちらかの方法で最適化を切ってからコンパイルします(最適化されたコードをデバッグしたい場合は切らないでください)。
F7を押してビルド
“ダウンロードしますか?”というダイアログがでてきたら”はい”
ブレークポイント : これがある場所で止まります
ステップオーバー :一行ずつ実行します
ステップイン : 一行ずつ実行しますが、関数の中に入ります
ステップアウト :関数の外に出ます
左から
CPUリセット、実行、カーソルまで実行、リセットして実行、?、ステップイン、ステップオーバー、ステップアウト、etc…
“実行”は次のブレークポイント(BP)まで実行します。
変数の中身を見たり、変更したりできます。
LEDやスイッチ等のアドレスを簡単に調べられる裏ワザがあります。ライントレーサのLEDを例にして解説してみます。
void *po; po=&P8.DR.BIT;
まず、コンパイルオプションの最適化を切って、void *(ポインタ)型変数を宣言します(volatileだとうまくいかない)。次にP8とかのレジスタのポインタを代入します。
&を付け忘れ無いように注意しましょう。
コンパイルしてポインタ変数をウォッチします。
po=&P8.DR.BIT.B0
とかやるとエラーになります。
iodefne.hでP8.DR.BYTEがunsigned char型で宣言されているので、poはchar*型の方がいいかもしれません。
タイマーでグローバル変数を操作しているなら、グローバル変数にアクセスする関数を作って、シミュレータでないときはその関数内で割り込みを実行する等工夫する
Debug … シミュレータデバッガのためのデバッグ情報が埋め込まれた大きい実行ファイルができる
Release … シミュレータデバッガのためのデバッグ情報が埋め込まれない、小さい実行ファイルができる