= GNU開発環境構築マニュアル = (Release 1.4対応,最終更新: 20-Dec-2003) ------------------------------------------------------------------------ TOPPERS/JSP Kernel Toyohashi Open Platform for Embedded Real-Time Systems/ Just Standard Profile Kernel Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory Toyohashi Univ. of Technology, JAPAN 上記著作権者は,以下の (1)〜(4) の条件か,Free Software Foundation によって公表されている GNU General Public License の Version 2 に記 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 利用と呼ぶ)することを無償で許諾する. (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 権表示,この利用条件および下記の無保証規定が,そのままの形でソー スコード中に含まれていること. (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 の無保証規定を掲載すること. (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 用できない形で再配布する場合には,次のいずれかの条件を満たすこ と. (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 作権表示,この利用条件および下記の無保証規定を掲載すること. (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 報告すること. (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 本ソフトウェアは,無保証で提供されているものである.上記著作権者お よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. @(#) $Id: gnu_install.txt,v 1.26 2003/12/20 09:13:20 honda Exp $ ------------------------------------------------------------------------ 1.GNU開発環境の構築 1.1 開発環境の概要 カーネルをインストールするには,JSPカーネルの配布キットに含まれる以外 に,以下のツールおよびライブラリが必要である. GNU開発環境 BINUTILS(アセンブラ,リンカなど) GCC-CORE(Cコンパイラ) GDB(デバッガ) NEWLIB(標準Cライブラリ) perl(動作確認は 5.005) GNU Make(動作確認は 3.77) 各ツールのバージョンについては,ターゲット毎に異なるため,ターゲット毎 のマニュアルを参照のこと. アプリケーションが標準Cライブラリを使用しない場合には NEWLIB は必要な いが,GCC をインストールする際に NEWLIB があった方が都合がよいため, NEWLIB も含めてインストールする方法を標準とする.NEWLIB をインストール しない場合には,GCC のソースの修正が必要となり, GCC の 2.95.3 を対象 として後述する.ターゲットへのダウンロードと実行を ROMモニタ(GDB に対 応していないもの)によって行う場合には,GDB をインストールする必要はな い. perl と GNU Make は,ほとんどの Linux と Cygwin では標準でインストール されるため,新たにインストールする必要はない.インストールされている perl または make のバージョンを知りたい場合には,-v オプションをつけて 実行すればよい(-v オプションをサポートしていない make は GNU make で はない).なお,以下の説明では,makeコマンドが GNU Make であるものとす る. また,これらの開発環境を Windows上に構築するためには Cygwin を用いる. Cygwin(動作確認は 1.5.5) Cygwinのインストールについては後述する.また,ツールのソースコードを修 正する必要があるが,これも後述する. これらのツールおよびライブラリのソースコードは,次のサイトから入手する ことができる. BINUTILS,GCC-CORE,GDB,GNU Make: GNUプロジェクト http://www.gnu.org/ Ring Server http://www.ring.gr.jp/ NEWLIB: Red Hat http://sources.redhat.com/newlib/ または ftp://sources.redhat.com/pub/newlib/ Cygwin: Red Hat http://sources.redhat.com/cygwin/ または ftp://sources.redhat.com/pub/cygwin/ Ring Server http://www.ring.gr.jp/ 1.2 開発環境の構築方法 この節では,開発環境の構築方法を説明する.開発環境を Windows上に構築す る場合には,あらかじめ Cygwin をインストールしておくことが必要である. Cygwin のインストール時の注意事項は,1.3節で述べる. (1) 準備作業 ホスト上に必要なツールが足りない場合には,あらかじめインストールしてお く.具体的には,perl と GNU Make が必要である.さらに,開発環境の構築 に使うために,ホスト上にも最新の GCC をインストールしておくことが望ま しい. なお,JSPカーネルの配布キットに含まれる perlスクリプトは,perl のプロ グラムが /usr/bin/perl にあるものと仮定して記述している.perl のプログ ラムのパスがこれと異なる場合は,各 perlスクリプトの先頭の perl の絶対 パスを修正する必要がある. (2) ソースファイルの展開 BINUTILS,GCC-CORE,GDB,NEWLIB のソースファイルを展開する.以下では, 展開により作成されたディレクトリ名をそれぞれ次のように表記する. BINUTILS のソースを展開したディレクトリ GCC-CORE のソースを展開したディレクトリ GDB のソースを展開したディレクトリ NEWLIB のソースを展開したディレクトリ (3) 開発環境構築のためのディレクトリの決定 開発環境を構築するために,以下のディレクトリを用意する. 開発環境をインストールするディレクトリ BITUTILS のオブジェクトを生成するディレクトリ GCC-CORE のオブジェクトを生成するディレクトリ GDB のオブジェクトを生成するディレクトリ NEWLIB のオブジェクトを生成するディレクトリ /bin が実行パスに含まれるようにシェルの設定を行っておく.また, make install は, 以下に書き込み権限があるユーザで行う必要があ る. (4) ターゲットの選択 ターゲットプロセッサに応じて,ターゲット環境を選択する.具体的には,次 の通り. プロセッサ ターゲット環境() M68040 m68k-unknown-elf SH1, SH3 sh-hitachi-elf V850 v850-nec-elf H8 h8300-hms ARM arm-elf M32R m32r-elf Microblaze mb mips3 mipsel-nec-elf Xstormy16 xstormy16-elf 以下,ターゲット環境を表す文字列を と表記する. なお,ターゲットによっては,ツールまたはライブラリのソースコードの修正 が必要な場合がある.修正内容については,ターゲット毎のマニュアルに記述 する. (5) BINUTILS のインストール BINUTILS は,GCC-CORE のインストールに必要なため,GCC-CORE に先だって インストールする.BINUTILS のインストール手順は次の通り. % mkdir % cd % /configure --target= --prefix=\ --disable-nls % make % make install (6) GCC-CORE のインストール ・NELIB をインストールする場合 NEWLIB のインストールには GCC-CORE が必要なため,GCC-CORE のインストー ルを先に行う.configure は,newlib のヘッダーファイルを 以下 にインストールするため, 以下に書き込み権限のあるユーザーで行 う必要がある.GCC-CORE のインストール手順は次の通り. % mkdir % cd % /configure \ --target= --prefix= \ --with-gnu-as --with-gnu-ld --with-newlib \ --with-headers=/newlib/libc/include % make % make install ・NEWLIB をインストールしない場合. NEWLIB をインストールしない場合,ソースファイルの修正が必要となる.修 正個所は, /gcc/libgcc2.c の 41,42行目の #include #include の二行をコメントアウトする. /gcc/frame.c の 42,43行目の #include #include の二行をコメントアウトする. 修正後の GCC-CORE のインストール手順は次の通り. % mkdir % cd % /configure \ --target= --prefix= \ --with-gnu-as --with-gnu-ld % make % make install (7) GDB のインストール 次の手順に従って,GDB をインストールする. % mkdir % cd % /configure --target= --prefix= % make % make install (8) NEWLIB のインストール 次の手順に従って,NEWLIB をインストールする. % mkdir % cd % /configure --target= --prefix= % make % make install 2.ターゲットへのダウンロードと実行 ユーザズマニュアルの手順にしたがって,JSPカーネルおよびアプリケーショ ンプログラムが構築できると,ターゲットシステムへダウンロードして実行す る.ダウンロードと実行の方法には,ROMモニタを用いる方法と,gdb+スタブ を用いる方法がある. (A) ROMモニタを用いる方法 ターゲットシステムが ROMモニタを持っている場合には,バイナリ形式または モトローラ S形式のファイルを,ROMモニタのダウンロードコマンドを使って ダウンロードし,実行コマンドを使ってダウンロードした番地から実行すれば よい. (B) スタブを用いる方法 JSPカーネルと一緒に使えるように改造したスタブのソースコードは,JSPカー ネルのウェブサイトからダウンロードすることができる.スタブをダウンロー ドしたら,READMEファイルに従ってスタブを構築し,ROM またはフラッシュメ モリに書き込む. gdb+スタブを用いてプログラムをダウンロード・実行する手順は次の通り. % -gdb jsp GNU gdb 4.18 Copyright 1998 Free Software Foundation, Inc. .......... 以下メッセージが続く .......... (gdb) gdb が起動したら,次のコマンドを実行して,ターゲットシステムと接続する. (gdb) set remotebaud (gdb) target remote /dev/ttyXX ,/dev/ttyXX には,それぞれ,ターゲットシステムを接続しているシリ アルポートのボーレートと,デバイス名を指定する.次に,load コマンドに より,プログラムをダウンロードする. (gdb) load プログラムの実行は,continue コマンドで行う. (gdb) continue ターゲットシステムによっては,プログラムの実行中にコントロール-C を入 力する,または NMI をかけることで,プログラムを停止させて gdb に制御が 戻すことができる.ただし,割込み禁止状態では,コントロール-C で停止さ せることはできない.詳しくは,スタブの READMEファイルまたはターゲット 毎のマニュアルを参照すること. 3.Cygwinのインストール 本インストールマニュアルは,cygwinの1.5.5バージョンを対象にしている. また,以下のサイトではCygwinに関する情報やドキュメントがまとめられている. http://www.sixnine.net/cygwin/cygwin-doc/ 3.1必要なファイル Cygwinのインストールに必要なファイルは次のサイトから入手することができる. Red Hat http://www.cygwin.com/ または ftp://sources.redhat.com/pub/cygwin/ Ring Server http://www.ring.gr.jp/ 上記のサイトから最新版の setup.exe をダウンロードする. 3.2インストール setup.exe を実行すると, ・インターネットからダウンロードする ・インターネットからインストールする ・ローカルディレクトリからインストールする 該当するインストール手法にチェックし次に進む.何台かのマシンにインストー ルするなら,1台目はインターネットからインストールイメージをダウンロー ドし,後のマシンにはそれらのファイルをコピーしてローカルディレクトリか らインストールすればよい. 以下,インターネットからダウンロードする場合について説明する.ダウンロー ドを選択すると必要ならば proxy の設定の後,ミラーサイトの一覧が示され るので,近くのサイトを選択する. 次に,パッケージ一覧が示されるため,必要なパッケージを選択する.特に回 線等の問題がないかぎりすべてのパッケージをインストールするのが望ましい. ダウンロードが終了したらもう一度 setup.exe を実行して,ローカルディレ クトリからのインストールを選択する.次にインストール元のディレクトリ (上でダウンロードしたファイルが存在するディレクトリ,デフォルトで選択 されているはず)を選択する.次にインストール先の選択に移るが,特に理由 がない限りデフォルトの C:\Cygwin にインストールする.次にインストール するパッケージを選択する.先ほどダウンロードされたファイルが表示され, ディフォルトでは全てインストールされることになっているため,単に next を押してインストールを開始する. 3.3.開発環境のインストール 3.3.1 バイナリからのインストール 特に最新版のコンパイラが必要でなければ,TOPPERS/JSP のホームページ (http://www.toppers.jp/)から SH 用の BINUTILS,GCC-CORE,GDB のバイナ リ(gnu_cygwin_sh.tar.gz)をc:\Cygwin\usr\localにダウンロードして以下 の手順で展開する.なお,このファイルにはNEWLIBは含まれていないが, GDB-Stub,TOPPERS/JSP の sample1 のコンパイルには支障はない.ユーザー アプリケーションを作成するさい,必要なら別途ソースからコンパイル,イン ストールする.バイナリ(gnu_cygwin_sh.tar.gz)は,Cygwin の /usr/local で展開する. $ cd /usr/local $ tar xvfz gnu_cygwin_sh.tar.gz これで/usr/local/sh以下に開発ツールがインストールされる.次に /usr/local/sh/bin にパスを通す.具体的にはホーム(cygwin実行時のカレン トディレクトリ)にbashの設定ファイル".bashrc"を作成して次の一行を追加す る. export PATH=/usr/local/sh/bin:${PATH} 後は,JSPの各ターゲットのMakefile先頭にある"CYGWIN = ture"の部分のコメ ントアウトを外せばCygwin上でJSPのコンパイルが可能である. 3.4.gdbによるデバッグ GDBのコマンドラインからCOM1経由でターゲットに接続する場合は, (gdb)target remote /dev/ttyS0 COM2経由の場合は (gdb)target remote /dev/ttyS1 とする. 以上