H8-300Hのソフト開発をMacOSX上でやろう、の日記

←前へ
インデックス
次へ→


- AKI-H8/3052LAN開発キット


http://www.999.co.jp/pcb_H8_LAN_aki/
CPUボードと液晶モジュールは完成品なので、コネクタをハンダ付けするだけだが、メインボードはほとんど全部部品を自分でつけなければいけない。面実装ICは既についていたから助かった。
Figure:image/aki-lan.jpg

- H8-3052F


3052FはH8/300HのシリーズのCPUの一つ。512kBのF-ZTAT(フラッシュメモリ)内蔵で、RAMは8kB内蔵。
http://www.renesas.com/avs/resource/japan/jpn/pdf/mpumcu/j602208_h83052.pdf

- 開発環境


iBook 600Mhz, MacOSX (10.3)。途中からPowerBook G4 1.5GHz。
XCodeの開発環境をインストールしてある。あと、finkを使ってライブラリなどいろいろインストールしているので、普通のMac環境じゃないかもしれない。(^_^;;)

コンパイラなどをインストールするディレクトリを作っておく。

% cd ~/work
% mkdir h8
% cd h8

- binutils


まずはbinutilsからインストールしよう。
http://www.gnu.org/software/binutils/
を参照。

binutils-2.15.tar.gz を ftp://ftp.ring.gr.jp/pub/GNU/ からダウンロード。
% tar xzf binutils-2.15.tar.gz
% cd binutils-2.15
% mkdir objdir
% cd objdir
% ../configure --prefix=/Users/shibuya/work/h8 --target=h8300-hms
% make all
% make install

~/work/h8/の中に、bin, info, lib, man, shareとh8300-hmsができ、ファイルが入っているのを確認。

- GCCとnewlib


http://gcc.gnu.org/
まずは最新のGCCでトライする。
ftp://ring.aist.go.jp/pub/GNU/gcc/ から gcc-3.4.3.tar.bz2 をダウンロードする。
ftp://sources.redhat.com/pub/newlib/ から、newlib-1.13.0.tar.gzをダウンロードする。

% cd ~/work/h8
% tar xjf gcc-3.4.3.tar.bz2
% tar xzf newlib-1.13.0.tar.gz
% cd gcc-3.4.3
% ln -s ../newlib-1.13.0/newlib .
% mkdir objdir
% cd objdir
% ../configure --prefix=/Users/shibuya/work/h8 --target=h8300-hms --enable-languages=c --with-newlib
% PATH=$PATH:/Users/shibuya/work/h8/bin
% make all
(2時間くらい待つ)
% make install

- コンパイルテスト


とりあえず、コンパイラが動いているかどうかテストする。
まずは、"hello.c"ソースコードを書く。
File: hello.c
#include <stdio.h>

int main(int argc, char **argv)
{
  printf("Hello World!\n");
  return 0;
}


これをコンパイルするMakefileは、次の通り。
Makefile を見る


% make
/Users/shibuya/work/h8/h8300-hms/bin/gcc -c -mh -mrelax -mint32 -I/Users/shibuya/work/h8/h8300-hms/include -Wall hello.c
/Users/shibuya/work/h8/h8300-hms/bin/ld -o hello.out -mh8300h --relax hello.o -Map hello.out.map -L/Users/shibuya/work/h8/h8300-hms/lib/h8300h/int32 -lc -L/Users/shibuya/work/h8/lib/gcc/h8300-hms/3.4.3/h8300h/int32 -lgcc 
/Users/shibuya/work/h8/h8300-hms/bin/ld: warning: cannot find entry symbol _start; defaulting to 00000100

まあ、なんかコードは吐き出しているみたいだ。


- H8ダウンローダ


H8はブートモードと呼ばれる状態で起動すると、シリアルポートからプログラムコードをダウンロードして実行する内蔵ブートローダが動くようになっている。
このブートローダとシリアルケーブル経由で通信するプログラムをMac上に用意する。
http://mes.sourceforge.jp/h8/h8write.c
をダウンロード。
先頭の、
#define    LINUX
#undef    Solaris
#undef    FreeBSD
#undef    Win32
をすべて削除。
RSLINEの定義の部分の前後に#ifndef RSLINE, #endifをつけて次のようにする。
#ifndef RSLINE
#ifdef Win32
 #define        RSLINE  "com1"
#endif
#ifdef LINUX
 #define  RSLINE  "/dev/ttyS0"
#endif
#ifdef FreeBSD
 #define  RSLINE  "/dev/cuaa0"
#endif
#ifdef Solaris
 #define  RSLINE  "/dev/cua/b"
#endif
#endif /* RSLINE */

また、
/*  Set default CPU ID  */
    cpuid = 0;
のところを、
/*  Set default CPU ID  */
    cpuid = DEFAULT_CPUID;
に変える。

Makefileを作る。
Makefile を見る


% make
無事コンパイル完了。

USB-COMポート変換アダプタはVS-60R(サン電子)。特別なドライバは不要。(MacOSXの標準CDCドライバに対応している。)
Figure:image/vs60r.jpg
USBシリアルポートは、ls /dev/cu* とやって探した。

秋月のキットについていた、"LANAPP.MOT"ファイルを試しに送信してみる。
秋月キットは、CPUモード7(3本のモードジャンパを全てはずす)、書き込み+12Vをオンにしてストレートケーブルで接続。(2,3,5ピンのみ接続。7-8ピンはコネクタ内で短絡。)

% ./h8write -3052 LANAPP.MOT

。。。。。"H8/3052F is ready!"を表示した後にプログラムは暴走。
しかも、Ctrl-Cも受け付けず、killコマンドも受け付けなくなった。。。。。
その後、h8write.cをいじってシリアルポート制御を変更したりしたが、全然ダメ。
あげくの果てには、Darwinカーネルが暴走。
「お使いのコンピュータは再起動が必要です」の画面が。。。。。

つまり、MacOSXの標準ドライバがバグで腐っている、ということらしい。
というわけで、残念ながらVS-60Rはお払い箱に。

あらためて、IOデータの"USB-RSAQ3"を調達。こちらはCDROMから専用ドライバをインストールして使うタイプである。
Figure:image/rsaq3.jpg
ドライバをインストールしてUSBに接続したら、COMポート名は、"/dev/cu.I-O DATA USB-RSAQ3"であった。(また "ls /dev/cu*"で探した。)
Makefileの
CFLAGS=-DFreeBSD -DRSLINE="\"/dev/cu.usbmodemUSB-COM1\""

CFLAGS=-DFreeBSD -DRSLINE="\"/dev/cu.I-O DATA USB-RSAQ3\""
に変更して、h8writeを再コンパイル。

% ./h8write -3052 LANAPP.MOT
を、再度実行。
今度はうまく送信された。

秋月キットの電源を一度きり、+12Vをオフ、CPUモード6(MD0のみショート)にして、電源を入れ直す。
LCDに"TCP/IP on AKI-H8"と表示されて、無事動作。


←前へ
インデックス
次へ→
Last updated: 2005/4/24 14:14
Copyright (C) 2005 by SHIBUYA K.
All Rights Reserved.