MacOSX
ハードウェア
H8マイコン

H8マイコン開発環境構築

More than 3 years have passed since last update.

環境

対象

12ステップで作る 組込みOS自作入門もしくはH8マイコン開発をmacで行いたい人

手順

0. 標準のgccをclangからapple-gccに変更

1. Xcode command line toolsをインストール

2. USBシリアルドライバインストール(書き込み用USBケーブル)

3. H8用のビルドツールのインストール

4. h8write(書き込みツール)のインストール

5. 動作確認


0. 標準のgccをclangからapple-gccに変更

macportsでapple-gccをインストールし,標準のgccにセットする


bash

$ sudo port install apple-gcc42

$ sudo port install gcc_select
$ sudo port select --set gcc apple-gcc42


1. Xcode command line toolsをインストール



  1. Xcodeのインストール

    App Storeからインストール




  2. サインイン

    Xcodeを起動し,Xcode->Open Developer Tool->More Developer Tools.

    サインインを求められるのでサインイン(もしくは登録してサインイン)



  3. Command Line Toolsのインストール



bash

$ sudo xcode-select --install



2. USBシリアルドライバインストール(書き込み用USBケーブル)

PL2303 USB to Serial Driver for Mac OS Xをダウンロード,インストール

再起動し,接続した状態でターミナルから以下のコマンドを実行し,デバイスの認識を確認


bash

$ ls -l /dev/cu*


この環境では/dev/cu.usbserialと認識された


3. H8用のビルドツールのインストール


  • Downloadディレクトリにsrcディレクトリを作り,その中に必要なソースをダウンロード


bash

$ cd ~/Downloads

$ mkdir src
$ cd src
$ curl -O http://www.ring.gr.jp/archives/GNU/binutils/binutils-2.21.1.tar.bz2
$ curl -O http://www.ring.gr.jp/archives/GNU/gcc/gcc-3.4.6/gcc-3.4.6.tar.bz2
$ curl -O http://www.ring.gr.jp/archives/GNU/gmp/gmp-4.3.2.tar.bz2
$ curl -O http://www.ring.gr.jp/archives/GNU/mpfr/mpfr-2.4.2.tar.bz2
$ curl -O http://www.multiprecision.org/mpc/download/mpc-0.8.2.tar.gz


  • ダウンロードしたアーカイブを展開


bash

$ tar jxvf binutils-2.21.1.tar.bz2

$ tar jxvf gmp-4.3.2.tar.bz2
$ tar jxvf mpfr-2.4.2.tar.bz2
$ tar zxvf mpc-0.8.2.tar.gz
$ tar jxvf gcc-3.4.6.tar.bz2


  • gcc3.4.6は64bit環境でエラーが出るため以下の修正をする

修正ファイル : ~/Download/src/gcc-3.4.6/gcc/config/h8300/h8300.c


55行目

-static void h8300_emit_stack_adjustment (int, unsigned int);

-static int round_frame_size (int);

+static void h8300_emit_stack_adjustment (int, HOST_WIDE_INT);

+static HOST_WIDE_INT round_frame_size (HOST_WIDE_INT);

371行目

-h8300_emit_stack_adjustment (int sign, unsigned int size)

+h8300_emit_stack_adjustment (int sign, HOST_WIDE_INT size)

400行目

-static int

-round_frame_size (int size)

+static HOST_WIDE_INT

+round_frame_size (HOST_WIDE_INT size)



  • H8用gcc, binutilsなどのインストール
    (/usr/local/h8-elfにそれぞれインストールする)

binutils


bash

$ sudo mkdir /usr/local/h8-elf

$ cd binutils-2.21.1
$ mkdir build
$ cd build
$ CFLAGS=-Wno-error=deprecated-declarations ../configure --target=h8300-elf --disable-nls --prefix=/usr/local/h8-elf
$ make
$ sudo make install

gmpライブラリ


bash

$ sudo mkdir /usr/local/gmp

$ cd ..
$ cd gmp-4.3.2
$ ./configure --prefix=/usr/local/gmp
$ make
$ make check
$ sudo make install

mpfrライブラリ


bash

$ sudo mkdir /usr/local/mpfr

$ cd ..
$ cd mpfr-2.4.2
$ ./configure --prefix=/usr/local/mpfr --with-gmp=/usr/local/gmp
$ make
$ make check
$ sudo make install

mpcライブラリ


bash

$ sudo mkdir /usr/local/mpc

$ cd ..
$ cd mpc-0.8.2
$ ./configure --prefix=/usr/local/mpc --with-gmp=/usr/local/gmp --with-mpfr=/usr/local/mpfr
$ make
$ make check
$ sudo make install

gcc

/usr/local/h8-elf/binに一時的にpathを通す


bash

$ export PATH=/usr/local/h8-elf/bin:$PATH


インストール

srcフォルダにbuildディレクトリを作る(解凍フォルダの外)。解凍フォルダ内でやるとエラーになる


bash

$ cd ..

$ mkdir build
$ cd build
$ ../gcc-3.4.6/configure --target=h8300-elf --disable-nls --disable-threads --disable-shared --disable-libssp --enable-languages=c --with-gmp=/usr/local/gmp --with-mpfr=/usr/local/mpfr --with-mpc=/usr/local/mpc --prefix=/usr/local/h8-elf
$ make
$ sudo make install


4. h8write(書き込みツール)のインストール

Downloadフォルダに移動してダウンロード


bash

$ cd ..

$ cd ..
$ curl -O http://mes.sourceforge.jp/h8/h8write.c
$ gcc -Wall -o h8write h8write.c

使用するディレクトリにソース(h8write.c)とバイナリ(h8write)を移動(フォルダはMakefileで指定)


5. 動作確認

以下は[12ステップで作る 組込みOS自作入門]のソースを使用


  • Makefileの使用デバイスをデバイスを
    [2. USBシリアルドライバインストール(書き込み用USBケーブル)]
    で確認したものに置き換え


H8WRITE_SERDEV = /dev/cu.usbserial



  • makeコマンド

$ make オブジェクトファイルの生成

$ make image 実行ファイルの生成

$ make write 書込み(SW1 ON ON OFF ON)

$ make clean 生成ファイルの削除


  • minicomでシリアル出力を確認

$ sudo minicom -s -o


設定:

シリアルデバイス:/dev/cu.usbserial

ボーレート:9600bps

データ長:8bit

ストップビット:1bit

パリティ:なし

ハードウェア・フロー制御 :なし

ソフトウェア・フロー制御 :なし

mode5でボードを起動(SW1 ON OFF ON OFF)



参考

12ステップで作る 組込みOS自作入門

[PATCH, h8300]: Fix build on 64bit targets

MacでH8開発環境構築 - 12ステップ本を試す

H8クロスコンパイル環境 on Mac OS X 10.9 (Marvericks)