Yamamoto's Laboratory
 
 
Linux
  設定
 
Windows
  設定
 
 
コンピューター H8 設定(windows)

H8設定 (windows)C言語とアセンブラを使うために

H8 の Windows を使ったクロスコンパイラー環境を整えます.

目次


C言語

環境構築

アセンブラ言語

どれを使うか

アセンブラ言語を使ってのH8の開発については,いろいろな書籍で説明している.どのようなものが使われいるか調べてみた(下表).ほとんどのものが秋月電子通商から販売されてる A38H.EXE を使っていることがわかる.これはAKI-H8/3664 タイニーマイコンキット(開発ソフト付)に含まれており,リンカーなどその他必要なものがそろって4500円である.そこそこ安価で簡単に開発環境が構築できるので,これが使われているのであろう.我々もWindowsでのH8の開発は,これを使うことにする.

書籍と使っているアセンブラ
書籍OSアセンブラ
楽しい H8Tiny マイコン工作WindowsASM38
たのしくできるH8マイコン制御実験WindowsA38H.EXE
H8マイコン入門WindowsA38H.EXE
H8アセンブラ入門WindowsA38H.EXE
マイコン技術教科書 H8編WindowsA38H.EXE

インストールと設定

インストールは,CD-ROMの中身をディレクトリーごとコピーするだけである.Cドライブの直下にディレクトリー3664を作成してコピーした.秋月電子通商のアセンブラはASM38.EXEであった.A38H.EXEは古いアセンブラなのか????

アセンブラー(ASM38.EXE)やリンカー(LNK.EXE),ターミナルソフト(HTERM.EXE)の場所をpathに記述しておく.Windowsの環境変数は,マイ コンピュータのプロパティから設定する.マイ コンピュータを右クリックし,プロパティを選択する.

そうするとシステムのプロパティが表示されるので,詳細のタブをクリックする.次に,環境変数のボタンをクリックする.

システム環境変数のPathを選択して,編集ボタンを押す.

このPathに書かれた順にプログラムが探索され,名前が一致したものが実行される.Pathの最後に,インストールしたディレクトリーを記述する.現在の私のPCの環境変数は,

C:\Perl\bin\;C:\winnt\system32;C:\winnt;C:\winnt\System32\Wbem;C:\SFU\common\;C:\LANL;C:\3664\ASM;C:\3664\WRITER

となっている.最後の2つ(C:\3664\ASM;C:\3664\WRITER)がH8のアセンブラプログラミングのためにプログラムをインストールしたディレクトリーである.pathは絶対パスで記述し,区切りにはセミコロン(;)を用いる.

pathを記述したら,OKボタンを数回押して,ダイアログを閉じる.

テスト

アセンブラプログラムの開発環境が整ったならば,サンプルプログラムでテストを行うのがよいだろう.アセンブラプログラムの作成から実行までの手順は,次のとおりである.

  1. テキストエディターでソースプログラムを作成する.
  2. アセンブラー(ASM38.EXE)でオブジェクトファイル(*.OBJ)を作成する.
  3. リンカー(LNK.EXE)でアブソリュートファイル(*.ABS)を作成する.
  4. HTERMを使って,プログラムをH8に書き込む.
  5. プログラムを実行させる.

ここでは,サンプルプログラムを使って,この一連の操作を行いアセンブラの開発環境が整ったことを確かめる.ただし,テキストエディターでソースプログラムを記述することは省く.

ソースのダウンロード

まずは,サンプルプログラム(sample.asm)をダウンロードする.ダウンロードしたファイルは,C:\H8testなどの適当なディレクトリーに入れておく.

この程度のプログラムであれば,適当なテキストエディター,たとえばワードパッドなどを用いて記述してもよいだろう.ただし,ファイルの種類はテキスト ドキュメントとして保存しなくてはならない.

コマンドプロンプトの起動

これからの作業は,Windowsのコマンド プロンプトを使う.コマンド プロンプトを立ち上げるために,Windowsのスタートのプログラムのアクセサリーからコマンドプロンプトを選択する(Windows画面).するとDOS窓と呼ばれるコマンド プロンプトが起動される.

最初にダウンロードしたソースファイルのあるディレクトリーに移動する.コマンドc(cd)とディレクトリー名(c:\H8test)をコマンド プロンプトに書き,Enterを押す.

> cd c:\H8test

>は書く必要はない.コマンドプロンプトの入力を示しているだけである.

