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