ARM基板向けのプログラムをシミュレーションで動作確認 ―― Interface 2009年5月号付属基板を一足先に体験

三好 健文

tag: 組み込み Interface

技術解説 2009年3月17日

3.初めてのシミュレーション

 それでは,実際にプログラムをシミュレーションしてみましょう.ここでは,開発環境「IAR Embedded Workbench」の無料評価版(コード・サイズ制限版)を使って作成したプログラム(FirstProject.hex)編注1の動作を確認してみます.


編注1;このプログラムは,Interface 2009年4月号 第3章において,開発環境の学習用に作成したものである.プロジェクト・ファイルはInterface誌のダウンロード・ページから,2009年4月号 第3章のサンプル・プロジェクト一式として入手できる.また,「IAR Embedded Workbench」無料評価版はIARシステムズのWebサイト(ダウンロードのページ)から入手できる.詳しくはInterface 2009年4月号を参照のこと.

●オブジェクト・ファイルのロード

 プログラムのオブジェクト・ファイルをプロセッサにロードします.まずVPAの左ペインにあるデバイス・ツリーの中のARM7TDMI(今回使用するARMプロセッサ)を右クリックし,コンテクスト・メニュー中の「Load Image」を選択します(図7).すると図8に示すように,ロードするオブジェクト・ファイルを決定するためのダイアログが開きます.

f7.gif
[図7] プログラムをシミュレータにロードする

f8.gif
[図8] プロセッサにロードするファイルを選択する

 このダイアログでは,ロードする対象となるデバイスとアドレス・オフセット,ファイルを選択します.デバイスとアドレス・オフセットはデフォルト値のままでかまいません.ファイルは,「Image File:」の一番右側にあるアイコンをクリックして,表示されるファイル選択ダイアログから選択できます.

 FirstProjectで生成したファイル編注2には,FirstProject.hexとFirstProject.outが存在していますが,今回は拡張インテル形式のFirstProject.hexを利用します.ファイルが選択できたら,「Load Image」ボタンをクリックすることで,オブジェクト・ファイルのロードは終了です.ロードが完了すると,図9のようにVPA画面中のメモリの値が変化します.


編注2;2009年4月号の記事に沿って設定していた場合,FirstProjectのファイルはC:\CQ\Interface\IAR_Workspace\FirstProject\Debug\Exe\FirstProjectに存在する.

f9.gif
[図9] ロード後のVPA の画面

●シミュレーションの実行

 オブジェクト・ファイルのロードが完了したら,いよいよシミュレーションの実行です.シミュレーションは,ツール・バー上の三角形のアイコンをクリックすることで開始します[図10(a)].シミュレーションが開始すると,三角形のアイコンが灰色に消灯します[図10(b)].

f10a.gif
(a)開始前

f10b.gif
(b)開始中

[図10] シミュレーション開始アイコン

●シミュレーション実行中のプロセッサの様子を観察しよう

 シミュレーション実行中の動作は,プログラム・カウンタやレジスタの振る舞いで確認できます.まずは,プロセッサのレジスタの値を観察することでプログラムが動作しているかどうかを確認してみます.最初に左ペインのデバイス・ツリー中のARM7TDMIのところで右クリックして,コンテクスト・メニューの中の「Open In Register View」という項目を選択します.すると右ペインに,ARM7TDMIの持つレジスタなどの名前,およびその値が列挙されます(図11).表示されたアイテムがARM7TDMIのみでツリーが折り畳まれている場合には,「+」の部分をクリックしてツリーを展開してください.このRegister Viewの表示はシミュレーション中でも実行できます.シミュレーションに伴って各項目が変化するさまを観察できます.そのサイクルで変更があった項目は赤字で表示されます(図12)

f11.gif

[図11] プロセッサのレジスタの値を表示する(クリックすると拡大)

f12.gif
[図12] シミュレーションによって内部の状態が変化している様子(クリックすると拡大)

●付属基板GUIのLEDの点滅を確認

 次に,付属基板GUIのウィンドウを表示してみましょう.シミュレーションは動作させたままです.付属基板のGUIウィンドウをしばらく観察していると,基板の画像右上のLEDが点灯から消灯,そしてまた点灯していく様子が確認できます.図13は,ちょうどLEDが消灯したタイミングをキャプチャしたものです.このシミュレーションの結果は,そのまま実際の付属基板のLEDの点滅に相当します.

f13.gif
[図13] 付録基板の画面を表示

●シミュレーションをリセットしてやり直す

 シミュレーションは,何度でもリセットしてやり直せます.シミュレータをリセットするためには,ツール・バー中央の赤と緑の矢印が円を描いているアイコンをクリックします(図14).シミュレーション実行中や一時停止中でもリセットは実行可能です.

f14.gif
[図14] シミュレーションの再スタート

 この方法でシミュレータをリセットした場合,プロセッサ上のメモリの値はきれいにクリアされます.そのため,リセット後に再びシミュレーションを実行するには,プログラムをARM7TDMIにロードするところからやり直す必要があることに注意してください.

組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! FPGAマガジン No.12『ARMコアFPGA×Linux初体験』好評発売中

FPGAマガジン No.11『性能UP! アルゴリズム×手仕上げHDL』好評発売中! PDF版もあります

PICK UP用語

EV(電気自動車)

関連記事

EnOcean

関連記事

Android

関連記事

ニュース 一覧を見る
Tech Villageブログ

渡辺のぼるのロボコン・プロモータ日記

2年ぶりのブログ更新w

2016年10月 9日

Hamana Project

Hamana-8最終打ち上げ報告(その2)

2012年6月26日