移動したディレクトリーにダウンロードしたファイルがあることを,コマンド

> dir

で確認する.ソースファイルが見えるはずである(コマンド プロンプト画面).

アセンブル

次にソースファイルをアセンブルする.ASM38.EXEというアセンブラを用いて,ソースファイルsample.asmをアセンブルしてオブジェクトファイルsample.OBJを作成する.

> asm38 sample.asm

このコマンドを入れた後,Enterを押すと,アセンブルが終了するはずである(コマンド プロンプト画面).

リンク

アセンブルが済んだならば次はリンクである.オブジェクトファイルsample.OBJをリンカーにかけてアブソリュートファイルsample.ABSを作成する.

> lnk sample.OBJ

リンクが無事,終了するはずである(コマンド プロンプト画面).

配線

いよいよ,H8にプログラムを転送することになる.そのためには,H8の配線作業が必要である.配線は,下図のようにする.リセットスイッチ(CN1 12)とLED(CN2 8)は接続しないでも,プログラムの転送はできるが,実行時に使うのでここで配線をしておく.リセットスイッチがなくてもプログラムの実行はできるので,面倒な人は接続しなくてもよい.

LEDの点滅回路

プログラムの転送

配線が完了したら,以下のように転送の準備をする.

  1. H8の電源をOFFにする.
  2. H8のJP2とJP3をジャンパーピンでショートする.
  3. H8の電源をONにする.

H8の方の準備が整ったので,書き込みプログラムHTERM.EXEを用いてプログラムをWindowsからH8に転送する.まずは,HTERMを起動させる.

> hterm

次にキーボードの[Ctrl]キーを押して[F]キーを押す.すると,「Set Boot Mode and Hit Any Key.」と表示されるので,どれでもよいからキーボードのキーを押す.制御プログラム名の入力を促すメッセージ「Input Control Program Name :」が表示される.絶対パスで制御プログラム 3664.MOT を指定しなくてはならない.そこで,

C:\3664\WRITER\3664.MOT

入力する.

これが問題なく動作すると,作成したプログラム名を促すメッセージ「Input Program File Name :」とメッセージが表示される.ここで,リンカーで作成したアブソリュートファイル名

sample.ABS

を入れる.Program Comleted. と表示されればOKである.これで HTERMの仕事は終わりである.[Esc]キーを押すと,HTERMは終了して,コマンド プロンプトの入力画面に戻る.これ以降,コマンド プロンプトは使わないので終了させてもよい.

プログラムの実行

H8にプログラムが転送できたら,サンプルプログラムを動作させる.次のようにすれば,プログラムは実行される.

  1. H8の電源をOFFにする.
  2. JP2とJP3のジャンパーピンを取り除く.
  3. H8の電源をONにする.

H8の電源をONにした瞬間にプログラムの動作が始まり,LEDが点滅する.

プログラムが実行されるとLEDが点滅する(クリックで拡大)

練習

問題なくサンプルプログラムが動作したならば,アセンブルからプログラムの実行までの練習を重ね,これらの処理に慣れることを勧める.ここで用いたサンプルプログラムの一部を変更して,実行させるのがよいだろう.以下の示すサンプルプログラムの10と15行の値(16進数)を変えると,点滅の間隔が変わる.これらの値を変えて,プログラムを実行してみよ.

sample.asm

01:         .CPU 300HN
02:         .SECTION VECTOR,DATA,LOCATE=H'0
03:         .DATA.L START
04:         .SECTION PROG,CODE,LOCATE=H'34
05: START:  MOV.L  #H'0000FF80,SP
06:         MOV.B  #H'01,R0L
07:         MOV.B  R0L,@PCR8
08: LP:     MOV.B  #H'01,R0L
09:         MOV.B  R0L,@PDR8
10:         MOV.L  #H'00200000,ER0
11: ON:     DEC.L  #H'00000001,ER0 
12:         BNE    ON
13:         MOV.B  #H'00,R0L
14:         MOV.B  R0L,@PDR8
15:         MOV.L  #H'00100000,ER0
16: OFF:    DEC.L  #H'00000001,ER0
17:         BNE    OFF
18:         BRA    LP
19: PCR8:   .EQU   H'FFEB
20: PDR8:   .EQU   H'FFDB
21:         .END

参考

このページを作成するに当たり,以下を参考にしました.

  1. 浅川毅, 横田一弘. たのしくできるH8マイコン制御実験. 東京電機大学出版局, 2004年, ISBN4-501-32380-9.


no counter