------------------------------------------------------------------------------
  Hyper Operating System V4 Advance  --ITRON4.0OS                       
    ե졼 ɥ                                           
                                                                              
                                       Copyright (C) 1998-2008 by Project HOS 
                                       http://sourceforge.jp/projects/hos/    
------------------------------------------------------------------------------



1. 

  ܥɥȤ Hyper Operating System V4 Advance (ʲ HOS-V4a)
ե졼(h4acfg)ˤĤƤ򵭺ܤޤ



2. ե졼Υᥤ

  cfgrtr ǥ쥯ȥʲ˥ե졼Υӥѥե켰
ޤ
  ե졼ϥåȥץå졢ͥ
ӥɻϢưƥӥɤޤ
  ʤե졼ϥѥ뤹ݤΥۥȥޥ¦
ưץǤΤǡۥȥޥѤΥѥ餬ɬפ
ʤޤ
  gmake.mak Ѥ gcc nmake.mak Ѥ
cl (MS-C, Visual-C++)ƤӽФޤ
  Ķ˹碌ƤΥѥ餬¹ԤǤ褦ꤷ
Ƥ


2. ե졼λȤ

  ե졼λͼΤ⡢ITRON4.0 ͤˤä
ޤ
  ܥɥȤϦITRON4.0ͤĺƤ뤳Ȥ
ƤޤITRON4.0ͽITRONꥤ󥿡ͥåȤ
̵ƤޤΤǡξ塢ǧ

  ŪʽήȤƤϡŪAPI򵭺ܤsystem.cfg 
Cץץåǽˡh4acfg ǽ뤳Ȥˤꡢ
kernel_id.h(IDʤɤإåե)ȡkernel_cfg.c(ͥ
֥ȤŪʤɡˤޤ
  θ˸ϡkernel_cfg.c 򥳥ѥ뤷ƥ󥯤뤳ȤǡHOS-V4a
ѲǽȤʤޤ


3. HOS-V4a ȼŪAPI

  h4acfgǤ ITRON4.0 ŪAPI¾˲API
Ƥޤ

    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_RSV_TSKID,
    KERNEL_MAX_SEMID, KERNEL_RSV_SEMID,
    KERNEL_MAX_FLGID, KERNEL_RSV_FLGID,
    KERNEL_MAX_DTQID, KERNEL_RSV_DTQID,
    KERNEL_MAX_MBFID, KERNEL_RSV_MBFID,
    KERNEL_MAX_MBXID, KERNEL_RSV_MBXID,
    KERNEL_MAX_MPFID, KERNEL_RSV_MPFID,
    KERNEL_MAX_CYCID, KERNEL_RSV_CYCID,
    KERNEL_MAX_ISRID, KERNEL_RSV_ISRID



4. ŪAPI

  ITRON4.0 ɸ API ˤĤƤ ITRON4.0  򤴻Ȥ
   Ǥ HOS ȼ API ˤĤƤΤޤ



4.1 ͥΥҡץλ

  API
      KERNEL_HEP_MEM(SIZE hepsz, VP hep);

  ڥѥ᡼
      SIZE   hepsz        ͥΥҡץΥ
      VP     sysstk       ͥΥҡץ

  ڵǽ
      ͥϳƼưŪ֥(cre_xxxacre_xxx)ˤơ
    ֥Ȥ硢ͥΥҡפ
    Ƥޤ
      APIǤϥͥΥҡץꤷޤ
      hep ˻ꤵ줿ɥ쥹顢hepsz ǻꤵ줿ʬ
    ΰ򥢥ɥΥå˳Ƥޤ
      hep  NULL ꤷ硢hepsz ǻꤵ줿
    ե졼ưŪ˳ݤޤ


4.2 ƥॿΥåλ

  API
      KERNEL_SYS_STK(SIZE sysstksz, VP sysstk);

  ڥѥ᡼
      SIZE   sysstksz     ƥॿΥåΥ
      VP     sysstk       ƥॿΥå

  ڵǽ
      ͥϼ¹Ԥ륿ʤΥɥ롼׼¹Ԥ䡢ɬפ˱
    ν򥫡ͥΥƥॿˤƼ¹Ԥޤ
    APIǤϥƥॿΥåꤷޤ
      sysstk ˻ꤵ줿ɥ쥹顢sysstksz ǻꤵ줿ʬ
    ΰ򥢥ɥΥå˳Ƥޤ
      sysstk  NULL ꤷ硢sysstksz ǻꤵ줿򥳥ե
    졼ưŪ˳ݤޤ
      ̤ξ硢ǥեȤǥץå˺ɬפʥ
    ޤɥ㳰ǥå̤˾񤹤
    APIˤĴ뤳ȤǽǤ


4.3 ߻Υåλ

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

  ڥѥ᡼
      SIZE   intstksz     ߻ΥåΥ
      VP     intstk       ߻Υå
      VP     intsp        ߻νåݥ

  ڵǽ
      ߤȯ硢åϳѥåڤؤޤ
      APIǤϳ߻ڤؤ륹åꤷޤ
      KERNEL_INT_STK  KERNEL_INT_SP ƱˤѤǤɤ餫
    ѤƻԤޤ
      KERNEL_INT_STK Ǥϡintstk ˻ꤵ줿ɥ쥹顢intstksz ǻ
    줿ʬΥΰ߻Υå˳Ƥޤ
      intstk  NULL ꤷ硢intstksz ǻꤵ줿򥳥ե
    졼ưŪ˳ݤޤ
      KERNEL_INT_SP Ǥϡintsp ˳ȯΥåݥͤľܻ
    Ǥޤ

  ­
      ѤΥåݥ󥿽ͤ _kernel_int_isp ̾Τޤ
    ̾ưΥȥåץ롼¹ԻΥåȳѤΥå
    ͭǤ١ȥåץ롼ˤơ_kernel_int_sp 򻲾ȤѤ
    ȤǽǤ


4.4 ƥåμλ

  API
      KERNEL_TIM_TIC(UW nume, UW deno);

  ڥѥ᡼
      UW      nume        ƥåμʬ
      UW      deno        ƥåμʬ

  ڵǽ
      isig_tim ˤƥͥ˶뤹륿ƥåμꤷޤ
      㤨С 10/1 ꤷ硢isig_tim 򣱲ƤӽФȤ
    ͥΥƥ10ʤߤޤ
      դ 1/3 ʤɤꤷˤϡisig_tim  3ƤӽФƽ
    ƥ1ʤߤޤ
      ꤷʤǥեȤ 1/1 Ȥʤޤ

  ­
      㤨  3.333... ms Υ󥿡Х륿ޤˤơisig_tim 
    ƤӽФƥñ̻֤ ms 줷ʤɤ 10/3 
    ꤹСisig_tim  ƤӽФȤˡ3, 3, 4, 3, 3, 3, 4...
    Ȥä3 isig_tim θƤӽФǡƥ郎 10 ʤ
    褦ˤʤޤ


4.5 ֹϰϤλ

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

  ڥѥ᡼
      INTNO   minintno    ֹκǾ
      INTNO   maxintno    ֹκ

  ڵǽ
      ֹκͤȺǾͤꤷޤ
      ץåΥӥˤѤǤϰϤۤʤäꡢ
    ӤȤƻȤϰϤ硢APIϰϤꤷߴơ֥
    ̤뤳ȤǽȤʤޤ

  ­
     ץåˤäƤϡȾץå㳰ꥻåȤʤɤ
    ƤƤꡢֹ椬Ⱦֹ椫Ϥޤ뤳Ȥ
    Τ⤢١ǾͤǤ褦ˤʤäƤޤ
      ꤷϰϤʬߴơ֥ޤ
    ǡץåǤƤƤѤʤϰϤ򳰤ʤɤ
    κ︺ԤȤǽǤ


4.6 ֥ȤκIDλ

  API
      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);

  ڥѥ᡼
      ID      maxtskid    IDκ
      ID      maxsemid    ޥեIDκ
      ID      maxflgid    ե饰IDκ
      ID      maxdtqid    ǡ塼IDκ
      ID      maxmbxid    ᡼ܥåIDκ
      ID      maxmbfid    åХåեIDκ
      ID      maxmpfid    ĹסIDκ
      ID      maxcycid    ϥɥIDκ
      ID      maxisrid    ߥӥ롼IDκ

  ڵǽ
      ƥ֥ȤIDκͤꤷޤ
      ꤷʤǥեȤǥե졼
    ֥ȤѤƤIDֹˤʤޤ

  ­
      cre_tsk  cre_sem ȤäưŪ˥֥Ȥ
    硢ǻꤷϰϤĶIDѽޤ
      ѤIDϰϤŬڤϰϤꤹ뤳ȤǡID
    ͭѤ뤳ȤǽǤ
      ʤܵǽID֤ͽ󤹤ǤΤǡ¹Ի˥꤬
    ­Ƥ acre_xxx  cre_xxx μ¹Ի E_NOMEM 
    ֤礬ޤ


