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

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

H8 を Linux で使うために設定を行います.

目次


C言語

環境構築

クロスコンパイラー

開発環境はクロスコンパイラーを使うことになります.Linuxでのクロスコンパイラーの環境構築の方法は,いろいろあるようです.ここでは,インストールが簡単なrpmパッケージを使うことにします.rpmパッケージは,みついわゆきおさんのLinuxによるマイコンプログラミングのページの「GCC for SuperH,H8/300,AVR」から,H8/300H用バイナリパッケージ(Linux version)をダウンロードします.

  • h8-binutils-2.13-1.i386.rpm
  • h8-gcc-3.2-1.i386.rpm
  • h8-newlib-1.10.0-1.i386.rpm

rpmパッケージなので,インストールは簡単で,rootになり,

# rpm -ivh h8-binutils-2.13-1.i386.rpm
# rpm -ivh h8-gcc-3.2-1.i386.rpm
# rpm -ivh h8-newlib-1.10.0-1.i386.rpm

とします.インストールが完了したならば,

# h8300-hms-gcc -v

とタイプし,バージョンが表示されることを確認しましょう.私の場合は,

Using built-in specs.
Configured with: ./configure --prefix=/usr/local 
     --target=h8300-hms --with-newlib
Thread model: single
gcc version 3.4.3

と表示されました.

書き込みツール

モトローラS2フォーマット(*.mot)ができあがったならば,それをH8に転送する必要があります.そのためのソフトウェアーをインストールします.これも,みついわゆきおさんのLinuxによるマイコンプログラミングのページの「Open SH/H8 writer」に公開されていますので,使わせてもらっています.私は,C言語のソースファイル

  • h8write.c

をダウンロードして,コンパイルしました.出来上がった実行ファイルは,パスの通った適当なディレクトリーに入れておけば良いでしょう.私は /usr/local/bin にコピーしました.

# gcc -o h8write h8write.c
# cp h8write /usr/local/bin

テスト

コンパイル

ハードウェアーとソフトウェアーのテストをしてみましょう.Strawberry LinuxさんのgccによるH8マイコン開発に示されているLEDの点灯が簡単で良いです.そこにある, h8led-0.1-20020706.tar.gzをダウンロードしましょう.ダウンロードしたら,それを解凍し,ソースのあるディレクトリーに移ります.

$ tar zxvf h8led-0.1-20020706.tar.gz
$ cd h8led

このままmakeしたのではなにもしませんので,とりあえず,ファイルを消します.

$ rm h8led.exe h8led.mot led.o

その後,makeします.

$ make

そうするとモトローラSフォーマット(*.mot)のファイルが出来上がります.ここでは,h8led.motというファイルができあがるはずです.これをH8に転送すれば,実行できます.

パソコンとH8の接続

以下の回路図のとおりにブレッドボード上に部品を組み立てます.パソコンとの接続は,D-subコネクターを使いシリアルポートと接続します.

LEDの点滅回路

転送

モトローラSフォーマット(*.mot)のファイルをH8に転送する方法を示します.転送する前に,H8とパソコンの接続し,準備をします.

  1. H8の電源をOFFします.
  2. 2つのジャンパーピン(JP2, JP3)をショートピンにより,接続します.
  3. 転送用のDSUBコネクターを接続します.
  4. H8の電源をONにします.

h8writeコマンドを使って,ファイルをH8に転送します.このコマンドの使い方は,h8write -helpで見ることができますが,通常は

$ h8write -ターゲットCPU motファイル デバイス

とします.ターゲットCPUはH8のシリーズ名,motファイルはコンパイルしてできあがったファイル(*.mot),デバイスはシリアルポートを示します.シリアルポートのCOM1が/dev/ttyS0,COM2が/dev/ttyS1となり,使っているポートを指定しなくてはなりません.

先ほど作成したh8led.motを転送します.

$ h8write -3664 h8led.mot /dev/ttyS0

結構,長い時間がかかりますので,気長に待ちましょう.

もし次のようなエラーがでるようでしたら,それはシリアルポートの権限が無いためです.権限を変更するか,スーパーユーザー(root)で実行してください.

FATAL:Can not open the line to the H8/OS

実行方法

転送が成功すれば,実行は簡単です.

  1. H8の電源をOFFします.
  2. 2つのジャンパーピン(JP2, JP3)をはずします.
  3. H8の電源を投入すると,プログラムが実行されるはずです.

プログラム転送のためのDSUBのコネクターもじゃまなので,電源OFFの時に外してしまっても良いです.

プログラムがちゃんと動作すると,1秒間隔でLEDが点滅します.

LEDの点滅

参考

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



no counter