------------------------------------------------------------------------------
  Hyper Operating System V4  ITRON4.0dl Real-Time OS                      
    RtBM[^[ hLg                                         
                                                                              
                                       Copyright (C) 1998-2003 by Project HOS 
                                       http://sourceforge.jp/projects/hos/    
------------------------------------------------------------------------------



1. Tv

  {hLg Hyper Operating System V4iȉ HOS-V4j
RtBM[^[(hos4cfg)ɂĂ̐Lڂ܂B



2. RtBM[^[̃CN

  hos-v4/config ȉɃRtBM[^[̃\[Xt@C܂B
܂́ACNāAhos4cfg Kv܂B
  WindowspłƁAŗpł Borland-C++ Ver 5.5 p̃CN
t@C bcc55.mak AgccłƁAgcc.mak ܂̂
QlɃCNsāAoオ hos4cfg pX̒ʂ
fBNgɔzuĂB



2. RtBM[^[̎g

  RtBM[^[̎dl̂AITRON4.0 dlɂĒ߂
܂̂ŁA܂ http://www.assoc.tron.org/itron/SPEC/mitron4-j.html
zźAdlǂ邱Ƃ߂܂B
  GcȗƂ܂ẮAÓIAPILڂ܂Asystem.cfg 
CvvZbTŏĂɁAhos4cfg ŏ邱Ƃɂ
kernel_id.h(IDȂǂ錾wb_t@C)ƁAkernel_cfg.c(J[l
IuWFNg̐ÓIȂǁj쐬܂B
  ́Akernel_cfg.c RpCăN邱ƂŁAHOS-V4p\
Ȃ܂B



3. HOS-V4ŗpłÓIAPIꗗ

  ITRON4.0 W API
    CRE_TSK, DEF_TEX, CRE_SEM, CRE_FLG, CRE_DTQ, CRE_MBX, CRE_MBF,
    CRE_MPF, CRE_CYC, ATT_ISR, ATT_INI, INCLUDE

  HOS-V4 Ǝ API
    HOS_IDL_STK, HOS_INT_STK, HOS_INT_SP, HOS_MAX_TPRI, HOS_KERNEL_HEAP,
    HOS_TIM_TIC, HOS_MIN_INTNO, HOS_MAX_INTNO, HOS_MAX_TSKID,
    HOS_MAX_SEMID, HOS_MAX_FLGID, HOS_MAX_DTQID, HOS_MAX_MBFID,
    HOS_MAX_MBXID,HOS_MAX_MPFID, HOS_MAX_CYCID, HOS_MAX_ISRID



4. ÓIAPI̐

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


4.1 ACh̃X^bN̎w

  yAPIz
      HOS_IDL_STK(SIZE idlstksz, VP idlstk);

  yp[^z
      SIZE   idlstksz     ACh̃X^bÑTCY
      VP     idlstk       ACh̃X^bN

  y@\z
      J[l͎s^XNȂꍇAJ[lŃACh[v
    s܂B{APIł̓ACh[vs̃X^bNw肵܂B
      idlstk Ɏw肳ꂽAhXAidlstksz Ŏw肳ꂽTCY
    ̈ACh̃X^bNɊ蓖Ă܂B
      idlstk  NULL w肵ꍇAidlstksz Ŏw肳ꂽTCYRtB
    M[^[IɊmۂ܂B
      w肵ȂꍇftHgŃTCY64ƂȂ܂B

  y⑫z
      ACh̕KvX^bNʂ́AݎɊ荞ݗpX^bN
    ؂ւ܂ł̍Œ̃[NƃWX^ޔ𕪂łB
      Kvȗʂ̓vZbTRpCȂǂ̊ɈˑׁAʓr
    œKȒl`łdlɂȂĂ܂B


4.2 ݎ̃X^bN̎w

  yAPIz
      HOS_INT_STK(SIZE intstksz, VP intstk);
      HOS_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
      HOS_INT_STK  HOS_INT_SP ͓ɂ͗płAǂ炩Е𗘗p
    ws܂B
      HOS_INT_STK ł́Aintstk Ɏw肳ꂽAhXAintstksz Ŏw
    ꂽTCỸ̈ݎ̃X^bNɊ蓖Ă܂B
      intstk  NULL w肵ꍇAintstksz Ŏw肳ꂽTCYRtB
    M[^[IɊmۂ܂B
      HOS_INT_SP ł́Aintsp Ɋݔ̃X^bN|C^l𒼐ڎw
    ł܂B
      ǂAPIw肵ȂꍇARtBM[^[͊ݗpX^bN
    |C^𐶐܂Bʓrݎ̏X^bN|C^li[
    const VP ^  kernel_int_sp ƂO[oϐ`ĂB

  y⑫z
      ݎ̃X^bN͋N̏X^bNlƋLłׁAX^[g
    Abv[`ɂāAkernel_int_sp `֗ȏꍇl܂B
      ׁ̈AftHg kernel_int_sp 𐶐ȂdlɂĂ܂B


4.3 ő^XNDx̎w

  yAPIz
      HOS_MAX_TPRI(PRI maxpri);

  yp[^z
      PRI     maxpri      pőDx

  y@\z
      J[lŊmۂAfB[L[̐ύX܂B
      fB[L[͗Dx̐pӂ܂̂ŁAp
    Dx̐𖾎Iɐ錾邱ƂŃ̐ߖ񂪉\ƂȂ܂B
      w肵ȂꍇftHg 16 ƂȂ܂B


4.4 J[lq[vTCY̎w

  yAPIz
      HOS_KERNEL_HEAP(SIZE heapsize);

  yp[^z
      SIZE   heapsize     J[lpq[ṽTCY

  y@\z
      cre_tskAcre_sem Ȃǂ́AIuWFNg̓Is API 𗘗p
    ꍇɃJ[l蓖Ăq[ṽTCYw肵܂B
      IuWFNg̓I𗘗pȂꍇɂ͕svłB
      w肵ȂꍇftHgŃTCY0ƂȂAIuWFNg̓I
    oȂȂ܂B


4.5 ^CeBbN̎̎w

  yAPIz
      HOS_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.6 荞ݔԍ͈̔͂̎w

  yAPIz
      HOS_MIN_INTNO(INTNO minintno);
      HOS_MAX_INTNO(INTNO maxintno);

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

  y@\z
      荞ݔԍ̍őlƍŏlw肵܂B
      vZbTɂ藘pł銄荞ݔ͈͂قȂ܂̂ł
    w肵ĂB
      p\ȒĺA0܂ސ̒lƂȂ܂B
      w肵ȂꍇftHgōőAŏ 0 ƂȂ܂B

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


4.7 IuWFNg̍őID̎w

  yAPIz
      HOS_MAX_TSKID(ID maxtskid);
      HOS_MAX_SEMID(ID maxsemid);
      HOS_MAX_FLGID(ID maxflgid);
      HOS_MAX_DTQID(ID maxdtqid);
      HOS_MAX_MBXID(ID maxmbxid);
      HOS_MAX_MBFID(ID maxmbfid);
      HOS_MAX_MPFID(ID maxmpfid);
      HOS_MAX_CYCID(ID maxcycid);
      HOS_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
      ȂAŎw肵ĺAJ[lł ID ƃIuWFNg
    тe[ũTCYɉe܂BIɃIuWFNg
    ̂̂̃̓J[lq[vʓrmۂ܂B


4.8 IuWFNg̗\

  yAPIz
      HOS_RES_TSKOBJ(ID tskobjno);
      HOS_RES_SEMOBJ(ID semobjno);
      HOS_RES_FLGOBJ(ID flgobjno);
      HOS_RES_DTQOBJ(ID dtqobjno);
      HOS_RES_MBXOBJ(ID mbxobjno);
      HOS_RES_MBFOBJ(ID mbfobjno);
      HOS_RES_MPFOBJ(ID mpfobjno);
      HOS_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



------------------------------------------------------------------------------
 Copyright (C) 1998-2003 by Project HOS                                       
------------------------------------------------------------------------------
