
                   GNUJ\z}jA 

            iRelease 1.4ΉCŏIXV: 20-Dec-2003j

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

 L쌠҂́Cȉ (1)`(4) ̏CFree Software Foundation 
 ɂČ\Ă GNU General Public License  Version 2 ɋL
 qĂ𖞂ꍇɌC{\tgEFAi{\tgEFA
 ς̂܂ށDȉjgpEEρEĔzziȉC
 pƌĂԁj邱Ƃ𖳏ŋD
 (1) {\tgEFA\[XR[ȟ`ŗpꍇɂ́CL̒
     \C̗pщL̖ۏ؋K肪Ĉ܂܂̌`Ń\[
     XR[hɊ܂܂Ă邱ƁD
 (2) {\tgEFACCu`ȂǁC̃\tgEFAJɎg
     pł`ōĔzzꍇɂ́CĔzzɔhLgip
     ҃}jAȂǁjɁCL̒쌠\C̗pщL
     ̖ۏ؋Kfڂ邱ƁD
 (3) {\tgEFAC@ɑgݍނȂǁC̃\tgEFAJɎg
     płȂ`ōĔzzꍇɂ́Ĉꂩ̏𖞂
     ƁD
   (a) ĔzzɔhLgip҃}jAȂǁjɁCL̒
       쌠\C̗pщL̖ۏ؋Kfڂ邱ƁD
   (b) Ĕzž`ԂCʂɒ߂@ɂāCTOPPERSvWFNg
       񍐂邱ƁD
 (4) {\tgEFA̗pɂ蒼ړI܂͊ԐړIɐ邢Ȃ鑹
     QCL쌠҂TOPPERSvWFNgƐӂ邱ƁD

 {\tgEFÁCۏ؂Œ񋟂Ă̂łDL쌠҂
 TOPPERSvWFNǵC{\tgEFAɊւāC̓Kp\
 ܂߂āCȂۏ؂sȂD܂C{\tgEFA̗pɂ蒼
 ړI܂͊ԐړIɐȂ鑹QɊւĂC̐ӔC𕉂ȂD

 @(#) $Id: gnu_install.txt,v 1.1 2008/06/17 00:04:40 suikan Exp $
------------------------------------------------------------------------


PDGNUJ̍\z


1.1 J̊Tv

J[lCXg[ɂ́CJSPJ[l̔zzLbgɊ܂܂ȊO
ɁCȉ̃c[уCuKvłD

    GNUJ
       BINUTILSiAZuCJȂǁj
       GCC-COREiCRpCj
       GDBifobKj
    NEWLIBiWCCuj
    perlimF 5.005j
    GNU MakeimF 3.77j

ec[̃o[WɂẮC^[QbgɈقȂ邽߁C^[Qbg
̃}jAQƂ̂ƁD

AvP[VWCCugpȂꍇɂ NEWLIB ͕Kv
CGCC CXg[ۂ NEWLIB s悢߁C
NEWLIB ܂߂ăCXg[@WƂDNEWLIB CXg[
Ȃꍇɂ́CGCC ̃\[X̏CKvƂȂC GCC  2.95.3 Ώ
ƂČqD^[Qbgւ̃_E[hƎs ROMj^iGDB ɑ
ĂȂ́jɂčsꍇɂ́CGDB CXg[Kv͂
D

perl  GNU Make ́CقƂǂ Linux  Cygwin ł͕WŃCXg[
邽߁CVɃCXg[Kv͂ȂDCXg[Ă 
perl ܂ make ̃o[Wm肽ꍇɂ́C-v IvV
s΂悢i-v IvVT|[gĂȂ make  GNU make 
͂ȂjDȂCȉ̐ł́CmakeR}h GNU Make ł̂Ƃ
D

܂C̊J Windowsɍ\z邽߂ɂ Cygwin pD

    CygwinimF 1.5.5j

CygwiñCXg[ɂĂ͌qD܂Cc[̃\[XR[hC
Kv邪CqD

̃c[уCũ\[XR[h́C̃TCg肷
ƂłD

    BINUTILSCGCC-CORECGDBCGNU Make:
        GNUvWFNg     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 J̍\z@

̐߂ł́CJ̍\z@DJ Windowsɍ\z
ꍇɂ́C炩 Cygwin CXg[ĂƂKvłD
Cygwin ̃CXg[̒ӎ́C1.3߂ŏqׂD

(1) 

zXgɕKvȃc[Ȃꍇɂ́C炩߃CXg[Ă
D̓Iɂ́Cperl  GNU Make KvłDɁCJ̍\z
Ɏg߂ɁCzXgɂŐV GCC CXg[ĂƂ]
D

ȂCJSPJ[l̔zzLbgɊ܂܂ perlXNvǵCperl ̃v
O /usr/bin/perl ɂ̂Ɖ肵ċLqĂDperl ̃vO
̃pXƈقȂꍇ́Ce perlXNvg̐擪 perl ̐
pXCKvD

(2) \[Xt@C̓WJ

BINUTILSCGCC-CORECGDBCNEWLIB ̃\[Xt@CWJDȉł́C
WJɂ쐬ꂽfBNgꂼꎟ̂悤ɕ\LD

    <BINUTILS-SRCDIR>   BINUTILS ̃\[XWJfBNg
    <GCC-SRCDIR>        GCC-CORE ̃\[XWJfBNg
    <GDB-SRCDIR>        GDB ̃\[XWJfBNg
    <NEWLIB-SRCDIR>     NEWLIB ̃\[XWJfBNg

(3) J\ẑ߂̃fBNǧ

J\z邽߂ɁCȉ̃fBNgpӂD

    <PREFIX>            JCXg[fBNg
    <BINUTILS-OBJDIR>   BITUTILS ̃IuWFNg𐶐fBNg
    <GCC-OBJDIR>        GCC-CORE ̃IuWFNg𐶐fBNg
    <GDB-OBJDIR>        GDB ̃IuWFNg𐶐fBNg
    <NEWLIB-OBJDIR>     NEWLIB ̃IuWFNg𐶐fBNg

<PREFIX>/bin spXɊ܂܂悤ɃVF̐ݒsĂD܂C
make install ́C<PREFIX> ȉɏ݌郆[UōsKv
D

(4) ^[Qbg̑I

^[QbgvZbTɉāC^[QbgID̓Iɂ́C
̒ʂD

    vZbT      ^[Qbgi<TARGET>j
    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

ȉC^[Qbg\ <TARGET> ƕ\LD

ȂC^[QbgɂẮCc[܂̓Cũ\[XR[h̏C
KvȏꍇDCeɂẮC^[Qbg̃}jAɋLq
D

(5) BINUTILS ̃CXg[

BINUTILS ́CGCC-CORE ̃CXg[ɕKvȂ߁CGCC-CORE ɐ悾
CXg[DBINUTILS ̃CXg[菇͎̒ʂD

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

(6) GCC-CORE ̃CXg[

ENELIB CXg[ꍇ
NEWLIB ̃CXg[ɂ GCC-CORE KvȂ߁CGCC-CORE ̃CXg[
ɍsDconfigure ́Cnewlib ̃wb_[t@C <PREFIX> ȉ
ɃCXg[邽߁C<PREFIX> ȉɏ݌̂郆[U[ōs
KvDGCC-CORE ̃CXg[菇͎̒ʂD

    % 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

ENEWLIB CXg[ȂꍇD
NEWLIB CXg[ȂꍇC\[Xt@C̏CKvƂȂDC
́C
    <GCC-SRCDIR>/gcc/libgcc2.c  41,42sڂ
    #include <stdlib.h>
    #include <unistd.h>
    ̓sRgAEgD

    <GCC-SRCDIR>/gcc/frame.c  42,43sڂ
    #include <stdlib.h>
    #include <unistd.h>
    ̓sRgAEgD

C GCC-CORE ̃CXg[菇͎̒ʂD
    
    % mkdir <GCC-OBJDIR>
    % cd <GCC-OBJDIR>
    % <GCC-SRCDIR>/configure \
        --target=<TARGET> --prefix=<PREFIX> \
        --with-gnu-as --with-gnu-ld 
    % make
    % make install

(7) GDB ̃CXg[

̎菇ɏ]āCGDB CXg[D

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

(8) NEWLIB ̃CXg[

̎菇ɏ]āCNEWLIB CXg[D

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



QD^[Qbgւ̃_E[hƎs

[UY}jA̎菇ɂāCJSPJ[lуAvP[V
vO\złƁC^[QbgVXeփ_E[hĎs
D_E[hƎs̕@ɂ́CROMj^p@ƁCgdb{X^u
p@D

(A) ROMj^p@

^[QbgVXe ROMj^Ăꍇɂ́CoCi`܂
g[ S`̃t@CCROMj^̃_E[hR}hg
_E[hCsR}hgă_E[hԒns
悢D

(B) X^up@

JSPJ[lƈꏏɎg悤ɉX^ũ\[XR[h́CJSPJ[
l̃EFuTCg_E[h邱ƂłDX^u_E[
hCREADMEt@Cɏ]ăX^u\zCROM ܂̓tbV
ɏށD

gdb{X^upăvO_E[hEs菇͎̒ʂD

    % <TARGET>-gdb jsp
    GNU gdb 4.18
    Copyright 1998 Free Software Foundation, Inc.
    .......... ȉbZ[W ..........
    (gdb) 

gdb NC̃R}hsāC^[QbgVXeƐڑD

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

<BPS>C/dev/ttyXX ɂ́CꂼC^[QbgVXeڑĂV
A|[g̃{[[gƁCfoCXw肷DɁCload R}h
CvO_E[hD

    (gdb) load

vO̎śCcontinue R}hōsD

    (gdb) continue

^[QbgVXeɂẮCvO̎sɃRg[-C 
͂C܂ NMI 邱ƂŁCvO~ gdb ɐ䂪
߂ƂłDC݋֎~Ԃł́CRg[-C Œ~
邱Ƃ͂łȂDڂ́CX^u READMEt@C܂̓^[Qbg
̃}jAQƂ邱ƁD



RDCygwiñCXg[

{CXg[}jÁCcygwin1.5.5o[WΏۂɂĂD
܂Cȉ̃TCgłCygwinɊւhLg܂Ƃ߂ĂD
http://www.sixnine.net/cygwin/cygwin-doc/

3.1Kvȃt@C
CygwiñCXg[ɕKvȃt@C͎̃TCg肷邱ƂłD

        Red Hat             http://www.cygwin.com/
                    ܂  ftp://sources.redhat.com/pub/cygwin/
        Ring Server         http://www.ring.gr.jp/

L̃TCgŐVł setup.exe _E[hD

3.2CXg[
setup.exe sƁC

EC^[lbg_E[h
EC^[lbgCXg[
E[JfBNgCXg[

YCXg[@Ƀ`FbNɐiށD䂩̃}VɃCXg[
ȂC1ڂ̓C^[lbgCXg[C[W_E[
hC̃}Vɂ͂̃t@CRs[ă[JfBNg
CXg[΂悢D

ȉCC^[lbg_E[hꍇɂĐD_E[
hIƕKvȂ proxy ̐ݒ̌C~[TCg̈ꗗ
̂ŁC߂̃TCgID

ɁCpbP[Wꗗ邽߁CKvȃpbP[WIDɉ
̖肪Ȃ肷ׂẴpbP[WCXg[̂]܂D

_E[hIx setup.exe sāC[JfB
Ng̃CXg[IDɃCXg[̃fBNg
(Ń_E[ht@C݂fBNgCftHgőI
Ă͂)IDɃCXg[̑IɈڂ邪CɗR
ȂftHg C:\Cygwin ɃCXg[DɃCXg[
pbP[WIDقǃ_E[hꂽt@C\C
fBtHgł͑SăCXg[邱ƂɂȂĂ邽߁CP next 
ăCXg[JnD


3.3.J̃CXg[

3.3.1 oCĩCXg[

ɍŐVł̃RpCKvłȂ΁CTOPPERS/JSP ̃z[y[W
ihttp://www.toppers.jp/j SH p BINUTILS,GCC-CORE,GDB ̃oCi
ignu_cygwin_sh.tar.gzjc:\Cygwin\usr\localɃ_E[hĈȉ
̎菇œWJDȂC̃t@CɂNEWLIB͊܂܂ĂȂC
GDB-StubCTOPPERS/JSP  sample1 ̃RpCɂ͎x͂ȂD[U[
AvP[V쐬邳CKvȂʓr\[XRpCCC
Xg[DoCiignu_cygwin_sh.tar.gzj́CCygwin  /usr/local 
œWJD

    $ cd /usr/local
    $ tar xvfz gnu_cygwin_sh.tar.gz

/usr/local/shȉɊJc[CXg[D
/usr/local/sh/bin ɃpXʂD̓Iɂ̓z[icygwins̃J
gfBNg)bash̐ݒt@C".bashrc"쐬Ď̈sǉ
D

export PATH=/usr/local/sh/bin:${PATH}

́CJSP̊e^[QbgMakefile擪ɂ"CYGWIN = ture"̃̕R
gAEgOCygwinJSP̃RpC\łD


3.4.gdbɂfobO
GDB̃R}hCCOM1oRŃ^[Qbgɐڑꍇ́C

(gdb)target remote /dev/ttyS0

COM2oȐꍇ

(gdb)target remote /dev/ttyS1

ƂD


ȏ
