この文書の現在のバージョンと選択したバージョンの差分を表示します。
hewのシミュレータ・デバッガ [2013/02/04 13:05] member |
hewのシミュレータ・デバッガ [2014/04/29 18:27] (現在) member |
||
---|---|---|---|
ライン 6: | ライン 6: | ||
* 一行ずつ目で追いながらプログラムを実行できる | * 一行ずつ目で追いながらプログラムを実行できる | ||
* 変数の値の確認・変更ができる | * 変数の値の確認・変更ができる | ||
+ | * シリアル通信なしでprintfが使える(シミュレーターIO) | ||
といった利点があります。まあよくあるデバッガです。 | といった利点があります。まあよくあるデバッガです。 | ||
詳しい使い方は [[https://www.google.co.jp/search?q=HEW+シミュレータ|HEW シミュレータ]] で検索してルネサス公式のpdfのマニュアルをダウンロードしてください。 | 詳しい使い方は [[https://www.google.co.jp/search?q=HEW+シミュレータ|HEW シミュレータ]] で検索してルネサス公式のpdfのマニュアルをダウンロードしてください。 | ||
- | ===== シミュレータ導入の流れ ===== | + | ===== 既存のワークスペースにシミュレータを導入したい ===== |
- | 新規にシミュレータが使えるプロジェクトをつくる場合は新規プロジェクト作成画面で設定してやればいいのですが、既存のプロジェクトにシミュレータを導入する場合、 | + | できないことはありませんが、ちゃんと動くかの保証ができない上、シミュレーターIOが使えないので解説しません。 |
- | - シミュレータ使用可能な新規プロジェクトを作成し | + | シミュレーターが動く新しいワークスペースを作成し、そこにソースコードを移行してください(intprg.cも書き換えてるなら忘れずにコピーする)。 |
- | - 生成されたシミュレータ用の設定ファイル(セッションファイル)をインポートする | + | どうしてもやりたい人はwikiの編集履歴から参照してください(うまくいく保証はしません)。 |
- | という少しめんどくさい手順を踏まなければいけません。 | + | |
====== シミュレータ導入 ====== | ====== シミュレータ導入 ====== | ||
ライン 32: | ライン 32: | ||
ここの設定項目はCPUの種類ごとに変わります。 | ここの設定項目はCPUの種類ごとに変わります。 | ||
ここの設定で次のターゲット選択画面で、どのターゲットを選ぶか決まります。 | ここの設定で次のターゲット選択画面で、どのターゲットを選ぶか決まります。 | ||
- | 既存のプロジェクトに導入する人は、ここの設定を既存の物と合わせてください(合わせなくても良いかもしれない)。\\ | + | H8 3052FはAdvanceモードしかないので特に気にしなくていいです。\\ |
+ | sh 7125だとエンディアンの選択があります。 | ||
+ | "次へ" | ||
+ | |||
+ | {{:新規プロジェクト3-2.png|}}\\ | ||
+ | "I/Oライブラリ使用"にチェック(シミュレーターIOを使うため)。 | ||
ターゲット選択画面が出るまで"次へ" | ターゲット選択画面が出るまで"次へ" | ||
{{:新規プロジェクト4.png|}}\\ | {{:新規プロジェクト4.png|}}\\ | ||
ターゲットを選びます\\ | ターゲットを選びます\\ | ||
+ | 2つ前の画面で選んだ動作モードに対応します。 | ||
この例だとAdvanceモードなので、HAの方を選びます。 | この例だとAdvanceモードなので、HAの方を選びます。 | ||
よくわかんない人は全部にチェックでもいいと思います。\\ | よくわかんない人は全部にチェックでもいいと思います。\\ | ||
ライン 43: | ライン 49: | ||
- | ===== 既存のプロジェクトにシミュレータを導入する ===== | ||
- | シミュレータを導入したい既存のプロジェクト(ワークスペース)を開いておきます | ||
- | {{:既存プロジェクト1.png|}}\\ | ||
- | デバッグ(D)=>デバッグセッション\\ | ||
- | |||
- | {{:デバッグセッション.png|}}\\ | ||
- | ダイアログが開いたら"追加" | ||
- | |||
- | {{:simセッション.png|}}\\ | ||
- | "既存セッションの使用"を選んで"参照"で先ほど作ったプロジェクトのフォルダの中にあるデバッグ用の設定ファイルである\\ | ||
- | Simなんとか.hsf | ||
- | を選んで、名前のところに適当にシミュレータ用のセッション名を入れて(ここではH8simuSession)"OK"押して"OK" | ||
- | ターゲットを複数選んだ人はすべて追加してください。\\ | ||
- | |||
- | これで導入は完了です。 | ||
ライン 140: | ライン 131: | ||
<code> | <code> | ||
- | int *po; | + | void *po; |
po=&P8.DR.BIT; | po=&P8.DR.BIT; | ||
</code> | </code> | ||
- | まず、コンパイルオプションの最適化を切って、int *(ポインタ)型変数を宣言します(volatileだとうまくいかない)。次にP8とかのレジスタのポインタを代入します。 | + | まず、コンパイルオプションの最適化を切って、void *(ポインタ)型変数を宣言します(volatileだとうまくいかない)。次にP8とかのレジスタのポインタを代入します。 |
&を付け忘れ無いように注意しましょう。\\ | &を付け忘れ無いように注意しましょう。\\ | ||
コンパイルしてポインタ変数をウォッチします。\\ | コンパイルしてポインタ変数をウォッチします。\\ | ||
ライン 149: | ライン 140: | ||
<code>po=&P8.DR.BIT.B0</code> | <code>po=&P8.DR.BIT.B0</code> | ||
とかやるとエラーになります。 | とかやるとエラーになります。 | ||
+ | |||
+ | |||
+ | iodefne.hでP8.DR.BYTEがunsigned char型で宣言されているので、poはchar*型の方がいいかもしれません。\\ | ||
====== 注意 ====== | ====== 注意 ====== |