アクセスカウンタ
Now loading...
最近のエントリー
アーカイブ
検索


リンク
Powered by
Movable Type3.35

2007年05月04日

eclipse+gccでH8のコードをビルド

JAVAのIDEで有名なeclipse
eclipse上ではWideStudioを使って小物を作ったことがある。
最近は組み込みマイコンでも利用する方がいるようだ。
下記サイトを参考に環境を構築してみた。
http://hp.vector.co.jp/authors/VA022386/
http://www.takamisawa.org/gcc/development.html
http://www.kikaiken.org/lib/junk/h8dev-doc-linux/index.html

使用したバージョンは次の通り
cygwin1.dll-1.5.24  :WindowsでGNUツールを使う
eclipse-SDK-3.2-win32  :エクリプス本体
NLpack1-eclipse-SDK-3.2-win32  :エクリプスの日本語化
CDT-3.1.0  :エクリプスでC/C++を使うプラグイン
binutils-2.15  :GNUツール
gcc-3.4.3  :コンパイラ
newlib-1.13.0  :小型のCライブラリ

設定をメモ。
1.エクリプスのPATH設定
 プロジェクト>プロパティー>C/C++MakeProject>Environment で環境変数に下記を追加。
 Variable: PATH
 Value:  c:\cygwin\bin;c:\cygwin\usr\local\h8\bin
 注釈: cygwinのコマンドとH8用gccのコマンドへパスを通す。

2.エクリプスのスキャナの設定
 プロジェクト>プロパティー>C/C++MakeProject>DiscoveryOptionの
 Enable generate scanner info command にチェックを入れて
 h8300h-hms-gcc と入力
 注釈: 検索基準をgccでなくh8300h-hms-gccに変更する。

3.スタートアップルーチン
 対象をH8/Tinyシリーズとする場合はH8/300Hノーマルモードなので
.h8300hn
 を冒頭に付ける。
 スタックポインタの設定は16ビットアドレスなので、
mov.w #_stack, sp
 となる。

4.LDスクリプト
 こちらも対象をH8/Tinyシリーズとする場合はH8/300Hノーマルモードなので
OUTPUT_ARCH( "h8300hn" )
 とした。

5.試しにビルド
対象CPU: H8/3664F(H8 Tinyシリーズ)
makefileは下記
------------------------------------
# makefile H8 300H tiny

NM = iotester
SRC = start.S os.c timer.c lcds.c key16.c init.c main.c
OBJS = start.o os.o timer.o lcds.o key16.o init.o main.o
LDSCRIPT = H8_3664F.x

CC = /usr/local/h8/bin/h8300-hms-gcc.exe
OBJCOPY = /usr/local/h8/bin/h8300-hms-objcopy.exe

MAP = $(NM).map
CFLAGS = -mh -mn -O2 -Wall
LDFLAGS = -nostartfiles -mrelax -T$(LDSCRIPT) -Wl,-Map,$(MAP)

all : $(NM)

$(NM) : $(SRC)
$(CC) -o $(NM).coff $(CFLAGS) $(LDFLAGS) $(SRC)
$(OBJCOPY) -Osrec $(NM).coff $(NM).mot

clean :
rm -f $(NM).mot $(OBJS)
------------------------------------
コードはできたので実機で試そう。
ハードウェア作ってないな。
つづく...。

Posted by やんもす at 2007年05月04日 12:55
コメント

gccはVer 3.3からH8/300Hのノーマルモードに対応したようだ。
試しにアドバンスモードとノーマルモードのサンプルを作りビルドした。
バイナリサイズを比較すると、

H8300h(advance mode): 0000-11AE
H8300hn(normal mode): 0000-0DD2

結果22%小さくなっている。

投稿者: やんもす : 2007年05月05日 22:05

次にルネサス純正のコンパイラ(HEW)を使用してみる。
-cpuオプションを変更してビルド(最適化オプションはSPEED)

300HA:24(advance mode 24bit address): 0000-0FC3
300HA:20(advance mode 20bit address): 0000-0FC3
300HN(normal mode): 0000-0CE8

いずれもgccのコードより小さい。さすが純正品といったところか。
コードサイズが64kByteまでなならHEWの評価版が使用できる。tinyを使うときはHEWにするかな。

投稿者: やんもす : 2007年05月06日 00:20
コメントを投稿する


(非公開です。無記入でも可)

(公開されます。無記入でも可)

左の情報をクッキーに保存しますか?