
                   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 $
------------------------------------------------------------------------


GNUȯĶι


1.1 ȯĶγ

ͥ򥤥󥹥ȡ뤹ˤϡJSPͥۥåȤ˴ޤޤʳ
ˡʲΥġ뤪ӥ饤֥꤬ɬפǤ롥

    GNUȯĶ
       BINUTILSʥ֥顤󥫤ʤɡ
       GCC-CORECѥ
       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Υ󥹥ȡˤĤƤϸҤ롥ޤġΥɤ
ɬפ뤬Ҥ롥

Υġ뤪ӥ饤֥ΥɤϡΥȤꤹ
ȤǤ롥

    BINUTILSGCC-COREGDBGNU 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) եŸ

BINUTILSGCC-COREGDBNEWLIB ΥեŸ롥ʲǤϡ
Ÿˤ줿ǥ쥯ȥ̾򤽤줾켡Τ褦ɽ롥

    <BINUTILS-SRCDIR>   BINUTILS ΥŸǥ쥯ȥ
    <GCC-SRCDIR>        GCC-CORE ΥŸǥ쥯ȥ
    <GDB-SRCDIR>        GDB ΥŸǥ쥯ȥ
    <NEWLIB-SRCDIR>     NEWLIB ΥŸǥ쥯ȥ

(3) ȯĶۤΤΥǥ쥯ȥη

ȯĶۤ뤿ˡʲΥǥ쥯ȥѰդ롥

    <PREFIX>            ȯĶ򥤥󥹥ȡ뤹ǥ쥯ȥ
    <BINUTILS-OBJDIR>   BITUTILS Υ֥Ȥǥ쥯ȥ
    <GCC-OBJDIR>        GCC-CORE Υ֥Ȥǥ쥯ȥ
    <GDB-OBJDIR>        GDB Υ֥Ȥǥ쥯ȥ
    <NEWLIB-OBJDIR>     NEWLIB Υ֥Ȥǥ쥯ȥ

<PREFIX>/bin ¹ԥѥ˴ޤޤ褦˥ԤäƤޤ
make install ϡ<PREFIX> ʲ˽񤭹߸¤桼ǹԤɬפ
롥

(4) åȤ

åȥץå˱ơåȴĶ򤹤롥Ūˤϡ
̤ꡥ

    ץå      åȴĶ<TARGET>
    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

ʲåȴĶɽʸ <TARGET> ɽ롥

ʤåȤˤäƤϡġޤϥ饤֥Υɤν
ɬפʾ礬롥ƤˤĤƤϡåΥޥ˥奢˵
롥

(5) BINUTILS Υ󥹥ȡ

BINUTILS ϡGCC-CORE Υ󥹥ȡɬפʤᡤGCC-CORE ä
󥹥ȡ뤹롥BINUTILS Υ󥹥ȡϼ̤ꡥ

    % mkdir <BINUTILS-OBJDIR>
    % cd <BINUTILS-OBJDIR>
    % <BINUTILS-SRCDIR>/configure --target=<TARGET> --prefix=<PREFIX>\
      --disable-nls
    % make
    % make install

(6) GCC-CORE Υ󥹥ȡ

NELIB 򥤥󥹥ȡ뤹
NEWLIB Υ󥹥ȡˤ GCC-CORE ɬפʤᡤGCC-CORE Υ󥹥ȡ
˹Ԥconfigure ϡnewlib Υإåե <PREFIX> ʲ
˥󥹥ȡ뤹뤿ᡤ<PREFIX> ʲ˽񤭹߸¤Τ桼ǹ
ɬפ롥GCC-CORE Υ󥹥ȡϼ̤ꡥ

    % mkdir <GCC-OBJDIR>
    % cd <GCC-OBJDIR>
    % <GCC-SRCDIR>/configure \
        --target=<TARGET> --prefix=<PREFIX> \
        --with-gnu-as --with-gnu-ld --with-newlib \
        --with-headers=<NEWLIB-SRCDIR>/newlib/libc/include
    % make
    % make install

