                TOPPERS/JSPJ[l [UY}jA 
                  iH8^[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
    Copyright (C) 2001-2004 by Kunihiko Ohnaka
    Copyright (C) 2004 by Katsuhiro Amano
   
    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: h8-renesas.txt,v 1.1 2008/06/17 00:04:40 suikan Exp $

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

1. 1  ^[QbgVXeƊJ

ERelease1.4.1܂ł̃o[Wg̕
@Release1.4.2犄݂̈啝ɕύXĂ邽߁Ao[W
gṕ̕u2.2.1 ݃nh̓o^@vQƂꂽB

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

  H8 vZbT̃^[QbgVXéAH8/3048F-ONE𓋍ڂȉ
{[hłB

   E()kldq H8/3048F-ONEX^[^Lbgi^HSB8F3048BF25j

ȂAȂ^XN 1 ̍ŏ\łAKv RAM eʂ H8 ̓
RAM̗eʂ𒴂B ̂߁AOAhXԂLɂKvB
CPU[h̓AhoXh[hŎgp邱ƂOƂĂBm[}
[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

  H8/300H V[Ył΁A|[eBO͗eՂɏoƎvB

1. 4  VA|[g (SCI)

  H8/3048FɂSCI0SCI12{̃VA|[gAuser_config.h
`ĂTNUM_PORTɂ艽{gp邩włB
݂̎ł2{܂ŎgpłB JSP J[l̃Oo͗pɂSCI0
gpĂB VA|[g̐ݒȉɎB 

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

2.  H8 vZbTˑ̋@\

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

2. 1  f[^^

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

2. 2  ݊Ǘ@\Ɗ݃nh

J[lǗO݂̊NMÎ݂łDāCCPUbNԂ⏉
[`ł́CNMIȊOׂ݂̊͂ċ֎~ĂD̓Iɂ́ACPU
bNԂłCCRWX^IrbgUIrbgZbgAɃJ[l
̃tOϐZbgĂB
@{łSYSCRWX^UErbgNAACCRWX^Irbg
UIrbg݃}XNiIPMFInterrupt Priority MaskjƂĎgpĂ
Bix0ƃx1݂̊gpłBj

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

2.2.1 ݃nh̓o^@

jsp-1.4.1 H8ˑigccŁj犄݃nh̓o^@ύXĂB
ύX_͈ȉ̒ʂB
@1DݗDxT|[g
@@@E݃vCIeBEx0
@@@E݃vCIeBEx1
@2D݃x̐ݒ2ōsB
@@@(1) ݗvpvCIeBEx
@@@@@@foCX݃Rg[ɗv銄݃x
@@@@@@efoCXhCȍɂIPRAAIPRBWX^
@@@@@@ݒ菈sB
@@@(2) ݋pvCIeBEx
@@@@@@݃nhĂяoɊ݃}XNɐݒ肷l
@@@@@@̊ݗvubN邽߂̒l

@3DfoCXhCȍŁA݃x̐ݒsB
@@@define_int_plevel( )pB
@4Dcpu_support.SōsĂȉ̋Lq͕svɂȂB
@@i݃xs߁j
@@@En[hEFA݋@_xxxxx_enable_int
@@@En[hEFA݋֎~@_xxxxx_disable_int
@@@@@gccłł́AݗvNA鏈_xxxxx_disable_int
@@@@@LqĂArenesasłł͊݃nhCꃋ[`
@@@@@܂͂Ă΂֐ɋLq@WƂB
@5D[U[ҏWׂ͕ʃt@CɕĂB
@@@VXeˑintmask.inc
@6D݃xN^e[u̎
@@@RtBM[VDEF_INH( )̈玩B

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

@(1) ݃nh̋Lq

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

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


@(2) RtBM[VEt@C̋Lq

@@@RtBM[VEt@C̋Lq@͑̃vZbTƓl
@@@łB
@@@xN^ԍjsp/config/h8-renesas/h8_3048f.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̐ݒ

@@@IPRA,IPRBɐݒ肷銄ݗṽvCIeBxƁA
@@@nhĂяoɊ݃}XNɐݒ肷vCIeBx
@@@̂Qݗvɐݒ肷B

@(3)-1 ݗvpvCIeBx̐ݒ

@@@cpu_initialize( )łׂĂ݂̊x0ɏ
@@@ĂB
@@@foCXhCȍŊݗṽvCIeBEx
@@@ݒ肷邽߂̊֐pӂĂB
@@@@
@@@yCAPIz
@@@@@void define_int_plevel(const IRC *irc);

@@@@@@IRCFInterrupt Request Controller
@@@@@@@@@݃Rg[

@@@yp[^z
@@@@@const IRC *irc@ݒf[^i[̈̐擪AhX
   @@@@@UB *iprFݒ肷IPRWX^̔Ԓn
   @@@@@@@@@@IPRA܂IPRBWX^
   @@@@@UB bit FIPRWX^̊Yrbgԍ
@@@   @@IPM ipmFݒ肷銄݃x
   @@@@@@@@@@IPM_LEVEL0,IPM_LEVEL1̂ꂩ

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

@@@y@\z
@@@@@ircẅ̃f[^pāAfoCX݂̊
@@@@@vCIeBExݒ肷B
@@@@@̊֐ĂяoOh8_sil.hCN[hKvB

@@@y^C}݂ł̋Lqz

@@@@@jsp/config/h8-renesas/cpu_config.c
@@@@@@const IRC TIMER_IRC = {(UB*)SYSTEM_TIMER_IPR,
                        @@@@@@SYSTEM_TIMER_IP_BIT,
                        @@@@@@SYSTEM_TIMER_IPM
                      @@@@@@};

@@@@@jsp/config/h8-renesas/hw_timer.h
@@@@@@hw_timer_initialize( )
@@@@@    define_int_plevel(&TIMER_IRC);

@@@ݒɗpl̓}N`ĂB
@@@
@@@EIPRAAIPRBWX^̃AhX
@@@jsp/config/h8-renesas/h8_3048f.h
      #define H8IPRA                  0xfffff8ul
      #define H8IPRB                  0xfffff9ul


@@@EIPRAAIPRBWX^̃rbgԍ
@@@jsp/config/h8-renesas/h8_3048f.h
@@@EIPRA
@@@#define H8IPR_IRQ0_BIT          7u       /* IRQ0         */
@@@#define H8IPR_IRQ1_BIT          6u       /* IRQ1         */
@@@#define H8IPR_IRQ2_BIT          5u       /* IRQ2         */
@@@#define H8IPR_IRQ3_BIT          5u       /* IRQ3         */
@@@#define H8IPR_IRQ4_BIT          4u       /* IRQ4         */
@@@#define H8IPR_IRQ5_BIT          4u       /* IRQ5         */
@@@#define H8IPR_WDT_BIT           3u       /* WDT          */
@@@#define H8IPR_CMI_BIT           3u       /* CMI          */
@@@#define H8IPR_ITU0_BIT          2u       /* ITU0         */
@@@#define H8IPR_ITU1_BIT          1u       /* ITU1         */
@@@#define H8IPR_ITU2_BIT          0u       /* ITU2         */
@@@

@@@EIPRB
@@@#define H8IPR_ITU3_BIT          7u       /* ITU3         */
@@@#define H8IPR_ITU4_BIT          6u       /* ITU4         */
@@@#define H8IPR_DMAC_BIT          5u       /* DMAC (CH0,1) */
@@@#define H8IPR_SCI0_BIT          3u       /* SCI0         */
@@@#define H8IPR_SCI1_BIT          2u       /* SCI1         */
@@@#define H8IPR_AD_BIT            1u       /* A/D          */


(3)-2 ݋pvCIeBx̐ݒ

@@E****_intmask}N̒`
@@@H8ˑł́AÓIAPI DEF_INH( )Ŋ݃nh`ƁA
@@@J[lRtBM[VɂA݂̓
@@@vector.srcɎB
@@@̓ł́ACꃋ[`****ĂяoO̊݋
@@@Ɋ݃}XNɐݒ肷lƂāA}N****_intmask`
@@@Ɖ肵Ă̂ŁAݗvIPM_LEVEL1AIPM_LEVEL2̂
@@@ꂩɒ`邱ƁB
@@@Ɠx݂̊}XN邽߁AIPMɂ͂P̃x
@@@ݒ肷Kv̂ŁAӂKvłB
@@@intmask.incŒ`̂WƂB

@@@y^C}݂ł̋Lqz
@@@@jsp/config/h8-renesas/hsb8f3048bf25/intmask.inc
@@@@
@@@@timer_handler_intmask:         .DEFINE         "IPM_LEVEL2"
@@@@

2.2.2 ݃}XN̕ύXEQ

H8ˑ̋@\ƂāCCCRWX^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_asm.inc̒Ń}N
`ĂD

H8ˑ̊݃}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ŗplƂāAȉ̃}NpӂĂB
@IPM_LEVEL0FxO@ׂĂ݂̊󂯕t
@IPM_LEVEL1FxP@NMIуvCIeBxP݂݂̊̂
@@@@@@@@@@@@󂯕t
@IPM_LEVEL2FxQ@NMIȊO݂̊󂯕tȂ


IPMɎw肵lL̃}NȊȌꍇCE_PARG[ƂȂDIPM 
IPM_LEVEL0ȊOɐݒ肵ꍇłCfBXpb`͋֎~ȂD܂C
肵IPM̒ĺCfBXpb`pDfBXpb`֎~
ꍇɂ́Cdis_dspƕp΂悢D

ȂC̃T[rXR[pāCIPMIPM_LEVEL2iNMIȊO݂̊
~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

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

2. 4  X^[gAbvW[

  H8ˑ̃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
@@@@@̊֐HARDWARE_INIT_HOOK}NƂĒ`B
@@@@@@{ł́AOԂ̗L̑ɂASYSCRWX^
@@@@@UErbg̃NAAݗD惌WX^(IPRAIPRB)̌ʊ
@@@@@݂̗Dx̐ݒsĂB
@@@@@HARDWARE_INIT_HOOK}N̒`sys_config_asm.incōŝ
@@@@@WƂ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_asm.incōŝ
@@@@@WƂB

2. 5  ݔ̃X^bNgpʂɂ

  ^XNReLXgsɊ݂ǍʁA^XNXCb`
ꍇA^XNX^bNɂ͈ȉ̏񂪐ς܂邽߁A^XN32oCg
X^bN̈]ɊmۂKvB
ǐÃ^XNɖ߂ĂۂɁA^XNO[`N
ꍇ͂Ƀ^XNX^bN̗̈悪KvɂȂBj

  @^XNX^bNɐς܂e
  @@E߂Ԓn
  @@ECCRWX^
  @@Eer0`er6

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

yH8/3048F-ONEX^[^Lbgz
^C}ɋĂNbNg3072[kHz]ł
iNbN24.576[MHz]8jA^C}x
@(1000000/3072)[nsec]0.326[sec]
łB
fBtHg̃NbNfoCXƂāAH8/3048F-ONEłITU0gp
B


3. 2  \]pVXeQƋ@\

  H8ł́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

yH8/3048F-ONEX^[^Lbgz
^C}̂̐x͖0.326[sec]łA1secPʂ܂ŗLłB

3. 3  VAC^tF[XhCo

  H8/3048F-ONEɂ SCI0  SCI1  2 {̃VA|[gA
user_config.h ɒ`Ă TNUM_PORT ɂ艽{gp邩włB
݂̎ł 2 {܂ŎgpłB JSP J[l̃Oo͗pɂ SCI0
gpĂB

3. 4  }bv

3. 4. 1  H8/3048F-ONEX^[^Lbg̃}bv

  [h6ɌŒ肳ĂB

         0x00,0000 - 0x01,ffff  ROM 128KB
         @@@@@@@@@@@@@xN^e[uAP,C,DZNV
         0x20,0000 - 0x27,ffff  ORAM 512KB
         @@@@@@@@@@@@@R(D),BZNV
         0xff,ef10 - 0xff,efff  RAM 4KB
         @@@@@@@@@@@@@^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
   EfobK@E10T-USB Emulator
   @@Yt\tgEFÃo[W:2.01.00

܂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) HEWł̃rh

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

̃[NXy[Xɂ4̃vWFNgo^ĂB
@EgenoffsetFTCB\̓̃ItZbg߂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̃rhgenoffsetvWFNgrhKv
邪AvWFNgԂ̈ˑ֌Wݒ肵ĂsamplevWFNgN_
ꍇiˑ֌WlXgĂꍇj͐ŎsȂ̂ŁA
蓮libkernelvWFNg\߃rhĂB

l
@ReleaserhDebugrh̐ؑւHEW̃rhERtBM[V
ɂčsBrhERtBM[VύXƁAt@C
ˑ`FbNɎsꍇB
iCN[ht@CȂj@
̏ꍇ́Aȉ̎菇ŉłB
@PDWindows̃R}hEvvgiDOSjJāA
@@@jsp/tools/H8-RENESAS/libkernelfBNgclean.batsB
@QDHEẂurhv|uׂĂrhvR}hsB


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

{[hfobOc[̃}jAQƁB

4. 4  悭鎿Ɖ

Q.@genoffsetlibkernel, configurationsamplê悤Ƀt@C
@@tF[YƂRpCtF[YقȂvWFNg
@@Ɋ蓖ĂĂ͉̂R̂ł傤H

A.@ŏ͓vWFNgɐtF[YƃRpCtF[Y
@@悤Ƃ̂łAHEW̓vWFNg̃rhJn
@@ۂɃt@C̈ˑ֌WXLAKvȃ\[Xt@C
@@ĂȂrh~܂Ă܂߁Â݂悤Ȍ`ɕ
@@܂B
@@JX^tF[Y̏Ԃ͒ł܂Aˑ֌WXL̃^
@@C~O͕ςȂ悤łB

5.  t@C\

5. 1  fBNgEt@C\

   (1)   config/h8-renesas/

            cpu_config.c     H8vZbTˑC֐
            cpu_config.h     H8vZbTˑ̍\`
            cpu_config_asm.inc@L̃AZup`
            cpu_context.h    H8vZbTˑ̃ReLXg
            cpu_defs.h       H8vZbTˑ̃AvP[Vp`
            cpu_insn.h       H8vZbT̓ꖽ߂̊֐`
            cpu_support.src  H8vZbT̃AZu֐
            cpu_rename.def   J[l̓ʖ̃l[Ƃ̉
            @@@@@@@@ `Xg
            cpu_unrename.h   J[l̓ʖ̃l[̒`
            cpu_rename.h     J[l̓ʖ̃l[̒`
            cpu_rename_asm.inc L̃AZup`
            h8.h             H8/300HvZbT̋ʒ`
            makeoffset.c     offset.hT|[gp\[Xt@C
            start.src        X^[gAbvW[
            tool_config.h    H8vZbT̊JˑW[`
            tool_defs.h      H8vZbT̊Jˑ`
            vector_header.src ݃xN^e[ũwb_[
            h8_sil.c     @@SILH8g C֐
            h8_sil.h     @@SILH8g \`
            
            h8_3048f.h       H8/3048FvZbT̒`
            @@@@@@@@@@H8/3048FAH8/3048F-ONEp
            h8_3048f_asm.inc L̃AZup`
            util.h       @@rbgԍȂǂ̒`
            util_asm.inc @@L̃AZup`

            hw_serial.c      SCI ̕ϐƊ֐
            hw_serial.cfg    SCI ̃RtBM[Vt@C
            hw_serial.h      SCI ̒`
            hw_timer.h       ITU ̒`

   (2)   config/h8-renesas/hsb8f3048bf25/
           ()kldqH8/3048F-ONEX^[^Lbgi^HSB8F3048BF25j
           {[ḧˑ

            sys_config.c     HSB8F3048BF25{[hˑC֐
            sys_config.h     HSB8F3048BF25{[hˑ̍\`
            sys_config_asm.inc@L̃AZup`
            sys_defs.h       HSB8F3048BF25{[hˑ̃AvP[V
            @@@@@@@@ p`
            sys_support.src  HSB8F3048BF25{[hˑ̃AZu֐
            sys_rename.def   J[l̓ʖ̃l[Ƃ̉
            @@@@@@@@ `Xg
            sys_rename.h     J[l̓ʖ̃l[̒`
            sys_unrename.h   J[l̓ʖ̃l[̒`
            
            ȉ́A[U[ҏWKvt@C
            user_config.h@@[U[ERtBM[V̒`
            user_config_asm.inc@L̃AZup`
            intmask.inc@@@݃}XN̒`

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

          @h8/ @@@@ gccłƋʂ̃XNvg
            @grep_def_inh.pl@PerlXNvgptB^
           
          @h8-renesas/@H8Cˑ̃XNvg
            @copy_kernel_source.bat
            @@@@@@@@@ J[l̃\[XR[hAPIɃRs[
            @@@@@@@@@ ob`t@C
            @genoffset@@@@TCB\̓̃ItZbgZoperlXNvg
            @genvector.pl@@ xN^e[upXNvg
            @gen_intentry.pl@ݓpXNvg
            

   (4)   tools/H8-RENESAS/
           HEW4.0p̃[NXy[XEfBNg
           @()kldqH8/3048F-ONEX^[^Lbgi^HSB8F3048BF25j

            readme.txt
            @rh菇readmet@C
            H8-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/H8-RENESAS/genoffset/
   @@@@ȉ̏svWFNgEfBNg
   @@@@@EJ[lE\[XR[hAPIɃRs[
   @@@@@ETCB\̓̃ItZbgZo
   @@@@
           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/H8-RENESAS/libkernel
   @@@@J[lECũrhsvWFNgEfBNg
   @@@@
   @@@@kernel_source/@@ ԃt@Ci[fBNg
   @@@@@@clean.bat@@@ԃt@C폜邽߂̃ob`t@C 

   (7)   tools/H8-RENESAS/configuration
   @@@@J[lERtBM[VsvWFNgEfBNg
   @@@@
           call_configuration.bat
           @@@@@@@@@ RtBM[^[ƃxN^e[u
           @@@@@@@@@ XNvǧĂяo

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

   (7)   tools/H8-RENESAS/sample
   @@@@TvEAvP[ṼrhsvWFNgEfBNg
   @@@@
   @@@@set_sp.hdc@@@@ fobKŃX^bN|C^邽߂
   @@@@@@@@@@@@@ ob`t@C


6. AvP[VJҌ̏

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

6.1 J[l̐ݒύX@

H8ˑł́AlXȐݒύXeՂɂł悤Aݒӏȉ̂Q
̃t@Cɂ܂Ƃ߂ĂB
@Euser_config.h@@@@Cݒt@C
@Euser_config_asm.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_asm.inc

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

(3) CPU_CLOCK
vZbTɋNbNg [Hz]
ݒt@CFuser_config.hAuser_config_asm.inc

(4) STACKTOP
^XNReLXgpX^bN|C^̏l
ݒt@CFuser_config_asm.inc

(5) E10T
E10T-USB EmulatorŃfobOꍇ͂̃}N`B
E10TgpɕKvȏX^[gAbv[`ōsB
`ꏊFAZũIvVƂė^B
@@@@@iHEW̃rhIvVj


EVA|[g֘A̐ݒ荀

(1) TNUM_PORT
T|[gVAfoCX̐iő 2j
ݒt@CFuser_config.hAuser_config_asm.inc

ȉA|[g2̐ݒTNUM_PORT2ɐݒ肵ꍇ̂ݗLłB

(2) SYSTEM_PORTIDAUSER_PORTID
VXe|[gA[U[|[g̃|[gԍ
USER_PORTID̐ݒTNUM_PORT2ɐݒ肵ꍇ̂ݗLłB
ݒt@CFuser_config.h

(3) SCI_LOW_PORTID
|[Oɂ჌xo͂ɗpVA|[g̃|[gԍ
ݒt@CFuser_config.h

(4) SCI_PORT1_BAUD_RATEASCI_PORT2_BAUD_RATE
|[g1,2̃{[[g [bps]
ݒt@CFuser_config.h

(5) SCI_PORT1_IPMASCI_PORT2_IPM
|[g1,2̊݃vCIeBEx
iݔIRCւ̗vxj
ݒt@CFuser_config.h

(6) H8_CFG_SCI_ERR_HANDLER
VAMG[݂ɒʏ̎M݂Ƃ͕ʂ̃nh蓖Ă
ǂ̒`
ݒt@CFuser_config.hAuser_config_asm.inc

E^C}֘A̐ݒ荀

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

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

(3) SYSTEM_TIMER_IPM
^C}݂̃vCIeBEx
iݔIRCւ̗vxj
ݒt@CFuser_config.h


6.2 AvP[Vɒ񋟂@\

H8ˑł̓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⏕@\

H8I/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
{@\𗘗pꍇh8_sil.hCN[hKvB
|[gԍIO_PORT^ƂĒ`ĂAIO_PORT1, IO_PORT2, IO_PORT3, 
IO_PORT4, IO_PORT5, IO_PORT6, IO_PORT8, IO_PORT9, IO_PORTA, IO_PORTB
ꂩw肷Bi|[g7͓͐p̂߁ADDRWX^ȂBj
|[gԍƂāAȊO̒lw肵ꍇassertŃG[ƂȂB


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

yCAPIz
@@UB sil_reb_ddr(IO_PORT port);

yp[^z
	IO_PORT 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 port, UB data);

yp[^z
	IO_PORT 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 port, UB data);

yp[^z
	IO_PORT 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 port, UB data);

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

y^[p[^z
	Ȃ

yG[R[hz
	Ȃ

y@\z

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


7. J[lڐAҌ̏

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

7.1 }N`

(1) SYSCR_SYS
SYSCȐl
{[hˑŒ`e
@Erbg6-4 STSFX^oCE^C}EZNg
@Erbg2 NMIEGFNMIGbW
`t@CFsys_config.h
c̃rbgCPUˑŒ`ĂB

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

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

(4) WITHOUT_INNER_RAM
RAMgpȂꍇ́Ã}N`B
RAMgpȂꍇ́AORAMLɂȂȂƃX^bNGAg
ȂB̂߁A߂ԒnX^bNɐςH8vZbT̊֐Ăяo
iAZułĂj̃^C~Oł͂܂łȂB܂A
HARDWARE_INIT_HOOKŎ֐͖򖽗߂Ŗ߂ĂB
ixstart_1GNX|[gBj
`t@CFsys_config_asm.inc

(5) EXCLUSIVE_BUS
sleep߂ɂă\tgEFAEX^oCE[hɑJڂہAoX
v̋NꍇBiႦ΁AH8/3048F̃n[hEFAE}j
Au6.4.4 \tgEFAEX^oCE[hւ̑JځvQƁj
EXCLUSIVE_BUS}N`ƁAfBXpb`sleep߂̑OɃo
Xv̔r䂪}B
`t@CFsys_config_asm.inc

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

(7) DDRANZX[`̂߂̒萔`

(a) DDRWX^̃AhX
DDRWX^̃AhXȉ̃}NŒ`B
    H8P1DDR, H8P2DDR, H8P3DDR, H8P4DDR, H8P5DDR, 
    H8P6DDR, H8P8DDR, H8P9DDR, H8PADDR, H8PBDDR
`t@CFsys_config.hCN[ht@C
@@@@@@@h8_30xxf.hŒ`̂WƂB

(b) DDRWX^̏l
X^[gAbv[`sDDRWX^̒lȉ̃}NŒ`
B
@@H8P1DDR0AH8P2DDR0AH8P3DDR0AH8P4DDR0AH8P5DDR0A
@@H8P6DDR0AH8P8DDR0AH8P9DDR0AH8PADDR0AH8PBDDR0
`t@CFsys_config.h

7.2 rhp̃XNvgɂ

(a) jsp/tools/H8-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 h8 -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/h8-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, intmask

@@@yp[^z
@@@@@c_routineFCꃋ[`̊֐
@@@@@intmask@FCꃋ[`ĂяoO̊݋Ɋ
@@@@@@@@@@ }XNɐݒ肷l
@@@@@@@@@@ IPM_LEVEL1AIPM_LEVEL2̂ꂩɂ邱ƁB
@@@@@@@@@@ Ɠx݂̊}XN邽߁AIPMɂ
@@@@@@@@@@ P̃xݒ肷B

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


7.3 ̑
E4.3(2)̃vWFNg\ɂ
@t@ClibkernelvWFNĝPtF[YƂĒ`
ʂǂȂ邪A̕@ł́At@CԍŏɎsr
hEtF[YƂĒ`ĂAt@CsOɃRpCEtF[
Ỹt@C̈ˑ֌W̃`FbNsAt@CJȂ|̌x
ʂɕ\Ă܂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

EVXeO@\ɂ
int^2oCĝ߁AVXeO@\(syslog, syslog_n)%d, %u, %x,
 %Xɂ鐮\ł2oCgf[^\łȂB2oCg傫
f[^\ꍇ́A\f[^2oCgɕăVXe
O@\ɓnKvBi|C^^\%pg4oCg܂ŕ\
łBj

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悤ɂȂĂ
ȂĂ邪Ah8-renesasłsoftware_term_hook()ɑ֐}
NSOFTWARE_TERM_HOOKƂĒ`AJ[lCurhK
vB
@ڂ́u7.1 }N`v́u(6) SOFTWARE_TERM_HOOKvQƁB


9. gccŁijsp-1.4.1 H8ˑj̕ύX_

E݃nh̓o^@̕ύXi2.2ߎQƁj
EݗDx̃T|[g
@@E2x
@@EɔA݃}XN̕ύXEQƋ@\T|[g
Eԑ҂T|[g
EDDRWX^EANZXE[`̐V
E[U[ݒ荀ڂ̐


ύX

'05/05/10 T|[gJn

'05/12/28 Release1.4.2
@C
@E݃xN^e[u
@@@E悤dlύX
@@@EperlXNvg̃qAEhLgo͎ɕs
@@@@CiSp𔼊pɕύXj
@E݃}XN̒`@
@@@E[U[͊݃}XN̒`s΍ςނ悤ɎdlύX
@@@EO[o_kernel_xxxx_entryx̓[JxɕύX
@@@E݂̓vector.srcɏo悤ύX
@ETCB\̂̃ItZbgZo
@@@EMOV.B  #8:8,R0L̂悤ɒ萔̃rbgꂽƂɃp[X
@@@@łȂsC
@@@EItZbgl16ȉꍇɑΉ
@@@Emakefile.mak̃pXݒŁuXy[X܂ރOl[vɂ
@@@@Ă̋Lqǉ
@Eo^ĂȂ݂̈
@@@Ecpu_experr( )
@@@@@EݔÕX^bN|C^̒liItZbgljC
@@@@@Esyslog( )4oCgf[^\邽߁A%pwi|C^^j
@@@@@@p悤ύX
@@@@@@i%xi^jł2oCg\łȂ߁j
@@@Eno_reg_exception()
@@@@@EX^bNopcccr𕪗ĂȂs
@@@@@@C
@@@@@Esyslog֐4oCgf[^̂܂܈ɂĂs
@@@@@@C
@@@@@@@iintTCYi2oCgj̈nȂj
@EAZu[`̐݌v
@@@ECPUbNtÕNAʒǔ
@@@@@Ȅ݂o
@@@@@Esׂ^XNȂꍇ̊ݑ҂
@@@E򖽗ߒO̕svor߂폜
@@@@@ȋOmov߂ŏ\j
@EDDRANZX[`
@@@Esil_reb_ddr(), sil_wrb_ddr()
@@@@@@asserẗ`FbN͈̔̓~XC
@Erh菇
@@@@ReleaserhɃW[ԍœKϋɓIɓKp悤
@@@@ݒύX
@EVXeO@\
@@@E\łf[^TCYɂĐǋL

'07/03/xx Release1.4.3
@ExN^e[u
@@@EperlXNvggccłƊSɋʉ
@@@@@E0xN^ɑΉ
@@@@@ExN^TCŸ`FbNǉ
@@@@@EݔԍuĂꍇ̏ǉ
@@@EڐAlāAgenvector.pl̏Qɕ
@@@@@Egenvector.plFxN^e[u̐iH8SłƋʉj
@@@@@Egen_intentry.plF݂̓iINTENTRYj̐
@@@EɔȂAgrep_def_inh.plƂ̃C^[tF[XύX
@@@En̉sR[ḧႢɑΉ
@@@EDEF_INH̓rŉsƃp[XɎsC
@@@Efilter1.plfilter2.plPɂ܂Ƃ߁Agrep_def_inh.plɉ
@@@@igccłHEWłŌʂfilter2.plpӂKvȂȂj
@E荞݃x̐ݒ
@@@Eh8_sil.hdefine_int_plevel()
@@@@@cpu_insh.hCN[hȂŁAbitset(),bitclr()Ă
@@@@@oĂsC
@@@Ebitset, bitclr
@@@@@iAZuŋLqj֐Ăяo}N`ɕύX
@@@@@@@֐ĂяõI[o[wbh𖳂
@Erh菇
@@@EDebugReleaseŃJ[lRtBM[VʂʁX
@@@@Ă悤ɁArh菇ύX
@@@EAPĨt@CRs[Ƀob`t@Cgp
@@@@pȃbZ[Wʂɕ\邽߁Aperlŏ
@@@@悤ύX
@@@EH8SłƂ̐
@@@@@JX^rhhmakeĂяoAob`t@Ĉ݂
@@@@@悤rh菇ύX
@@@@@ɂA
@@@@@@Ehmakeւ̃pXݒ肪svɂȂB
@@@@@@@ivWFNgt@C̉j
@@@@@@EJX^rhōsĂvvZXsvɂȂ̂
@@@@@@@ԂZk
@EꃌWX^̑ñCuɕύX
@EDDRANZX֐
@@@|[gԍ̌^INT^IO_PORT^ɕύX
@ESIL̃ԃANZX֐@ˑŒ`
@@@RpČx邽
@ETvvO
@@@user_config.hTASK_PORTID̒`폜
