2001/02/09 【ソフトウエア編TOPに戻る】
ニーモニックを使って作ったプログラムをAKI-H8/3048F CPUボードに書き込み、動作させるまでの手順を簡単にご紹介します。開発環境は、1.AKI-H8ソフトウエアの開発環境のページを参照して下さい。
ここでは以下の内容についてご紹介しています。
2−1.メモ帳(notepad.exe)でアセンブラプログラムを書く
2−1.メモ帳(notepad.exe)でアセンブラプログラムを書く
アセンブラ言語(ニーモニック)で作るプログラムは、CPUが行なう動作ひとつひとつを記述していきます。今回はテスト用に、以下のプログラムをメモ帳で書いてみました。
なお、コピーして実際に試される場合には、ここをクリックしてLEDTEST1.MARをダウンロードして下さい。下記のグレーの部分をカットアンドペーストしてもうまく行かないかもしれません。
|
;TEST PROGRAM BY RIKIYA 2001/02/13 ;PROGRAM NAME [LEDTEST1.MAR] ;→全BITが出力モードに設定される。 MOV.B #H'00,R0L
;R0Lレジスタに00を書き込む
;→プルアップ抵抗なし ;メインルーチン--------------------------------------------------
|
このプログラムでは、AKI-H8/3048FのPORT5を出力用に設定し、ある時間をおいてPORT5から01hと02hを交互に出力させます。01h,02hは16進数で8bitデータを表した書き方ですが、これを2進数で表すと以下のようになります。
16進数 01h → 2進数 0000 0001
16進数 02h → 2進数 0000 0010
ところで、AKI-H8開発キットでは、標準でPORT5の下位2bit分にLEDランプが付いています。なので、上のプログラムを実行すると、開発キットのLED1とLED2が、交互に点滅を繰り返す動作をするはずです。
点滅の速度は、プログラムの時間稼ぎルーチンで決まります。上の例ではカウンター値としてFFFFhという値(10進数では65535)を設定し、カウンター値から「1を引く」という処理を、カウンター値が0になるまで繰り返します。なので、カウンター値を大きくするとゆっくり点滅し、少なくすると早く点滅します。この処理を入れないと点滅が早すぎて、2個のLEDが同時に点灯しているように見えてしまいます。
カウンター値を書き込んでいるレジスタER0は32bitのデータを書き込めるため、もっとゆっくり点滅させたいという場合は、最大でFFFFFFFFhのデータ(10進数で4,294,967,295)まで増やすことが出来ます。しかし、ここまで増やすとLED2が点灯するまでに日が暮れます。せいぜいFFFFFFh(16,777,215)くらいまでにしておきましょう。
プログラムは、拡張子を.marで保存します。
-1.メモ帳のファイル(F)→名前を付けて保存(A)を実行すると、ファイル名を入力する画面が現れます。通常は拡張子が.txtなので、ファイル名を入力する窓は、以下のような文字があらかじめ入っています。

-2.ここに、保存したいプログラム名を、拡張子.marを付けて入力します。例ではledtest1というプログラム名ですが、ここは好きな名前にします。

で、保存ボタンを押すと、拡張子が.marでプログラムが保存されます。
アセンブルとは、メモ帳で書いたニーモニックによるプログラムを、CPUボードのROMに書き込める形式のデータに変換することを言います。
-1.準備
AKI-H8開発キットに付属されるCD-ROMにASMというフォルダがあります。このフォルダごと、自分のハードディスクの好きな場所にコピーしておきます。このASMフォルダが、アセンブルの作業場所となります。
保存したプログラム(例としてledtest1.mar)を、ハードディスクにコピーしたASMフォルダにコピーします。この時、オリジナルのプログラムは別のフォルダに保管しておいたほうが良いでしょう。
-2.DOSプロンプト窓を開く
TekuRobo工作室ではWindows2000を使っているので、スタート→プログラム→アクセサリ→コマンドプロンプトを実行すると、DOS窓が開きます。その他のWindowsでは良く覚えてないのですが、確か同じだったと思います...?
DOS窓のカレントフォルダを、ASMフォルダに移動させます。MS-DOSの扱いが分からないと、この辺の作業が進まなくて困ることになると思いますが、以下の手順で行ないます。例ではE:\DATA\ASMというフォルダに移動させます。
DOS窓を開いたばかりの時は、Cドライブのシステムフォルダにいます。Windows2000の場合は、以下のような表示になります。

この状態で、E: と入力してENTERキーを押すと、Eドライブに移動します。

