                TOPPERS/JSPJ[l [UY}jA 
                  iH8S^[Qbgˑ (H8C(HEW)Ή)j
   
               iRelease 1.4.3ΉCŏIXV: 08-Mar-2007j
   
   ------------------------------------------------------------------------ 
    TOPPERS/JSP Kernel

        Toyohashi Open Platform for Embedded Real-Time Systems/
        Just Standard Profile Kernel
   
    Copyright (C) 2000-2004 by Embedded and Real-Time Systems Laboratory
                                Toyohashi Univ. of Technology, JAPAN
    Copyright (C) 2001-2007 by Industrial Technology Institute,
                                Miyagi Prefectural Government, JAPAN
    Copyright (C) 2001-2004 by Dep. of Computer Science and Engineering
                     Tomakomai National College 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: h8s-renesas.txt,v 1.1 2008/06/17 00:04:40 suikan Exp $

   ------------------------------------------------------------------------
1.  H8S^[Qbgˑ̊Tv

1. 1  ^[QbgVXeƊJ

@{gccΉH8Sˑ()lTX \[VY̊J
H8C(HEW)ɑΉ̂łB

  H8SvZbT̃^[QbgVXéAH8S/2339F𓋍ڂȉ̃{[h
łB

      EЃ~X| MiNET-H8S/2339F (H8S/2339F)

{͈ȉ̃[hŎgp邱ƂOƂĂB
@CPU샂[hFAhoXh[h
@ݐ䃂[hQ
̃[hŎgpꍇ́AAZuCKvB

1. 2  T|[g@\̊Tv

  \]pVXeQƋ@\ (vxget_tim)A݃}XN̕ύXEQ
 (chg_ipmA get_ipm)T|[gĂ邪A 荞݂̋֎~Ƌ
(dis_intAena_int) ̓T|[gĂȂB

1. 3  ̃^[Qbgւ̃|[eBO

  H8S/2000V[Ył΁A|[eBO͗eՂɏoƎvB

1. 4  VA|[g (SCI)

  H8S/2000V[YɂSCI0`SCI1iSCI2j2{i3{j̃VA|[g
Auser_config.hɒ`ĂTNUM_PORTɂ艽{gp邩wł
B݂̎ł3{܂ŎgpłBiL̒ӂQƁj 
JSP J[l̃Oo͗pɂSCI1gpĂB 

ӁF
@MiNET-H8S/2339Fł́ASCI0H-UDIfobO|[gƋĂASCI0
RlN^ĂȂ̗RɂASCI0̓mF͂ĂȂB


VA|[g̐ݒȉɎB 

   E{[[g@@@38400[bps]
   Ef[^@@@@8rbg
   EXgbvrbg@1rbg
   EpeBȂ

2.  H8S vZbTˑ̋@\

  J[lƃVXeT[rX@\̒ŁAH8Sˑ̕ɂĉB

2. 1  f[^^

  int^unsigned int^̃TCY 16rbgłB܂An̐
A64rbg̓T|[gĂȂB

2. 2  ݊Ǘ@\Ɗ݃nh

{ł͊ݐ䃂[hQ݂̂T|[gĂB
i݃[hOɂĂH8ƌ݊Ȃ̂ŁAH8^[Qbgˑ (H8C(HEW)
Ή)QlɂȂƎvBj

user_config.huser_config.incŒ`MAX_IPM}NɂAJ[l
Ǘ銄݃xύXłB
IPMFInterrupt Priority Mask
in̎dlɂA`t@CQ̂ŒӁj

@@J[lǗ̊  ݃xMAX_IPM ȉ̊
@@J[lǗO̊  vCIeBx(MAX_IPM+1)
@@@@@@@@@@@@@@@ȏ݂̊NMI

[`łNMIȊOׂ݂̊͂ċ֎~Ă̂ɑ΂āA
CPUbNԂł̓J[lǗ݂݂̊̂֎~ĂB
iuJ[lǗO̊݁vɂĂ̓ITRON4.0dlQƁj
̓Iɂ́ACPUbNԂłEXRWX^IrbgMAX_IPM̒lZbg
AɃJ[l̃tOϐZbgĂB

DEF_INHŎw肷銄݃nhԍiinhnoj́CH8Sł̗OxN^ԍ
\C̃f[^^iINHNOjunsigned int^ɒ`ĂD
DEF_INHŁCOxN^ԍƂėLłȂlCO݂ɑΉȂ
ԍw肵ꍇ͕̓ۏ؂ȂD

2.2.1 ݃nh̓o^@

jsp-1.4.1 H8SˑigccŁjł́A݃xN^e[u蓮ŕҏW
ARtBM[VDEF_INH( )̈玩
悤dlύXĂB

݃nho^Ǝ菇
@^C}݂ɐB

@(1) ݃nh̋Lq

@@@ݗvNA鏈Kvȏꍇ͊݃nhC
@@@[`A܂͂Ă΂֐ɋLq@W
@@@B

@@@^C}݂ł̋LqF
@@@@jsp/systask/timer.c
@@@  @ timer_handler( )Ăяohw_timer_int_clear( )
@@@@@@ijsp/config/h8s-renesas/hw_timer.hj


@(2) RtBM[VEt@C̋Lq

@@@RtBM[VEt@C̋Lq@͑̃vZbTƓl
@@@łB
@@@xN^ԍjsp/config/h8-renesas/h8s2xxxf.hŃ}N`ĂB
@@@DEF_INH( )̑1̊݃nhԍ̓vvZXɐ萔
@@@ɂȂĂȂ΂ȂȂBitΉlp[^j
@@@xN^e[u肵ĂB

@@@^C}݂ł̋LqF
@@@@jsp/systask/timer.cfg
  @@@@DEF_INH(INHNO_TIMER, { TA_HLNG, timer_handler });


@(3) ݃vCIeBx̐ݒ

@@@cpu_initialize( )łׂĂ݂̊x0ɏ
@@@ĂB
@@@foCXhCȍŊݗṽvCIeBEx
@@@ݒ肷邽߂̊֐pӂĂB
@@@@
@@@yCAPIz
@@@@@void icu_set_ilv( UH ipr, BOOL mask, INT level ) 

@@@yp[^z
        UH	ipr		ݒ肷C^vgvCIeBWX^
				AhX̉16rbg
				 ( IPRA - IPRK }NŐݒ )
        BOOL	mask		ݒ肷C^vgvCIeBWX^
				ݒ͈́iʕ܂͉ʕj̑I
				( IPR_UPRA܂́AIPR_LOW }NŐݒ )
        INT	level		ݒ肷銄݃x ( 0 - 7 )

@@@y^[p[^z
@@@@@Ȃ

@@@y@\z
@@@@@C^vgvCIeBWX^̊eOvʂɁA݃x
@@@@@ݒsB
@@@@@̊֐ĂяoOcpu_config.hCN[hKvB

@@@y^C}݂ł̋Lqz

@@@@@jsp/config/h8s-renesas/hw_timer.h
@@@@@@hw_timer_initialize( )
@@@@@    icu_set_ilv( IPRF, IPR_UPR, TPU0_INT_LVL );

@@@ݒɗpl̓}N`ĂB
@@@
@@@EIPRA`IPRKWX^̃AhX
@@@   jsp/config/h8s-renesas/h8s2339f.h
           #define IPRA		0xfec4
           #define IPRB 	0xfec5
           #define IPRC		0xfec6
           #define IPRD		0xfec7
           #define IPRE		0xfec8
           #define IPRF		0xfec9
           #define IPRG		0xfeca
           #define IPRH		0xfecb
           #define IPRI		0xfecc
           #define IPRJ		0xfecd
           #define IPRK		0xfece


2.2.2 ݃}XN̕ύXEQ

H8Sˑ̋@\ƂāCEXRWX^IPM̒lύX邽߂̃T[rXR[
chg_ipmƁCQƂ邽߂̃T[rXR[get_ipmT|[gĂD
ȂCIPM̒l\f[^^IPḾCunsigned char^ɒ`ĂD

̃T[rXR[́C^XNReLXgCPUbNԂ̏ꍇ
ɂ̂݌ĂяoƂłDchg_ipmɂIPMx0ȊOiȂ킿C
炩݂̊֎~ĂԁjɂꍇłCfBXpb`͋֎~
ꂸCchg_ipmɂύXIPM̒ĺCfBXpb`̃^XNɈp
D
Ⴆ΁C^XNIPMx1ɕύXC炩݂̊ɂʂ
^XNɐ؂ւƁC؂ւ̃^XNłIPM̓x1ɂȂD

chg_ipmT|[g邽߂ɁC݃nh̏oȂǂɃI[o
wbh𐶂ĂDŁCSUPPORT_CHG_IPMƂ}NɂC
̃T[rXR[T|[g邩ǂ؂ւ悤ɂĂD
SUPPORT_CHG_IPḾCuser_config.huser_config.inc̒Ń}N
`ĂD

H8Sˑ̊݃}XN̕ύXEQƂ̂߂̃T[rXR[̎dl͎̒ʂD

(1) chg_ipm			݃}XN̕ύX

yCAPIz
	ER ercd = chg_ipm(IPM ipm);

yp[^z
	IPM	ipm		ݒ肷ׂ IPM ̒l

y^[p[^z
	ER	ercd		G[R[h

yG[R[hz
	E_CTX		ReLXgG[
	E_PAR		p[^G[iipm sj

y@\z

IPMiInterrupt Priority Maskj ipm Ŏw肳ꂽlɐݒ肷D
IPMɎw肵l0`MAX_IPM͈̔͊ȌꍇCE_PARG[ƂȂDIPM 0
ȊOɐݒ肵ꍇłCfBXpb`͋֎~ȂD܂Cݒ肵IPM
̒ĺCfBXpb`pDfBXpb`֎~ꍇɂ́C
dis_dspƕp΂悢D

ȂC̃T[rXR[pāCIPMMAX_IPMiJ[lǗ݂̊
ׂċ֎~jɐݒ肵ĂCPUbNԂƂ͋ʂBifBXpb`
֎~ȂBj

̃T[rXR[́C^XNReLXg CPUbNԂ̎̂݌
яoƂłD^XNReLXg CPUbNԂŌĂяo
ɂ́CE_CTXG[ƂȂD

(2) get_ipm			݃}XN̎Q

yCAPIz
	ER ercd = get_ipm(IPM *p_ipm);

yp[^z
	Ȃ

y^[p[^z
	ER	ercd		G[R[h
	IPM	ipm		݂ IPM ̒l

yG[R[hz
	E_CTX		ReLXgG[

y@\z

݂ IPMiInterrupt Priority Maskj̒lǂݏoCipm ɕԂD

̃T[rXR[́C^XNReLXg CPUbNԂ̎̂݌
яoƂłD^XNReLXg CPUbNԂŌĂяo
ɂ́CE_CTXG[ƂȂD


2. 3  CPUOǗ@\ CPUOnh

H8SvZbT̂CPUO@\ĂȂ߁AJ[lH8S
ˑCPUOT|[gĂȂB]āACPU Onh̐ݒ
 define_exc( )͉Ȃ֐łB
@Ƃ̌݊̂߁ACPUOnhԍ̃f[^^ (EXCNO)  
unsigned int^ɒ`ĂB


2. 4  X^[gAbvW[

  H8Sˑ̃X^[gAbvW[ (start.src) ͎Ɏs
AJ[l (kernel_start) NBA kernel_start ߂
Ă邱Ƃ͑z肵ĂȂB

   (1)   X^bN|C^̐ݒ

   (2)   n[hEFAˑ̏̌ďo
@@@@@@HARDWARE_INIT_HOOK}N`Ă΁An[hEFA
@@@@@̏ďoB̃[`̓J[lNOɁA
@@@@@^[Qbgˑ̃n[hEFAIȏs߂ɗpӂA
@@@@@̃xHARDWARE_INIT_HOOK}NƂĒ`B
@@@@@HARDWARE_INIT_HOOK}N̒`sys_config.incōŝ
@@@@@WƂB

@@@@@܂AHARDWARE_INIT_HOOKĂяo_RAMgpłȂꍇ
@@@@@ɑΉ邽߁A֐Ăяoł͂Ȃjmp߂gpĂB
@@@@@]āAHARDWARE_INIT_HOOK߂ĂƂrts߂ł͂ȂA
@@@@@jmp߂pB̍ۂ̖߂Ԓñx_clear_b_section
@@@@@łB

   (3)   BZNV̏
           BZNV̑S̈ 0 NAB

   (4)   DZNV̏
           DZNVO RAM ɓ]B

   (5)   \tgEFAˑ̏̌ďo
@@@@@@SOFTWARE_INIT_HOOK}N`Ă΁A\tgEFA
@@@@@ˑ̏ďoB̊֐̓J[lNOɁA
@@@@@\tgEFA(Cu)ˑ̏s߂ɗpӂ
@@@@@BႦ΁ACȕݒȂǂłB
@@@@@̊֐SOFTWARE_INIT_HOOK}NƂĒ`B
@@@@@SOFTWARE_INIT_HOOK}N̒`sys_config.incōŝ
@@@@@WƂB

2. 5  ݔ̃X^bNgpʂɂ

  H8Sł͊ݎtɃn[hEFAɂĊ݃}XN̐ݒ肪s
邪݋֎~ɂȂĂȂB̂߁A݂̓iJ[lj
݋֎~sȂOɑd݂\B
  
  @݂̓Ŋ݋֎~OɃ^XNX^bNɐς܂e
  @@E߂Ԓn
  @@ECCRWX^
  @@EEXRWX^i{U[ü1oCgj
  @@Eer0`er3
  @@@@v@22oCg
  @@@@
܂Ȁ݂oŃ^XNXCb`ꍇer4er612oCg
^XNX^bNɐς܂B
ǐÃ^XNɖ߂ĂۂɁA^XNO[`N
ꍇ͂Ƀ^XNX^bN̗̈悪KvɂȂBj

MAX_IPM7ɐݒ肵ꍇAōV݂̊lXgBׂ̂Ă
L̊݋֎~OɎ󂯕tꂽꍇAQڈȍ~݂̊X^bN؂
ւÕ^XNX^bNɃWX^ޔB̂Ƃ̃^XNX^bN
̏ʂ
@
@22oCg~7x@{@12oCg@@116oCg

ƂȂB
  @@

3.  VXeˑ̋@\

3. 1  VXeNbNhCo

  VXeNbNhCo isig_tim ďóA user_config.h
TIC_NUME  TIC_DENO Œ`ĂAfBtHg 1[ms] ł
B
̒`ύX邱ƂŁAisig_tim ďoύXłB A
^C}x̒PʂŒ[ɂȂlݒ肷ƁA isig_tim ̌ďoɌ
B

yMiNET-H8S/2339Fz
^C}ɋĂNbNg6144[kHz]ł
iNbN24.576[MHz]4jA^C}x
@(1,000,000/6144)[nsec]0.163[sec]
łB
fBtHg̃NbNfoCXƂāAH8S/2339FłTPU(16bit^C})
gpĂB


3. 2  \]pVXeQƋ@\

  H8Sł́A\]pVXeQƋ@\ (vxget_tim) T|[gĂ
B

yCAPIz
@@ER vxget_tim(SYSUTIM *p_sysutim);

yp[^z
	Ȃ

y^[p[^z
	SYSUTIM sysutimFZbǧoߎԁisecPʁj

yG[R[hz
	E_CTXF^XNReLXgĂяo

y@\z
ZbǧoߎԂsecPʂŌvAs\̌v@\񋟂
BSYSUTIM^ UW^(32 rbgȂ^)ł邽߁AsecPʂŊ
ZƃZbg71ԖɃI[o[t[āA[ɖ߂B2_
̎sԂvƂɂ̃I[o[t[ĂȂӂK
vłB

yMiNET-H8S/2339Fz
^C}̂̐x͖0.163[sec]łA1secPʂ܂ŗLłB

3. 3  VAC^tF[XhCo

  H8S/2339Fɂ SCI0`SCI2  3 {̃VA|[gA
user_config.h ɒ`Ă TNUM_PORT ɂ艽{gp邩włB
݂̎ł 3{܂ŎgpłB JSP J[l̃Oo͗pɂ SCI1
gpĂB
VÃ|[gԍƃfoCXԍ̑Ή͈ȉ̒ʂłB
@E|[g1FSCI0
@E|[g2FSCI1
@E|[g3FSCI2


ӁF
@MiNET-H8S/2339Fł́ASCI0H-UDIfobO|[gƋĂASCI0
RlN^ĂȂ̗RɂASCI0̓mF͂ĂȂB

3. 4  }bv

3. 4. 1  MiNET-H8S/2339F̃}bv

  (1) fobO[hiJTAGfobOgpj
  @[h4
  @ROM[h
  @ORAMCS0Ԃɔzu
  @OoXF16rbg

         0x00,0000 - 0x00,ffff  ORAM 1MB
         @@@@@@@@@@@@@xN^e[uAP,C,DZNV
         @@@@@@@@@@@@@R(D),BZNV
         0xff,7c00 - 0xff,fbff  RAM 32KB
         @@@@@@@@@@@@@^XNReLXgpX^bNGA

@@fobO[hł́AvORAMɃ_E[hĎs邱
@@Ƃz肵ĂB̂߁A_E[hOɃfobOc[p
@@oXXe[gRg[̏sKvB
@@oXXe[gRg[̐ݒɂĂ̓{[ht̃}jA
@@p10 u4.4 WX^ݒvsys_support.srcQ


  (2) [X[hiROMj
  @[h6
  @ROML[h
  @ORAMCS1Ԃɔzu
  @OoXF16rbg

         0x00,0000 - 0x03,ffff  ROM 384kB
                                ݒɂĂ0x06,ffff܂ŎgpłB
         @@@@@@@@@@@@@xN^e[uAP,C,DZNV
         0x20,0000 - 0x2f,ffff  ORAM 1MB
         @@@@@@@@@@@@@R(D),BZNV
         0xff,7c00 - 0xff,fbff  RAM 32KB
         @@@@@@@@@@@@@^XNReLXgpX^bNGA


4.  TvvO̎s菇

4. 1  J

  J́AWindows 2000ŁA()lTX \[VY̊J
pB
@{Jɗpc[̃o[WȉɎB 

   ERpCAAZuAœKP[WGfB^
   @@^ԁFR0C40008XSW06R
   @@o[WFV.6.1.2
   EJ HEW4.02.00.022

܂AɂL̃c[KvɂȂB
   EVisual C++6.0܂Visual C++ .NET
   @@RtBM[^rh邽߂ɕKvƂȂB

   EWindows̃R}hEvvgœ삷Perl
   @@L4.3 (1)̍ƂŎgpB
   @@Active Perl v5.8.8
       @zz@http://www.ActiveState.com

4. 2  RtBM[^̃rh

jsp/cfgfBNgȉ̂ɂRtBM[^rhB
rh@
@jsp/cfg/vc_project/make.vbssB
@rVisual C++pCygwinpÎŁAVisual C++p
@IB

ڂjsp/doc/windows.txtQƁB

4. 3  TvvÕrh
(1) ݒ
@Perl̃C^v^ւ̃pXݒsB

(2) HEWł̃rh

[NXy[XEt@CJ
@jsp/tools/H8S-RENESAS/H8S-RENESAS.hws
@[NXy[X쐬ƃfBNgقȂ|̌xo邪B
@
@ c[`F[̃o[WقȂ|̌xoꍇ
@@@L̃o[WÂc[`F[ł͖̓mFłB

̃[NXy[Xɂ4̃vWFNgo^ĂB
@EoffsetFTCB\̓̃ItZbg߂B
@@@@@@J[l\[XR[hAPIɃRs[B
@ElibkernelFJ[lECũrhsB
@EconfigurationFJ[lERtBM[VAxN^e[u
@@@@@@@@@@sB
@EsampleFTvEAvP[ṼrhsB

vWFNg̈ˑ֌Ŵ߁Aȉ̏ԂŃrhB
@PDlibkernelvWFNgANeBuvWFNgɐݒ肷
@QDlibkernelvWFNgrh
@RDsamplevWFNgANeBuvWFNgɐݒ肷
@SDsamplevWFNgrh

菇12͍ŏ1݂̂ł悭AAvP[V̂݃\[
XR[hύXꍇ̓rhKv͂ȂB
configurationvWFNgoffsetvWFNg͈ˑvWF
NgƂĎIɃrhB

samplevWFNg̃rhƁA
@Est@C@sample1.abs
@ESR[ht@C@sample1.mot
悤ݒ肵ĂB

ӁF
@libkernel̃rhoffsetvWFNgrhKv邪A
vWFNgԂ̈ˑ֌Wݒ肵ĂsamplevWFNgN_Ƃꍇ
iˑ֌WlXgĂꍇj͐ŎsȂ̂ŁA蓮
libkernelvWFNg\߃rhĂB


(3) ^[QbgE{[h̃_E[h

{[hfobOc[̃}jAQƁB


5.  t@C\

5. 1  fBNgEt@C\

   (1)   config/h8s-renesas/

            cpu_config.c     H8SvZbTˑC֐
            cpu_config.h     H8SvZbTˑ̍\`
            cpu_config.inc@ L̃AZup`
            cpu_context.h    H8SvZbTˑ̃ReLXg
            cpu_defs.h       H8SvZbTˑ̃AvP[Vp`
            cpu_insn.h       H8SvZbT̓ꖽ߂̊֐`
            cpu_support.src  H8SvZbT̃AZu֐
            cpu_rename.def   J[l̓ʖ̃l[Ƃ̉
            @@@@@@@@ `Xg
            cpu_unrename.h   J[l̓ʖ̃l[̒`
            cpu_rename.h     J[l̓ʖ̃l[̒`
            cpu_unrename.h   J[l̓ʖ̃l[̒`
            cpu_rename.inc @L̃AZup`
            h8s.h            H8SvZbT̋ʒ`
            h8s2339f.h       H8S/2339FvZbT̒`
            h8s2339f.inc     L̃AZup`
            h8s_sil.h    @@H8SWX^ANZX[`
            h8s_sil.h    @@DDRWX^ANZX[`
            start.src        X^[gAbvW[
            tool_config.h    H8SvZbT̊JˑW[`
            tool_defs.h      H8SvZbT̊Jˑ`

            makeoffset.c     offset.incT|[gp\[Xt@C
            vector_header.src ݃xN^e[ũwb_[
            
            util.h       @@rbgԍȂǂ̒`
            util.inc @@    L̃AZup`

            hw_serial.cfg    SCĨRtBM[Vt@C
            hw_serial.h      SCI̍\`
            hw_serial.c      SCI̊֐`
            h8s_sci.h@@@@VAhCoiPDICj
            h8s_sci.c@@@@VAhCo̊֐`
            
            hw_timer.h       TPU̍\`
            h8s_tpu.h@@@@^C}hCoiPDICj

   (2)   config/h8s-renesas/minet_h8s_2339f/
           ()~X| MiNET-H8S/2339F{[ḧˑ

            minet_h8s_2339f.h@MiNET-H8S/2339F{[hˑ̒`
            sys_config.c     MiNET-H8S/2339F{[hˑC֐
            sys_config.h     MiNET-H8S/2339F{[hˑ̍\`
            sys_config.inc@ L̃AZup`
            sys_defs.h       MiNET-H8S/2339F{[hˑ̃AvP[
            @@@@@@@@ Vp`
            sys_support.src  MiNET-H8S/2339F{[hˑ̃AZu֐
            sys_rename.def   J[l̓ʖ̃l[Ƃ̉
            @@@@@@@@ `Xg
            sys_rename.h     J[l̓ʖ̃l[̒`
            sys_unrename.h   J[l̓ʖ̃l[̒`
            sys_tool_defs.h@fobOˑ̒`
            
            ȉ́A[U[ҏWKvt@C
            user_config.h@@[U[ERtBM[V̒`
            user_config.inc@L̃AZup`

   (3)   utils/
   @@@@rhɕKvȃ[eBeBQ

          @h8/ @@@@ gccłƋʂ̃XNvg
            @grep_def_inh.pl@ PerlXNvgptB^
           
          @h8-renesas/@H8Cˑ̃XNvgiH8vZbTƋʁj
            @copy_kernel_source.bat
            @@@@@@@@@ J[l̃\[XR[hAPIɃRs[
            @@@@@@@@@ ob`t@C

            @genoffset@@@@TCB\̓̃ItZbgZo
            @@@@@@@@@ perlXNvg

            @genvector.pl@@ xN^e[upXNvg

          @h8s-renesas/@H8Cˑ̃XNvg
            @gen_intentry.pl@ݓpXNvg

   (4)   tools/H8S-RENESAS/
           HEW4.0p̃[NXy[XEfBNg
           @()~X| MiNET-H8S/2339F

            readme.txt
            @rh菇readmet@C
            H8S-RENESAS.hws
            @[NXy[XEt@C
            sample1.cfg
            @TvEAvP[ṼRtBM[V
            @t@C
            sample1.c
            @TvEAvP[VC\[XEt@C
            sample1.h
            @TvEAvP[ṼCN[hEt@C

   (5)   tools/H8S-RENESAS/offset/
   @@@@ȉ̏svWFNgEfBNg
   @@@@@ETCB\̓̃ItZbgZo
   @@@@@EJ[lE\[XR[hAPIɃRs[
   @@@@
           call_copy_kernel_source.bat
           @@copy_kernel_source.batĂяo߂̃ob`t@C

           call_genoffset.bat
           @@genoffsetXNvgĂяo߂̃ob`t@C

  @@@@ Debug/     fobOprhfBNg
   @@@@@@offset.inc@@TCB\̓̃ItZbg`t@C

  @@@@ Release/   fobOprhfBNg
   @@@@@@offset.inc@@TCB\̓̃ItZbg`t@C

   (6)   tools/H8S-RENESAS/libkernel/
   @@@@J[lECũrhsvWFNgEfBNg

   @@@@kernel_source/@@ ԃt@Ci[fBNg

   (7)   tools/H8S-RENESAS/configuration
   @@@@J[lERtBM[VsvWFNg
   @@@@fBNg
   @@@@
           call_configuration.bat
           @RtBM[^Ăяo߂̃ob`t@C

  @@@@ Debug/     fobOprhfBNg
   @@@@@@kernel_id.h@@@   IDt̒`t@C
   @@@@@@debug_kernel_cfg.c  RtBM[^̏o͌
   @@@@@@debug_vector.src    ꂽ݃xN^e[u

  @@@@ Release/   fobOprhfBNg
   @@@@@@kernel_id.h@@@   IDt̒`t@C
   @@@@@@relase_kernel_cfg.c RtBM[^̏o͌
   @@@@@@release_vector.src  ꂽ݃xN^e[u

   (8)   tools/H8S-RENESAS/sample
   @@@@TvEAvP[ṼrhsvWFNgEfBNg
   @@@@

6. AvP[VJҌ̏

AvP[VJ҂ɗLvƎvɂďqׂB

6.1 J[l̐ݒύX@

H8Sˑł́AlXȐݒύXeՂɂł悤Aݒӏȉ̂Q
̃t@Cɂ܂Ƃ߂ĂB
@Euser_config.h@@Cݒt@C
@Euser_config.inc@AZupݒt@C

[U[͂̂Q̃t@C̃}N`ύX邾ŁAJ[l
\[Xt@Cǂ܂ȂĂx܂ŃJ[l̐ݒύXłB
ݒ荀ڂɂĂCpƃAZup̗̒`KvɂȂ
ŒӁB

ȉAݒt@C̊e}N̈ӖqׂB

ESʓIȐݒ荀

(1) SUPPORT_CHG_IPM
chg_ipmT|[g邩ǂ̒`
ݒt@CFuser_config.hAuser_config.inc

(2) SUPPORT_VXGET_TIM
vxget_timT|[g邩ǂ̒`
̐ݒύXꍇ́At@CēxsKvB
ݒt@CFuser_config.h

(3) STACKTOP
^XNReLXgpX^bN|C^̏l
ݒt@CFuser_config.inc

(4) MAX_IPM
J[lǗ銄݂̍ōD惌x
@@J[lǗ̊  ݃xMAX_IPM ȉ̊
@@J[lǗO̊  vCIeBx(MAX_IPM+1)
@@@@@@@@@@@@@@@ȏ݂̊NMI

ݒt@CFuser_config.h, user_config.inc


EVA|[g֘A̐ݒ荀

(1) TNUM_PORTATNUM_SIOP
T|[gVAfoCX̐iő 3j
  TNUM_PORT : VAhCoiserial.cjA܂ GDICxŃT|[g
  @@@@@@VA|[g̐ 
  TNUM_SIOP : PDICxivZbTSIOjŃT|[gVAI/O
 @@@@@@ |[g̐i݂̎ł͍ő3j

ݒt@CFuser_config.h

ȉA|[g2̐ݒTNUM_PORT2ɐݒ肵ꍇ̂ݗLłB
ilɃ|[g3̐ݒTNUM_PORT3ɐݒ肵ꍇ̂ݗLłBj
(2) BAUD_RATE0ABAUD_RATE1ABAUD_RATE2
SCI0, SCI1, SCI2̃{[[g [bps]
ݒt@CFuser_config.h

(3) SCI0_INT_LVLASCI1_INT_LVLASCI2_INT_LVL
SCI0, SCI1, SCI2̊݃vCIeBEx
ݒt@CFuser_config.h

(4) LOGTASK_PORTID
VXeOo͂VA|[gԍ
ݒt@CFuser_config.h

(5) POL_PORTID
჌xói|[OójɗpVA|[gԍ
ݒt@CFuser_config.h

(6) OMIT_SCI0
̃}N`ƃVAhCoSCI0ȗB
MiNET-H8S/2339Fˑł̓ftHgł̃}N`ĂB
ݒt@CFsys_tool_defs.h


E^C}֘A̐ݒ荀

(1) TIC_NUMEATIC_DENO
^CeBbN̎̕qA
ݒt@CFuser_config.h

(2) TPU0_INT_LVL
^C}TPU0̃vCIeBEx
ݒt@CFuser_config.h

EsɊւ`

@ȉ̃}N͊J̃AZuEIvVƂĒ`̂
@WƂB
@ifobOrhƃ[XrhŐ؂ւBj

(1) RAM
fobOŃvORAMɃ_E[h邩ۂ̒`
̃}N`Ăꍇ̓X^[gAbv[`ŃoXXe[gR
g[̏XLbvB

(2) USE_DEBUGGER
̃}N`Ăꍇ̓fobKŎs邱ƂӖAexr
TrbglB


6.2 AvP[Vɒ񋟂@\

H8Sˑł̓AvP[VJ₷邽߁Aȉ̋@\񋟂
ĂB

6.2.1@ԑ҂

@ˑsil.hŃvg^Cv錾Ăsil_dly_nse֐͈
UINT^łAint^2oCgł邱̏nł͖65sec܂ł\
łȂB蒷ԑ҂s߁AUW^ɕύXʊ֐
sil_dly_nse_longpӂĂBǂnsecPʂő҂Ԃw肷B
t_services.hs_services.hCN[h邱Ƃɂicpu_defs.h
ājpłB

yCAPIz
@@void sil_dly_nse_long(UW dlytim);

yp[^z
	UW dlytim@@@ ҂[nsec]

y^[p[^z
	Ȃ

yG[R[hz
	Ȃ

y@\z

\tgEFAE[vɂ莞ԑ҂sB
l̋@\񋟂sil_dly_nse֐͍ő65sec܂ő҂Ԃw
̂ɑ΂āAsil_dly_nse_long֐͖4.3sec܂ŎwłB

6.2.2@I/O|[gDDRWX^ւ̃ANZX⏕@\

H8SI/O|[g̃f[^EfBNVEWX^DDR͏ݐpłA
̂܂܂ł͏]̃rbgύX邱ƂłȂB
ibset,bclr߂łsj
܂AJ[l̃X^[gAbv[`łDDRWX^ɑ΂
ĐݒsĂ邽߁Â܂܂ł̓J[lƃAvP[V̊ԂŐ
ۂƂłȂB
̂߁A{ł́AɃe|pӂāADDŘݒl
@̂ĂB|[gԍIO_PORT_ID^typedefĂA
IO_PORT1`IO_PORTĜ̂ꂩw肷Bi|[g4͓͐p̂߁A
DDRWX^Ȃ̂ŌԂƂĂBj|[gԍƂāAȊO
lw肵ꍇassertŃG[ƂȂB

(1) sil_reb_ddr@@DDRWX^̓ǂݏo

yCAPIz
@@UB sil_reb_ddr(IO_PORT_ID port);

yp[^z
	IO_PORT_ID port@@@@|[gԍ

y^[p[^z
	DDRWX^̒l

yG[R[hz
	Ȃ

y@\z

portŎw肳|[gԍDDRWX^̒lǂݏoB

(2) sil_wrb_ddr@@DDRWX^ւ̏

yCAPIz
@@void sil_wrb_ddr(IO_PORT_ID port, UB data);

yp[^z
	IO_PORT_ID port@@@|[gԍ
	UB data@@@@      ޒl

y^[p[^z
	Ȃ

yG[R[hz
	Ȃ

y@\z

portŎw肳|[gԍDDRWX^ɒldataށB

(3) sil_anb_ddr@@DDRWX^ANDZ

yCAPIz
@@void sil_anb_ddr(IO_PORT_ID port, UB data);

yp[^z
	IO_PORT_ID port@@@|[gԍ
	UB data@@@@      ANDZsl

y^[p[^z
	Ȃ

yG[R[hz
	Ȃ

y@\z

portŎw肳|[gԍDDRWX^ɑ΂āAldataƂANDZ
sB

(4) sil_orb_ddr@@DDRWX^ORZ

yCAPIz
@@void sil_orb_ddr(IO_PORT_ID port, UB data);

yp[^z
	IO_PORT_ID port@@@|[gԍ
	UB data@@@@      ANDZsl

y^[p[^z
	Ȃ

yG[R[hz
	Ȃ

y@\z

portŎw肳|[gԍDDRWX^ɑ΂āAldataƂORZ
sB


7. J[lڐAҌ̏

@H8Sˑ𑼂̃^[QbgE{[hւڐAۂɕKvȏȉ
qׂB

7.1 }N`

(1) HARDWARE_INIT_HOOK
X^[gAbv[`n[hEFAˑ̏ĂяoƂ́A
̐擪AhX}N`B
iGNU ldPROVIDE߂Ɠ̋@\Ȃ߁j
`t@CFsys_config.inc

(2) SOFTWARE_INIT_HOOK
X^[gAbv[`\tgEFAiɃCujˑ̏
ĂяoƂ́A̐擪AhX}N`B
`t@CFsys_config.inc

(3) SOFTWARE_TERM_HOOK
atexit( )ĂяoO`Ăꍇ́Å֐}N
`Batexit( )ł
@EO`΁AĂяo
  EO`Ȃ΁AȂi̒`j
`t@CFsys_config.h

(4) H8S_BASE_ADDR
WX^̃AhX̏2oCg
ACPU샂[hm[}[hɂł悤gĂB
`t@CFsys_config.inc

(5) SIL_DLY_TIM1, SIL_DLY_TIM2
sil_dly_nse_longsŗp萔
`t@CFsys_config.inc

(6) SYS_SYSCR
SYSCȐl
`t@CFminet_h8s_2339f.h

(7) CPU_CLOCK
vZbTɋNbNg [Hz]
ݒt@CFminet_h8s_2339f.h

(8) TIMER_CLOCK
^C}ɋNbNg[kHz]
ݒt@CFminet_h8s_2339f.h

ȉ̃VA֘Ã}N`́ANbNgƃ{[[g猈܂
lłAAvP[VvO}B邽߁Aminet_h8s_2339f.h
Œ`ĂB
iuser_config.hɓƁA[U[ɂƂĔώGɂȂBj

(9) BRR0_RATE, BRR1_RATE
VA|[gBRRWX^l

(10) SCR0_CKS, SCR1_CKS
SCRWX^CKS0,CKS1rbg

(12) DDRANZX[`̂߂̒萔`

(a) DDRWX^̃AhX
DDRWX^̃AhXȉ̃}NP1DDR`PGDDRŒ`B
`t@CFsys_config.hCN[ht@C
@@@@@@@h8s2xxxf.hŒ`̂WƂB

(b) DDRWX^̏l
X^[gAbv[`sDDRWX^̒l}N
P1DDR0`PGDDR0Œ`B
`t@CFminet_h8s_2339f.h

7.2 rhp̃XNvgɂ

(a) jsp/tools/H8S-RENESAS/configuration/call_configurator.bat

HEWł́Ai[NXy[XEfBNg̊OɂjOc[𑊑΃p
XwŌĂяoȂ߁Â悤ȃob`t@CāA
@ERtBM[^
@EPerlXNvg
ĂяoĂB
ȉxxx̕ڐA̍ۂɕύXKvB

@EVXeˑ̃fBNg
@@@cfg.exe -s %1 -c -obj -cpu h8s -system xxx
@@@xxxɂ̓VXeˑ̃fBNgB

@ExN^e[ũTCY
@@@genvector.pl -s xxx
@@@xxxɂ̓xN^e[ũTCYB

܂AɂĂPerl̃C^v^ւ̃pXݒKvɂȂ\
B

(b) jsp/utils/h8s-renesas/genvector.pl

xN^e[û߂PerlXNvggenvector.pl̎dl
  -s n		xN^[e[ũTCY
  		n͐萔肵ĂAȊÖ^ꂽ
  		ꍇ͖̓`łB

(c) vector.srcŗpĂ}N̎dl

Cꃋ[`̊֐𐶐邽߂̃}NINTHDR_ENTRY
pӂĂBXNvggenvector.pĺAintmask̒lintmask.inc
****_intmask̖Ń}N`ĂƉ肵ĂB
@@
@@@yAZułAPIz
@@@@@INTHDR_ENTRY c_routine

@@@yp[^z
@@@@@c_routineFCꃋ[`̊֐

@@@yWJʁz
@@@@@݂̓

@@@y@\z
@@@@@Cꃋ[`̊֐𐶐B

El
@xN^e[uƓvector.srcɂ܂Ƃ߂ʁAx
_kernel_****_entry̓O[oɌJKvȂȂ߁A[J
xƂĂBɔȂcpu_config.hINT_ENTRY}Nł͋
Ƃ̃C^[tF[X킹邽߁A_~[̃xgpĂB


8. 

EzXg}VOS
@Windows9xn̓T|[gȂB

ERtBM[^̃`FbJ(chkj͎ĂȂB

EHEW񋟂WX^`t@Cɂ͑ΉĂȂB
@igccłƃfoCXhCoL邽߁j

E64rbg̓T|[gȂB
@in̐j

EΎԂɂ
@RELTIM^2oCĝ߁Ai1msecPʂŊZƁjΎԂ65b
BRELTIM^4oCgɂꍇjsp/include/itron.hɂ
RELTIM^̒`ύXB

ύXOFtypedef	UINT RELTIM;            /* Ύ */
ύXFtypedef	UW RELTIM;              /* Ύ */

Eatexit ̏ƃfXgN^̎s
@(tool_config.hcall_atexit())
@@ł̓J[lCũrhsȂĂA
software_term_hook()̒`΁AIɌĂяo悤ɂȂĂ
ȂĂ邪Ah8s-renesasłsoftware_term_hook()ɑ֐
}NSOFTWARE_TERM_HOOKƂĒ`AJ[lCurh
KvB
@ڂ́u7.1 }N`v́u(3) SOFTWARE_TERM_HOOKvQƁB


9. ӎ

EVXeO@\ɂ
int^2oCĝ߁AVXeO@\(syslog, syslog_n)%d, %u, %x,
 %Xɂ鐮\ł2oCgf[^\łȂB2oCg傫
f[^\ꍇ́A%ld, %lxgpB



ύX

'05/12/09 T|[gJn

'05/12/28 Release1.4.2

'07/03/xx  Release1.4.3
@C
@ExN^e[u
@@EperlXNvggccłƊSɋʉ
@@@@E0xN^ɑΉ
@@@@ExN^TCŸ`FbNǉ
@@En̉sR[ḧႢɑΉ
@@EDEF_INH̓rŉsƃp[XɎsC
@@Efilter1.plfilter2.plPɂ܂Ƃ߁Agrep_def_inh.plɉ
@@@igccłHEWłŌʂfilter2.plpӂKvȂȂj
@@EڐAlāAgenvector.pl̏Qɕ
@@@@@Egenvector.plFxN^e[u̐iH8łƋʉj
@@@@@Egen_intentry.plF݂̓iINTENTRYj̐
@@@ EɔȂAgrep_def_inh.plƂ̃C^[tF[XύX
@Erh菇
@@@EJ[lECu֐PʂɃNł悤rh菇ύX
@@@@ɂAob`t@CRpČĂяosvɂȂB
@@@EAPĨt@CRs[Ƀob`t@Cgp
@@@@pȃbZ[Wʂɕ\邽߁Aperlŏ
@@@@悤ύX
@@@EReleaserhōœKIvVݒ肳ĂȂ~XC
@@@@iHEWŃvWFNg̒ǉA폜sƃrhIvV
@@@@@jZɂȂAĐݒ肵YĂBj
@EꃌWX^̑ñCuɕύX
@EVAhCo
@@@ESCI2T|[giőTNUM_PORT=3j
@@@EPOL_PORTIDV
@ESIL̃ԃANZX֐@ˑŒ`
@@@RpČx邽
@EDDRWX^EANZXE[`
@@@EI/O|[g̖{TNUM_IO_PORT̒`ꏊh8s23xxf.hɈړ
@@@ETNUM_IO_PORT̒lC
@ETvvO
@@@E'Z'R}h
@@@@@kernel_exit()ĂŁAvOI