4.8 ֥ȤID֤ͽ

  API
      KERNEL_RSV_TSKID(ID tskidno);
      KERNEL_RSV_SEMID(ID semidno);
      KERNEL_RSV_FLGID(ID flgidno);
      KERNEL_RSV_DTQID(ID dtqidno);
      KERNEL_RSV_MBXID(ID mbxidno);
      KERNEL_RSV_MBFID(ID mbfidno);
      KERNEL_RSV_MPFID(ID mpfidno);
      KERNEL_RSV_CYCID(ID cycidno);

  ڥѥ᡼
      ID      tskidno    ͽ󤹤륿ID
      ID      semidno    ͽ󤹤륻ޥեID
      ID      flgidno    ͽ󤹤륤٥ȥե饰ID
      ID      dtqidno    ͽ󤹤ǡ塼ID
      ID      mbxidno    ͽ󤹤᡼ܥåID
      ID      mbfidno    ͽ󤹤åХåեID
      ID      mpfidno    ͽ󤹤סID
      ID      cycidno    ͽ󤹤ϥɥID

  ڵǽ
      ¹Ի acre_xxx  cre_xxx ǥ֥Ȥ٤ID֤
    ͽ󤷤ޤλ꤬ȡŪʬ˲ä xxxidno Ĥ
    ID֤ݤޤ

  ­
  
      Ūˤ KERNEL_MAX_XXXIDƱӤAPIǤIDκͤǤ
    ʤͽ(=ŪʬѲǽID)ꤹۤʤ
    ޤޤAPIʣ꤬졢ºݤͽ󤵤륪֥
    ϻꤵ줿ͽ¤Ȥʤޤ
      KERNEL_MAX_XXXIDȤ¾ŪʴطˤޤξƱ˻Ѥ뤳
    ȤϽޤ
      ʤܵǽ KERNEL_MAX_XXXID ƱͤID֤ͽ󤹤
    ǤΤǡ¹Ի˥꤬­Ƥ acre_xxx  cre_xxx 
    ¹Ի E_NOMEM ֤礬ޤ



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