NEWLIB 򥤥󥹥ȡ뤷ʤ硥
NEWLIB 򥤥󥹥ȡ뤷ʤ硤եνɬפȤʤ롥
Ľϡ
    <GCC-SRCDIR>/gcc/libgcc2.c  41,42ܤ
    #include <stdlib.h>
    #include <unistd.h>
    Ԥ򥳥ȥȤ롥

    <GCC-SRCDIR>/gcc/frame.c  42,43ܤ
    #include <stdlib.h>
    #include <unistd.h>
    Ԥ򥳥ȥȤ롥

 GCC-CORE Υ󥹥ȡϼ̤ꡥ
    
    % mkdir <GCC-OBJDIR>
    % cd <GCC-OBJDIR>
    % <GCC-SRCDIR>/configure \
        --target=<TARGET> --prefix=<PREFIX> \
        --with-gnu-as --with-gnu-ld 
    % make
    % make install

(7) GDB Υ󥹥ȡ

μ˽äơGDB 򥤥󥹥ȡ뤹롥

    % mkdir <GDB-OBJDIR>
    % cd <GDB-OBJDIR>
    % <GDB-SRCDIR>/configure --target=<TARGET> --prefix=<PREFIX>
    % make
    % make install

(8) NEWLIB Υ󥹥ȡ

μ˽äơNEWLIB 򥤥󥹥ȡ뤹롥

    % mkdir <NEWLIB-OBJDIR>
    % cd <NEWLIB-OBJDIR>
    % <NEWLIB-SRCDIR>/configure --target=<TARGET> --prefix=<PREFIX>
    % make
    % make install



åȤؤΥɤȼ¹

桼ޥ˥奢μˤäơJSPͥ뤪ӥץꥱ
ץबۤǤȡåȥƥإɤƼ¹Ԥ
롥ɤȼ¹ԤˡˤϡROM˥Ѥˡȡgdbܥ
Ѥˡ롥

(A) ROM˥Ѥˡ

åȥƥब ROM˥äƤˤϡХʥޤ
ȥ SΥեROM˥ΥɥޥɤȤä
ɤ¹ԥޥɤȤäƥɤϤ¹Ԥ
褤

(B) ֤Ѥˡ

JSPͥȰ˻Ȥ褦˲¤֤ΥɤϡJSP
ͥΥ֥Ȥɤ뤳ȤǤ롥֤
ɤ顤READMEե˽äƥ֤ۤROM ޤϥեå
˽񤭹ࡥ

gdbܥ֤Ѥƥץɡ¹Ԥϼ̤ꡥ

    % <TARGET>-gdb jsp
    GNU gdb 4.18
    Copyright 1998 Free Software Foundation, Inc.
    .......... ʲå³ ..........
    (gdb) 

gdb ư顤Υޥɤ¹Ԥơåȥƥ³롥

    (gdb) set remotebaud <BPS>
    (gdb) target remote /dev/ttyXX

<BPS>/dev/ttyXX ˤϡ줾졤åȥƥ³Ƥ륷
ݡȤΥܡ졼ȤȡǥХ̾ꤹ롥ˡload ޥɤ
ꡤץɤ롥

    (gdb) load

ץμ¹Ԥϡcontinue ޥɤǹԤ

    (gdb) continue

åȥƥˤäƤϡץμ¹˥ȥ-C 
Ϥ롤ޤ NMI 򤫤뤳Ȥǡץߤ gdb 椬
᤹ȤǤ롥߶ػ߾֤Ǥϡȥ-C ߤ
뤳ȤϤǤʤܤϡ֤ READMEեޤϥå
Υޥ˥奢򻲾Ȥ뤳ȡ



CygwinΥ󥹥ȡ

ܥ󥹥ȡޥ˥奢ϡcygwin1.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-StubTOPPERS/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"ʬΥ
ȥȤ򳰤CygwinJSPΥѥ뤬ǽǤ롥


3.4.gdbˤǥХå
GDBΥޥɥ饤󤫤COM1ͳǥåȤ³ϡ

(gdb)target remote /dev/ttyS0

COM2ͳξ

(gdb)target remote /dev/ttyS1

Ȥ롥


ʾ
