[[
hewのシミュレータ・デバッガ
]]
Mice Wiki
現在位置:
IndexPage
»
hewのシミュレータ・デバッガ
文書の表示
以前のリビジョン
最近の変更
索引
ログイン
この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。
====== はじめに ====== ===== シミュレータ・デバッガで何ができるのか ===== * 実機に転送することなくプログラムが動かせる * 一行ずつ目で追いながらプログラムを実行できる * 変数の値の確認・変更ができる といった利点があります。まあよくあるデバッガです。 詳しい使い方は [[https://www.google.co.jp/search?q=HEW+シミュレータ|HEW シミュレータ]] で検索してルネサス公式のpdfのマニュアルをダウンロードしてください。 ===== シミュレータ導入の流れ ===== 新規にシミュレータが使えるプロジェクトをつくる場合は新規プロジェクト作成画面で設定してやればいいのですが、既存のプロジェクトにシミュレータを導入する場合、 - シミュレータ使用可能な新規プロジェクトを作成し - 生成されたシミュレータ用の設定ファイル(セッションファイル)をインポートする という少しめんどくさい手順を踏まなければいけません。 ====== シミュレータ導入 ====== ===== シミュレータ使用可能な新規プロジェクトの作成 ===== {{:メニュー.png|}}\\ メニューのファイル=>新規ワークスペース {{:新規プロジェクト1.png|}}\\ 左側でAppliccationを選択、ワークスペース名(ここではH8simuとする)いれて"次へ"\\ 既存のプロジェクトに導入する人はどのフォルダに作るかをしっかり覚えておいてください。 {{:新規プロジェクト2.png|}}\\ 自分の使用しているCPUシリーズとタイプを選択して"次へ"(この例ではH8 3052F) {{:新規プロジェクト3.png|}}\\ ここの設定項目はCPUの種類ごとに変わります。 ここの設定で次のターゲット選択画面で、どのターゲットを選ぶか決まります。 既存のプロジェクトに導入する人は、ここの設定を既存の物と合わせてください(合わせなくても良いかもしれない)。\\ ターゲット選択画面が出るまで"次へ" {{:新規プロジェクト4.png|}}\\ ターゲットを選びます\\ この例だとAdvanceモードなので、HAの方を選びます。 よくわかんない人は全部にチェックでもいいと思います。\\ "完了"か、"次へ"で最後まで進んで"完了" ===== 既存のプロジェクトにシミュレータを導入する ===== シミュレータを導入したい既存のプロジェクト(ワークスペース)を開いておきます {{:既存プロジェクト1.png|}}\\ デバッグ(D)=>デバッグセッション\\ {{:デバッグセッション.png|}}\\ ダイアログが開いたら"追加" {{:simセッション.png|}}\\ "既存セッションの使用"を選んで"参照"で先ほど作ったプロジェクトのフォルダの中にあるデバッグ用の設定ファイルである\\ Simなんとか.hsf を選んで、名前のところに適当にシミュレータ用のセッション名を入れて(ここではH8simuSession)"OK"押して"OK" ターゲットを複数選んだ人はすべて追加してください。\\ これで導入は完了です。 ====== シミュレータを使用してデバッグする ====== ===== 最適化無効の話 ===== シミュレータ・デバッガを使えばプログラムを一行ずつ実行できますが、コンパイラはコンパイルするときにデフォルトで最適化を行い、省略できるコードは省略してしてしまうので、この状態だとうまくプログラムを一行ずつ実行できません。なので次のどちらかの方法で最適化を切ってからコンパイルします(最適化されたコードをデバッグしたい場合は切らないでください)。 - 変数をvolatile修飾子をつけて宣言し、その変数に関わるところのみ無効化 - コンパイルオプションで全体的に無効化(下の画像を参照) {{:コンパイルオプ1.png|}}\\ {{:コンパイルオプ2.png|}}\\ ===== 準備 ===== {{:セッション.png|}}\\ 右上を"Debug"とシミュレータ用のセッションにする\\ F7を押してビルド\\ "ダウンロードしますか?"というダイアログがでてきたら"はい"\\ {{:ダウンロード2.png|}}\\ "なんとか.abs - なんとか"が白紙のアイコンになってる場合はダブルクリックして白紙じゃなくしてください。\\ {{:ダウンロード.png|}} ===== ブレークポイントとステップ実行 ===== ==== デバッガの用語 ==== ブレークポイント : これがある場所で止まります\\ ステップオーバー :一行ずつ実行します\\ ステップイン : 一行ずつ実行しますが、関数の中に入ります\\ ステップアウト :関数の外に出ます\\ {{:デバッグ.png|}} 左から CPUリセット、実行、カーソルまで実行、リセットして実行、?、ステップイン、ステップオーバー、ステップアウト、etc...\\ "実行"は次のブレークポイント(BP)まで実行します。 ==== ブレークポイントの設定 ==== {{:bp.png|}}\\ S/Wブレークポイントの欄をダブルクリックします。 ==== 実際にデバッグする ==== まずどこかにBPを設定し、"CPUリセット"{{:cpuリセット.png|}}を押してから{{:実行.png|}}"実行"を押すか、{{:リセットして実行.png|}}"リセットして実行"を押す\\ あとは好きにステップインとかしてください。 ===== 変数のウォッチ ===== 変数の中身を見たり、変更したりできます。 ==== ウォッチ画面 ==== 上のバーの\\ {{:ウォッチ1.png|}}\\ またはメニューから\\ {{:ウォッチ2.png|}}\\ で変数のウォッチ画面を開きます。 ウォッチウィンドウを移動させるとき、Ctrlキーを押しながら移動させるとメインウィンドウに結合しません。 ==== 変数の登録 ==== 変数を登録しないと変数をウォッチできません。ウォッチウィンドウの"シンボル登録"ボタンを押して、変数名を入力して登録してください。\\ {{:ウォッチ3.png|}} **最適化で変数がなかったことにされている場合はウォッチできません。** ==== 基数の変更 ==== 変数を選択し(ShiftキーやCtrlキーを使って複数選択もできます)右クリックして基数を変更出来ます。\\ {{:基数変更.png|}} ===== LEDパネル ===== LEDやボタン等のアドレスがわかっていればGUI I/Oでパネルを作ることができます。\\ {{:guiパネル.png|}}\\ 詳しい方法はpdfのマニュアルをみてください。 {{:ledの設定.png|}} ==== アドレスを簡単に知る方法 ==== LEDやスイッチ等のアドレスを簡単に調べられる裏ワザがあります。ライントレーサのLEDを例にして解説してみます。 <code> int *po; po=&P8.DR.BIT; </code> まず、コンパイルオプションの最適化を切って、int *(ポインタ)型変数を宣言します(volatileだとうまくいかない)。次にP8とかのレジスタのポインタを代入します。 &を付け忘れ無いように注意しましょう。\\ コンパイルしてポインタ変数をウォッチします。\\ {{:ウォッチ4.png|}}\\ <code>po=&P8.DR.BIT.B0</code> とかやるとエラーになります。 iodefne.hでP8.DR.BYTEがunsigned char型で宣言されているので、poはchar*型の方がいいかもしれません。\\ ====== 注意 ====== ===== レジスタ ===== * CPUリセットしてもレジスタの値はリセットされません(LEDとかは光ったまま) *実機では書き込みできないレジスタに書き込めたり、読み出すと実機をシミュで違う値になってたりするので、コードによっては必ず実機と同じ動きをするとは限らないことに注意\\ *例 P8.DDR=0なのにP8.DR.BYTEに代入できる(LED光る)\\ *例 P8.DDRを読むと初期値が0になっている(実機だと常に255が返ってくる) ===== タイマーは使用できない ===== タイマーでグローバル変数を操作しているなら、グローバル変数にアクセスする関数を作って、シミュレータでないときはその関数内で割り込みを実行する等工夫する ====== Tips ====== ===== コンフィギュレーション ===== Debug ... シミュレータデバッガのためのデバッグ情報が埋め込まれた大きい実行ファイルができる\\ Release ... シミュレータデバッガのためのデバッグ情報が埋め込まれない、小さい実行ファイルができる ===== ウォッチとかの浮いてる画面はctrlを押しながら移動するとメインのウィンドウに結合されない ===== ===== ステップインすると鬱陶しい ===== ステップアウトしましょう。 もしくは、分割コンパイルしているのなら、 {{:デバッグ情報出力.png|}}\\ ビルドオプションで、ステップインしたくない関数のあるファイルを選択し、カテゴリ:オブジェクトで"デバッグ情報出力"のチェックを外し メニュー=>基本設定=>オプションのデバックで、"デバッグ情報のないアドレスにステップインしない"にチェックしてください。
/home/users/2/deca.jp-mice/web/cgi/dokuwiki/data/attic/hewのシミュレータ・デバッガ.1359951093.txt.gz · 最終更新: 2013/02/04 13:11 by member
文書の表示
以前のリビジョン
文書の先頭へ