この状態で、CD \DATA\ASM と入力してENTERキーを押します。CDとはチェンジディレクトリという対象とするディレクトリ(フォルダ)を移動させるMS-DOSのコマンドです。フォルダの階層は\を使って区切ります。

ここでE:\DATA\ASM>と表示され、目的のフォルダに移動したことが分かります。
-3.アセンブルする
■カレントフォルダをASMに移動させたところで、A38H LEDTEST1と入力してENTERキーを押します。アセンブラが起動して、アセンブル作業が開始されます。

これで、LEDTEST1.MARというブログラムからLEDTEST1.OBJというオブジェクトファイルが作られます。ここで、拡張子.MARの入力は省略しています。
ここでは、エラー(ERRORS)と警告(WARNINGS)の数が0となっています。もし、プログラム上に誤りがあった場合、プロブラム上の行番号とエラー内容が表示されるので、修正します。
■次にL38H LEDTEST1と入力してENTERキーを押します。リンカーが起動します。

これで、LEDTEST1.ABSというファイルが作られます。リンカーでは、複数のオブジェクトファイルを結合させる処理をしますが、今回のようにひとつのオブジェクトファイルの場合でも、リンカー処理を行ないます。
■次にC38H LEDTEST1と入力してENTERキーを押します。

LEDTEST1.ABSファイルを、ROMに書き込める形式(モトローラSフォーマット)に変換し、LEDTEST1.MOTファイルを作成します。
アセンブル作業は以上です。あとは、AKI-H8/3048Fボードに書き込むだけです。
-1.準備
AKI-H8開発キットに付属されるCD-ROMにWRITERというフォルダがあります。このフォルダごと、自分のハードディスクの好きな場所にコピーしておきます。
パソコンのシリアルポートとAKI-H8開発キットがモデムケーブルで接続されていることを確認します。
開発キットのプログラム書き込みモードスイッチをONにしてから、開発キットの電源スイッチをONにします。
-2.FLASH.EXEの実行
WRITERフォルダの中のFLASH.EXEを実行します。ライタープログラムF-ZTATが起動し、以下の窓が開きます。Flash memory block infomation fileを3048.infに設定し、Select Program ModeをBoot Program Modeに設定したら、OKを押します。
設定は始めの1回目だけすれば、あとは憶えておいてくれます。

上の画面でOKボタンを押すと、下の確認窓が開きます。この状態で、もう一度開発キットのプログラム書き込みモードスイッチがONで、電源スイッチもONであることを確認して下さい。良ければOKを押します。

下の窓が開き、ユーザープログラムをROMに書き込むためのダウンロードプログラムが転送されます。100%の表示になってから少しすると、窓は勝手に閉じます。

F-ZTAT画面のメニューからWRITEメニューをクリックすると、下の窓が開きます。この窓で、AKI-H8/3048Fに書き込みたいプログラムを指定します。先ずはReferenceをクリックします。

Referenceをクリックすると、以下のファイル指定のための窓が開きます。エクスプローラと同じ要領でドライブとフォルダを指定して、書き込みたいファイル(ここではLEDTEST1.MOT)をクリックして「ファイル名(N)」のところに表示させて、OKを押します。

以下のように、先ほどの画面に書き込みたいファイル名称が表示されますので、OKボタンを押します。

ユーザープログラムがAKI-H8/3048FのROMに書き込まれます。Sending the User Programが100%と表示されたら、勝手にこの窓は閉じ、処理が終了します。

では、AKI-H8を動かしてみましょう。
プログラムの書き込み処理が終わったら、以下の手順を守ってください。
-1.開発キットの電源スイッチをOFFにします。
-2.開発キットの書き込みモードスイッチをOFFにします。
-3.開発キットの電源スイッチをONにします。
電源をONにすると、プログラムはスタートします。開発キット上のLED1とLED2が、交互に点滅しましたか?
![]() |
左の写真は、実際に動作しているところです。2個のLEDが同時に点灯している用に見えますが、実物の動作ではパカパカと結構早い周期で交互に点滅しています。
|
今回ご紹介したアセンブルの仕方は、最も基本的な方法です。A38H L38H そしてC38Hの実行は、Windowsのエクスプローラ上からのドラッグアンドドロップでも行なえますし、DOS窓からの実行でも、バッチ処理で全て一括処理ということも可能です。その辺は、付属の取り扱い説明書類を参照して頂き、MS-DOSの知識も少し必要となります。
また、ニーモニックを使用したプログラムについての詳しい説明については、付属のCD-ROMに収録されているマニュアルを参照して下さい。