OSDN Git Service

3b22640e416aeb1b541bc7181f931ae15e433b3a
[trx-305dsp/dsp.git] / hirado / kernel / doc / gnu_install.txt
1
2                   = GNU開発環境構築マニュアル =
3
4             (Release 1.4対応,最終更新: 20-Dec-2003)
5
6 ------------------------------------------------------------------------ 
7  TOPPERS/JSP Kernel
8      Toyohashi Open Platform for Embedded Real-Time Systems/
9      Just Standard Profile Kernel
10
11  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
12                              Toyohashi Univ. of Technology, JAPAN
13
14  上記著作権者は,以下の (1)〜(4) の条件か,Free Software Foundation 
15  によって公表されている GNU General Public License の Version 2 に記
16  述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア
17  を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下,
18  利用と呼ぶ)することを無償で許諾する.
19  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
20      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
21      スコード中に含まれていること.
22  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
23      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
24      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
25      の無保証規定を掲載すること.
26  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
27      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
28      と.
29    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
30        作権表示,この利用条件および下記の無保証規定を掲載すること.
31    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
32        報告すること.
33  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
34      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
35
36  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
37  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
38  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
39  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
40
41  @(#) $Id: gnu_install.txt,v 1.1 2009/01/31 05:27:37 suikan Exp $
42 ------------------------------------------------------------------------
43
44
45 1.GNU開発環境の構築
46
47
48 1.1 開発環境の概要
49
50 カーネルをインストールするには,JSPカーネルの配布キットに含まれる以外
51 に,以下のツールおよびライブラリが必要である.
52
53     GNU開発環境
54        BINUTILS(アセンブラ,リンカなど)
55        GCC-CORE(Cコンパイラ)
56        GDB(デバッガ)
57     NEWLIB(標準Cライブラリ)
58     perl(動作確認は 5.005)
59     GNU Make(動作確認は 3.77)
60
61 各ツールのバージョンについては,ターゲット毎に異なるため,ターゲット毎
62 のマニュアルを参照のこと.
63
64 アプリケーションが標準Cライブラリを使用しない場合には NEWLIB は必要な
65 いが,GCC をインストールする際に NEWLIB があった方が都合がよいため,
66 NEWLIB も含めてインストールする方法を標準とする.NEWLIB をインストール
67 しない場合には,GCC のソースの修正が必要となり, GCC の 2.95.3 を対象
68 として後述する.ターゲットへのダウンロードと実行を ROMモニタ(GDB に対
69 応していないもの)によって行う場合には,GDB をインストールする必要はな
70 い.
71
72 perl と GNU Make は,ほとんどの Linux と Cygwin では標準でインストール
73 されるため,新たにインストールする必要はない.インストールされている 
74 perl または make のバージョンを知りたい場合には,-v オプションをつけて
75 実行すればよい(-v オプションをサポートしていない make は GNU make で
76 はない).なお,以下の説明では,makeコマンドが GNU Make であるものとす
77 る.
78
79 また,これらの開発環境を Windows上に構築するためには Cygwin を用いる.
80
81     Cygwin(動作確認は 1.5.5)
82
83 Cygwinのインストールについては後述する.また,ツールのソースコードを修
84 正する必要があるが,これも後述する.
85
86 これらのツールおよびライブラリのソースコードは,次のサイトから入手する
87 ことができる.
88
89     BINUTILS,GCC-CORE,GDB,GNU Make:
90         GNUプロジェクト     http://www.gnu.org/
91         Ring Server         http://www.ring.gr.jp/
92
93     NEWLIB:
94         Red Hat             http://sources.redhat.com/newlib/
95                     または  ftp://sources.redhat.com/pub/newlib/
96
97     Cygwin:
98         Red Hat             http://sources.redhat.com/cygwin/
99                     または  ftp://sources.redhat.com/pub/cygwin/
100         Ring Server         http://www.ring.gr.jp/
101
102
103 1.2 開発環境の構築方法
104
105 この節では,開発環境の構築方法を説明する.開発環境を Windows上に構築す
106 る場合には,あらかじめ Cygwin をインストールしておくことが必要である.
107 Cygwin のインストール時の注意事項は,1.3節で述べる.
108
109 (1) 準備作業
110
111 ホスト上に必要なツールが足りない場合には,あらかじめインストールしてお
112 く.具体的には,perl と GNU Make が必要である.さらに,開発環境の構築
113 に使うために,ホスト上にも最新の GCC をインストールしておくことが望ま
114 しい.
115
116 なお,JSPカーネルの配布キットに含まれる perlスクリプトは,perl のプロ
117 グラムが /usr/bin/perl にあるものと仮定して記述している.perl のプログ
118 ラムのパスがこれと異なる場合は,各 perlスクリプトの先頭の perl の絶対
119 パスを修正する必要がある.
120
121 (2) ソースファイルの展開
122
123 BINUTILS,GCC-CORE,GDB,NEWLIB のソースファイルを展開する.以下では,
124 展開により作成されたディレクトリ名をそれぞれ次のように表記する.
125
126     <BINUTILS-SRCDIR>   BINUTILS のソースを展開したディレクトリ
127     <GCC-SRCDIR>        GCC-CORE のソースを展開したディレクトリ
128     <GDB-SRCDIR>        GDB のソースを展開したディレクトリ
129     <NEWLIB-SRCDIR>     NEWLIB のソースを展開したディレクトリ
130
131 (3) 開発環境構築のためのディレクトリの決定
132
133 開発環境を構築するために,以下のディレクトリを用意する.
134
135     <PREFIX>            開発環境をインストールするディレクトリ
136     <BINUTILS-OBJDIR>   BITUTILS のオブジェクトを生成するディレクトリ
137     <GCC-OBJDIR>        GCC-CORE のオブジェクトを生成するディレクトリ
138     <GDB-OBJDIR>        GDB のオブジェクトを生成するディレクトリ
139     <NEWLIB-OBJDIR>     NEWLIB のオブジェクトを生成するディレクトリ
140
141 <PREFIX>/bin が実行パスに含まれるようにシェルの設定を行っておく.また,
142 make install は,<PREFIX> 以下に書き込み権限があるユーザで行う必要があ
143 る.
144
145 (4) ターゲットの選択
146
147 ターゲットプロセッサに応じて,ターゲット環境を選択する.具体的には,次
148 の通り.
149
150     プロセッサ      ターゲット環境(<TARGET>)
151     M68040          m68k-unknown-elf
152     SH1, SH3        sh-hitachi-elf
153     V850            v850-nec-elf
154     H8              h8300-hms
155     ARM             arm-elf
156     M32R            m32r-elf
157     Microblaze      mb
158     mips3           mipsel-nec-elf
159     Xstormy16       xstormy16-elf
160
161 以下,ターゲット環境を表す文字列を <TARGET> と表記する.
162
163 なお,ターゲットによっては,ツールまたはライブラリのソースコードの修正
164 が必要な場合がある.修正内容については,ターゲット毎のマニュアルに記述
165 する.
166
167 (5) BINUTILS のインストール
168
169 BINUTILS は,GCC-CORE のインストールに必要なため,GCC-CORE に先だって
170 インストールする.BINUTILS のインストール手順は次の通り.
171
172     % mkdir <BINUTILS-OBJDIR>
173     % cd <BINUTILS-OBJDIR>
174     % <BINUTILS-SRCDIR>/configure --target=<TARGET> --prefix=<PREFIX>\
175       --disable-nls
176     % make
177     % make install
178
179 (6) GCC-CORE のインストール
180
181 ・NELIB をインストールする場合
182 NEWLIB のインストールには GCC-CORE が必要なため,GCC-CORE のインストー
183 ルを先に行う.configure は,newlib のヘッダーファイルを <PREFIX> 以下
184 にインストールするため,<PREFIX> 以下に書き込み権限のあるユーザーで行
185 う必要がある.GCC-CORE のインストール手順は次の通り.
186
187     % mkdir <GCC-OBJDIR>
188     % cd <GCC-OBJDIR>
189     % <GCC-SRCDIR>/configure \
190         --target=<TARGET> --prefix=<PREFIX> \
191         --with-gnu-as --with-gnu-ld --with-newlib \
192         --with-headers=<NEWLIB-SRCDIR>/newlib/libc/include
193     % make
194     % make install
195
196 ・NEWLIB をインストールしない場合.
197 NEWLIB をインストールしない場合,ソースファイルの修正が必要となる.修
198 正個所は,
199     <GCC-SRCDIR>/gcc/libgcc2.c の 41,42行目の
200     #include <stdlib.h>
201     #include <unistd.h>
202     の二行をコメントアウトする.
203
204     <GCC-SRCDIR>/gcc/frame.c の 42,43行目の
205     #include <stdlib.h>
206     #include <unistd.h>
207     の二行をコメントアウトする.
208
209 修正後の GCC-CORE のインストール手順は次の通り.
210     
211     % mkdir <GCC-OBJDIR>
212     % cd <GCC-OBJDIR>
213     % <GCC-SRCDIR>/configure \
214         --target=<TARGET> --prefix=<PREFIX> \
215         --with-gnu-as --with-gnu-ld 
216     % make
217     % make install
218
219 (7) GDB のインストール
220
221 次の手順に従って,GDB をインストールする.
222
223     % mkdir <GDB-OBJDIR>
224     % cd <GDB-OBJDIR>
225     % <GDB-SRCDIR>/configure --target=<TARGET> --prefix=<PREFIX>
226     % make
227     % make install
228
229 (8) NEWLIB のインストール
230
231 次の手順に従って,NEWLIB をインストールする.
232
233     % mkdir <NEWLIB-OBJDIR>
234     % cd <NEWLIB-OBJDIR>
235     % <NEWLIB-SRCDIR>/configure --target=<TARGET> --prefix=<PREFIX>
236     % make
237     % make install
238
239
240
241 2.ターゲットへのダウンロードと実行
242
243 ユーザズマニュアルの手順にしたがって,JSPカーネルおよびアプリケーショ
244 ンプログラムが構築できると,ターゲットシステムへダウンロードして実行す
245 る.ダウンロードと実行の方法には,ROMモニタを用いる方法と,gdb+スタブ
246 を用いる方法がある.
247
248 (A) ROMモニタを用いる方法
249
250 ターゲットシステムが ROMモニタを持っている場合には,バイナリ形式または
251 モトローラ S形式のファイルを,ROMモニタのダウンロードコマンドを使って
252 ダウンロードし,実行コマンドを使ってダウンロードした番地から実行すれば
253 よい.
254
255 (B) スタブを用いる方法
256
257 JSPカーネルと一緒に使えるように改造したスタブのソースコードは,JSPカー
258 ネルのウェブサイトからダウンロードすることができる.スタブをダウンロー
259 ドしたら,READMEファイルに従ってスタブを構築し,ROM またはフラッシュメ
260 モリに書き込む.
261
262 gdb+スタブを用いてプログラムをダウンロード・実行する手順は次の通り.
263
264     % <TARGET>-gdb jsp
265     GNU gdb 4.18
266     Copyright 1998 Free Software Foundation, Inc.
267     .......... 以下メッセージが続く ..........
268     (gdb) 
269
270 gdb が起動したら,次のコマンドを実行して,ターゲットシステムと接続する.
271
272     (gdb) set remotebaud <BPS>
273     (gdb) target remote /dev/ttyXX
274
275 <BPS>,/dev/ttyXX には,それぞれ,ターゲットシステムを接続しているシリ
276 アルポートのボーレートと,デバイス名を指定する.次に,load コマンドに
277 より,プログラムをダウンロードする.
278
279     (gdb) load
280
281 プログラムの実行は,continue コマンドで行う.
282
283     (gdb) continue
284
285 ターゲットシステムによっては,プログラムの実行中にコントロール-C を入
286 力する,または NMI をかけることで,プログラムを停止させて gdb に制御が
287 戻すことができる.ただし,割込み禁止状態では,コントロール-C で停止さ
288 せることはできない.詳しくは,スタブの READMEファイルまたはターゲット
289 毎のマニュアルを参照すること.
290
291
292
293 3.Cygwinのインストール
294
295 本インストールマニュアルは,cygwinの1.5.5バージョンを対象にしている.
296 また,以下のサイトではCygwinに関する情報やドキュメントがまとめられている.
297 http://www.sixnine.net/cygwin/cygwin-doc/
298
299 3.1必要なファイル
300 Cygwinのインストールに必要なファイルは次のサイトから入手することができる.
301
302         Red Hat             http://www.cygwin.com/
303                     または  ftp://sources.redhat.com/pub/cygwin/
304         Ring Server         http://www.ring.gr.jp/
305
306 上記のサイトから最新版の setup.exe をダウンロードする.
307
308 3.2インストール
309 setup.exe を実行すると,
310
311 ・インターネットからダウンロードする
312 ・インターネットからインストールする
313 ・ローカルディレクトリからインストールする
314
315 該当するインストール手法にチェックし次に進む.何台かのマシンにインストー
316 ルするなら,1台目はインターネットからインストールイメージをダウンロー
317 ドし,後のマシンにはそれらのファイルをコピーしてローカルディレクトリか
318 らインストールすればよい.
319
320 以下,インターネットからダウンロードする場合について説明する.ダウンロー
321 ドを選択すると必要ならば proxy の設定の後,ミラーサイトの一覧が示され
322 るので,近くのサイトを選択する.
323
324 次に,パッケージ一覧が示されるため,必要なパッケージを選択する.特に回
325 線等の問題がないかぎりすべてのパッケージをインストールするのが望ましい.
326
327 ダウンロードが終了したらもう一度 setup.exe を実行して,ローカルディレ
328 クトリからのインストールを選択する.次にインストール元のディレクトリ
329 (上でダウンロードしたファイルが存在するディレクトリ,デフォルトで選択
330 されているはず)を選択する.次にインストール先の選択に移るが,特に理由
331 がない限りデフォルトの C:\Cygwin にインストールする.次にインストール
332 するパッケージを選択する.先ほどダウンロードされたファイルが表示され,
333 ディフォルトでは全てインストールされることになっているため,単に next 
334 を押してインストールを開始する.
335
336
337 3.3.開発環境のインストール
338
339 3.3.1 バイナリからのインストール
340
341 特に最新版のコンパイラが必要でなければ,TOPPERS/JSP のホームページ
342 (http://www.toppers.jp/)から SH 用の BINUTILS,GCC-CORE,GDB のバイナ
343 リ(gnu_cygwin_sh.tar.gz)をc:\Cygwin\usr\localにダウンロードして以下
344 の手順で展開する.なお,このファイルにはNEWLIBは含まれていないが,
345 GDB-Stub,TOPPERS/JSP の sample1 のコンパイルには支障はない.ユーザー
346 アプリケーションを作成するさい,必要なら別途ソースからコンパイル,イン
347 ストールする.バイナリ(gnu_cygwin_sh.tar.gz)は,Cygwin の /usr/local 
348 で展開する.
349
350     $ cd /usr/local
351     $ tar xvfz gnu_cygwin_sh.tar.gz
352
353 これで/usr/local/sh以下に開発ツールがインストールされる.次に
354 /usr/local/sh/bin にパスを通す.具体的にはホーム(cygwin実行時のカレン
355 トディレクトリ)にbashの設定ファイル".bashrc"を作成して次の一行を追加す
356 る.
357
358 export PATH=/usr/local/sh/bin:${PATH}
359
360 後は,JSPの各ターゲットのMakefile先頭にある"CYGWIN = ture"の部分のコメ
361 ントアウトを外せばCygwin上でJSPのコンパイルが可能である.
362
363
364 3.4.gdbによるデバッグ
365 GDBのコマンドラインからCOM1経由でターゲットに接続する場合は,
366
367 (gdb)target remote /dev/ttyS0
368
369 COM2経由の場合は
370
371 (gdb)target remote /dev/ttyS1
372
373 とする.
374
375
376 以上