------------------------------------------------------------------------------
  Hyper Operating System V4 Advance  --ITRON4.0dlOS                       
    RtBM[^[ hLg                                         
                                                                              
                                       Copyright (C) 1998-2007 by Project HOS 
                                       http://sourceforge.jp/projects/hos/    
------------------------------------------------------------------------------


iӁj
   _ł͖̋@\܂݂܂B



1. Tv

  {hLg Hyper Operating System V4 Advance (ȉ HOS-V4a)
RtBM[^[(h4acfg)ɂĂ̐Lڂ܂B



2. RtBM[^[̃CN

  cfgrtr fBNgȉɃRtBM[^[̃rhpt@Cꎮ
܂B
  RtBM[^[̓^[QbgvZbTɐAJ[l
rhɘAărh܂B



2. RtBM[^[̎g

  RtBM[^[̎dl̂AITRON4.0 dlɂĒ߂
܂B
  {hLg̓ITRON4.0dlĂ邱ƂO
Ă܂BITRON4.0dl̓C^[lbgŖJ
܂̂ŁAʓȑAmFB

  {Iȏ̗ƂẮAÓIAPILڂAsystem.cfg 
CvvZbTŏɁAh4acfg ŏ邱ƂɂA
kernel_id.h(IDȂǂ錾wb_t@C)ƁAkernel_cfg.c(J[l
IuWFNg̐ÓIȂǁj𓾂܂B
  ̌Ɍ́Akernel_cfg.c RpCăN邱ƂŁAHOS-V4a
p\ƂȂ܂B


3. HOS-V4a Ǝ̐ÓIAPI

  h4acfgł ITRON4.0dl Œ߂ÓIAPȊɉLAPI
Ă܂B

    KERNEL_HEP_MEM, KERNEL_SYS_STK, KERNEL_INT_STK, KERNEL_INT_SP,
    KERNEL_TIM_TIC, KERNEL_MIN_INTNO, KERNEL_MAX_INTNO,
    KERNEL_MAX_TSKID, KERNEL_MAX_SEMID, KERNEL_MAX_FLGID,
    KERNEL_MAX_DTQID, KERNEL_MAX_MBFID, KERNEL_MAX_MBXID,
    KERNEL_MAX_MPFID, KERNEL_MAX_CYCID, KERNEL_MAX_ISRID



4. ÓIAPI̐

  ITRON4.0 W API ɂĂ ITRON4.0 dl QƂB
   ł HOS Ǝ API ɂĂ̂ݐ܂B



4.1 J[l̃q[v̎w

  yAPIz
      KERNEL_HEP_MEM(SIZE hepsz, VP hep);

  yp[^z
      SIZE   hepsz        J[l̃q[ṽTCY
      VP     sysstk       J[l̃q[v

  y@\z
      J[l͊e퓮IIuWFNg(cre_xxxacre_xxx)ɂāA
    IuWFNg𐶐ꍇAJ[l̃q[v烁
    蓖Ă܂B
      {APIł̓J[l̃q[vw肵܂B
      hep Ɏw肳ꂽAhXAhepsz Ŏw肳ꂽTCY
    ̈ACh̃X^bNɊ蓖Ă܂B
      hep  NULL w肵ꍇAhepsz Ŏw肳ꂽTCY
    RtBM[^[IɊmۂ܂B


4.2 VXe^XÑX^bN̎w

  yAPIz
      KERNEL_SYS_STK(SIZE sysstksz, VP sysstk);

  yp[^z
      SIZE   sysstksz     VXe^XÑX^bÑTCY
      VP     sysstk       VXe^XÑX^bN

  y@\z
      J[l͎s^XNȂꍇ̃ACh[vsAKvɉ
    ꕔ̏J[l̃VXe^XNɂĎs܂B
    {APIł̓VXe^XÑX^bNw肵܂B
      sysstk Ɏw肳ꂽAhXAsysstksz Ŏw肳ꂽTCY
    ̈ACh̃X^bNɊ蓖Ă܂B
      sysstk  NULL w肵ꍇAsysstksz Ŏw肳ꂽTCYRtB
    M[^[IɊmۂ܂B
      w̏ꍇAftHgŃvZbTɍŒKvȃTCY蓖
    ܂AACh̗OŃX^bNʂɏꍇ
    {APIɂĒ邱Ƃ\łB


4.3 ݎ̃X^bN̎w

  yAPIz
      KERNEL_INT_STK(SIZE intstksz, VP intstk);
      KERNEL_INT_SP(VP intsp);

  yp[^z
      SIZE   intstksz     ݎ̃X^bÑTCY
      VP     intstk       ݎ̃X^bN
      VP     intsp        ݎ̏X^bN|C^l

  y@\z
      荞݂ꍇAX^bN͊ݗpX^bNɐ؂ւ܂B
      {APIł͊ݎɐ؂ւX^bNw肵܂B
      KERNEL_INT_STK  KERNEL_INT_SP ͓ɂ͗płAǂ炩Е
    pĎws܂B
      KERNEL_INT_STK ł́Aintstk Ɏw肳ꂽAhXAintstksz Ŏw
    ꂽTCỸ̈ݎ̃X^bNɊ蓖Ă܂B
      intstk  NULL w肵ꍇAintstksz Ŏw肳ꂽTCYRtB
    M[^[IɊmۂ܂B
      KERNEL_INT_SP ł́Aintsp Ɋݔ̃X^bN|C^l𒼐ڎw
    ł܂B

  y⑫z
      ݗp̃X^bN|C^l _kernel_int_isp ̖̂Ő܂B
    ʏAÑX^[gAbv[`s̃X^bNƊݗp̃X^bN
    LłׁAX^[gAbv[`ɂāA_kernel_int_sp QƂėp
    Ƃ\łB


4.4 ^CeBbN̎̎w

  yAPIz
      KERNEL_TIM_TIC(UW nume, UW deno);

  yp[^z
      UW      nume        ^CeBbN̎̕q
      UW      deno        ^CeBbN̎̕

  y@\z
      isig_tim ɂăJ[lɋ^CeBbN̎w肵܂B
      Ⴆ΁A 10/1 w肵ꍇAisig_tim PĂяoƂ
    J[l̃VXe10i݂܂B
      t 1/3 Ȃǂw肵ꍇɂ́Aisig_tim  3Ăяoď߂
    VXe1i݂܂B
      w肵ȂꍇftHg 1/1 ƂȂ܂B

  y⑫z
      Ⴆ  3.333... ms ̃C^[o^C}ɂāAisig_tim 
    ĂяoAVXe̒PʎԂ ms ɓꂵꍇȂǂ 10/3 
    w肷΁Aisig_tim  ĂяoƂɁA3, 3, 4, 3, 3, 3, 4...
    Ƃ3 isig_tim ̌ĂяoŁAVXe 10 i
    悤ɂȂ܂B


4.5 荞ݔԍ͈̔͂̎w

  yAPIz
      KERNEL_MIN_INTNO(INTNO minintno);
      KERNEL_MAX_INTNO(INTNO maxintno);

  yp[^z
      INTNO   minintno    荞ݔԍ̍ŏl
      INTNO   maxintno    荞ݔԍ̍ől

  y@\z
      荞ݔԍ̍őlƍŏlw肵܂B
      vZbT̃rWɂ藘pł銄荞ݔ͈͂قȂA
    prƂĎg͈͂ꍇA{APIŔ͈͂肵A݊Ǘe[u
    ʂ}邱Ƃ\ƂȂ܂B

  y⑫z
     vZbTɂẮAOvZbTO⃊ZbgȂǂ
    蓖ĂĂA荞ݔԍ㔼̔ԍn܂邱Ƃ
    ׁ̂Aŏlwł悤ɂȂĂ܂B
      w肵͈͂̕A荞݊Ǘe[u𐶐܂
    ŁAvZbTł͒`ĂĂpȂ͈͂OȂǂ
    ̍팸sƂ\łB


4.6 IuWFNg̍őID̎w

  yAPIz
      KERNEL_MAX_TSKID(ID maxtskid);
      KERNEL_MAX_SEMID(ID maxsemid);
      KERNEL_MAX_FLGID(ID maxflgid);
      KERNEL_MAX_DTQID(ID maxdtqid);
      KERNEL_MAX_MBXID(ID maxmbxid);
      KERNEL_MAX_MBFID(ID maxmbfid);
      KERNEL_MAX_MPFID(ID maxmpfid);
      KERNEL_MAX_CYCID(ID maxcycid);
      KERNEL_MAX_ISRID(ID maxisrid);

  yp[^z
      ID      maxtskid    ^XNID̍ől
      ID      maxsemid    Z}tHID̍ől
      ID      maxflgid    tOID̍ől
      ID      maxdtqid    f[^L[ID̍ől
      ID      maxmbxid    [{bNXID̍ől
      ID      maxmbfid    bZ[Wobt@ID̍ől
      ID      maxmpfid    Œ蒷v[ID̍ől
      ID      maxcycid    nhID̍ől
      ID      maxisrid    ݃T[rX[`ID̍ől

  y@\z
      eIuWFNgID̍őlw肵܂B
      w肵ȂꍇftHgŃRtBM[^[Ő
    IuWFNgpĂőIDԍɂȂ܂B

  y⑫z
      cre_tsk  cre_sem ƂAIɃIuWFNg𐶐
    ꍇAŎw肵͈͂𒴂ID͗po܂B
      pID͈͂K؂Ȕ͈͂ɐݒ肷邱ƂŁAL
    p邱Ƃ\łB


4.8 IuWFNg̗\

  yAPIz
      KERNEL_RES_TSKOBJ(ID tskobjno);
      KERNEL_RES_SEMOBJ(ID semobjno);
      KERNEL_RES_FLGOBJ(ID flgobjno);
      KERNEL_RES_DTQOBJ(ID dtqobjno);
      KERNEL_RES_MBXOBJ(ID mbxobjno);
      KERNEL_RES_MBFOBJ(ID mbfobjno);
      KERNEL_RES_MPFOBJ(ID mpfobjno);
      KERNEL_RES_CYCOBJ(ID cycobjno);

  yp[^z
      ID      tskobjno    \񂷂^XNIuWFNg
      ID      semobjno    \񂷂Z}tHIuWFNg
      ID      flgobjno    \񂷂Z}tHIuWFNg
      ID      dtqobjno    \񂷂f[^L[IuWFNg
      ID      mbxobjno    \񂷂郁[{bNXIuWFNg
      ID      mbfobjno    \񂷂郁bZ[Wobt@IuWFNg
      ID      mpfobjno    \񂷂郁v[IuWFNg
      ID      cycobjno    \񂷂nhIuWFNg

  y@\z
      \񂷂IuWFNg̎wsȂ܂B̎w肪ƁA
    ÓIɉė\ xxxobjnõIuWFNgJ[lɓo^
    \ɂȂ܂B

  y⑫z
      {IɂHOS_MAX_XXXIDƓprAPIłAID̍őlł
    Ȃ\(=ÓIp\ID)w肷_قȂ
    ܂B܂A{API͕w肪Aۂɗ\񂳂IuWFNg
    ͎w肳ꂽ\񐔂̑aƂȂ܂B
      HOS_MAX_XXXIDƂ͔rIȊ֌Wɂ܂B𓯎Ɏgp邱
    Ƃ͏o܂B



------------------------------------------------------------------------------
 end of file
------------------------------------------------------------------------------
