MacOSXでgccによるH8開発環境の構築

方針

  • ホームディレクトリに~/h8を作成し,その下に,アーカイブディレクトリarc,作業ディレクトリworkをつくる.上記のファイルはarcにおく.
  • /usr/local/h8を作成し,H8用gccをインストールする./usr/local/h8/binをpathに加えておく.*1
  • XXXXは,ユーザのディレクトリ名
    ファイル構造:
     ~/h8--+
           |-arc---+--binutils-2.14.tar.gz
           |       |--gcc-3.3.2.tar.gz
           |       +--newlib-1.11.0.tar.gz
           +-work
  • もちろん,gccのインストール先をローカルにする場合は以下のそれぞれのconfigure時の--prefix=/Users/ユーザ名/crossとかにすればよい.

binutilsのインストール

ファイルを展開

% cd ~/h8/work
% tar zxf ../arc/binutils-2.14.tar.gz

h8-binutilsディレクトリを作成し,configureおよびmakeする.

pre>

% mkdir h8-binutils
% cd h8-binutils
% ../binutils-2.14/configure --prefix=/usr/local/h8 --program-prefix=h8300-hms-  --target=h8300-hms
% make CC='cc -no-cpp-precomp' CFLAGS="-O2 -fomit-frame-pointer" all
% sudo make install

/pre>

gccとnewlibのインストール

pre>

% cd ~/h8/work
% tar zxf ../arc/gcc-3.3.2.tar.gz
% tar zxf ../arc/newlib-1.11.0.tar.gz
% cd gcc-3.3.2
% ln -s ../newlib-1.11.0/newlib .
% cd ..
% mkdir h8-gcc
% cd h8-gcc
% ../gcc-3.3.2/configure --target=h8300-hms --prefix=/usr/local/h8 --enable-languages=c ?
                --with-newlib --with-gnu-as=/usr/local/h8/bin/h8300-hms-as ?
                --with-gnu-ld=/usr/local/h8/bin/h8300-hms-ld
% make CC='cc -no-cpp-precomp' CFLAGS="-O2 -fomit-frame-pointer" all
% sudo make install

/pre>

実行

サンプルソース:test.c : P80,P81のLEDをON/OFFする

pre>

#include "3694S.H"
int main()
{
 long i;
	IO.PCR8 = 0x03;
	while (1) {
		IO.PDR8.BIT.B0 = 0;	// LED ON
		IO.PDR8.BIT.B1 = 1;	// LED OFF
		for(i=0; i< 10000000; i++);
		IO.PDR8.BIT.B0 = 1;	// LED OFF
		IO.PDR8.BIT.B1 = 0; 	// LED ON
		for(i=0; i< 10000000; i++);
	}
}

/pre>

  • 3694S.Hは,ルネサステクノロジが提供しているI/Oレジスタ定義ファイルです .ルネサステクノロジのページからダウンロードできます./usr/local/h8/include/に置くとよいです.
  • リンカ・スクリプト h3694rom.sh と,スタートアップ・ルーチンファイル crt0.Sが必要です.ここでは,トラ技5月号付録 成松 宏 著「gccによるH8/3694Fのプログラム開発と書き込み CD-ROM版」についているもの成松 宏氏のを利用します.
  • Makefile(これもほとんどCD-ROM版より)

    pre>

    CC=/usr/local/h8/bin/h8300-hms-gcc
    LD=$(CC)
    OBJCOPY=/usr/local/h8/bin/h8300-hms-objcopy
    
    NM=test
    LDSCRIPT=h3694rom.sh
    MAP=$(NM).map
    CFLAGS=-mh -mn -O2 -Wall
    LDFLAGS=-nostdlib -nostartfiles -lgcc -mrelax -T$(LDSCRIPT) -Wl,-Map,$(MAP) 
    
    SRC=crt0.S test.c
    test.mot: $(SRC)
           $(CC) -o $(NM).coff $(CFLAGS) $(LDFLAGS) $(SRC) 
           $(OBJCOPY) -Osrec $(NM).coff $(NM).mot

    /pre>

ライブラリ使用の注意:(上記CD-ROM記述より)

  • H8/3694FのRAM容量が2Kであることより,ライブラリ関数や浮動小数点などの演算を使うと,強大なライブラリがリンクされ3694Fでは,利用できなくなる.
  • 上記Makefileは,-nostdlibオプションにより,ライブラリの使用を抑制している.
  • 必要な場合,-lgccオプションにより,libgcc.aをリンクする.

書き込み

  • KeySpanよりOSX用USBシリアルアダプタ用の最新ドライバをダウンロードしてインストール.
  • h8write.cをhttp://mes.sourceforge.jp/h8/index-j.html のOpen SH/H8 writerよりダウンロードする.FreeBSDの設定にする.すなわち,
    #undef          LINUX
    #undef          Solaris
    #define         FreeBSD
    #undef          Win32

また,USB-シリアルアダプタをさしてできたUSBデバイス(例えば:/dev/tty.USA19QI181P1.1)を

/*
        Define the serial port device
*/
#ifdef FreeBSD
#define        RSLINE  "/dev/tty.USA19QI181P1.1"
#endif

として書き換える.

% cc -O h8write h8write.c
% cp h8write /usr/local/h8/bin
  • ZakiTermを利用し,初期設定で,コンパイルした,h8write実行ファイルを指定した後,USB-シリアルアダプタのデバイスを指定して(/dev/tty.USA19QI2b121P1.1など),書き込み作業を行う.書き込むのは *.motファイル


*1 .tcshrcにset path = ($path /usr/local/h8/bin)

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2013-06-20 (木) 14:45:23 (2279d)