------------------------------------------------------------------------------
  HOS-V4                                                                      
    vZbTڐAp                                                    
                                                                              
                                       Copyright (C) 1998-2002 by Project HOS 
                                       http://sourceforge.jp/projects/hos/    
------------------------------------------------------------------------------


1. Tv
  HOS-V4 ̖{̂̓vZbTւ̈ˑrAɗ ANSI-C ɂ̂ƂāA
CRpCŃRpCł邱ƂړIƂďĂ܂B
  ŁAۂ HOS-V4 𓮍삳ׂɂ́AvZbTLSIɈˑ
LqKv܂B
  {ɂ HOS-V4 ۂ̃vZbTœׂɕKvȏLڂ܂B


2. vZbTۉR|[lg

2.1 Tv

  vZbTɈˑ镔AzׂɃJ[l̓wb_t@C
 hospac.h ǂݍŃRpC܂B
  hospac.h ̓vZbTɗpӂARpC̃CN[hpX
w؂ւ邱ƂŐ䂳܂B
  J[lp֐͈ȉ̒ʂłB

  hospac_ini_sys   
  hospac_dis_int   荞݋֎~
  hospac_ena_int   荞݋
  hospac_cre_ctx   sReLXg쐬
  hospac_swi_ctx   sReLXg؂ւ
  hospac_set_tex   Osݒ
  hospac_idle      ACh

  ̊֐̓RpCɉׂɃ}N𗘗p鎖
\łB
  ܂Ahospac.h ł typedef ɂ T_HOSPAC_CTXINF 錾
ĂKv܂B
  ̓^XN̎sԂۑof[^^ƂĒ`ĂB
J[l T_HOSPAC_CTXINF ̒gɂĂ͈؊֗^܂BKv
f[^łi[邱Ƃo܂B
  ʏ̓X^bN|C^Aޔ̕KvȃWX^p̕ϐL
\̂ɂȂ邩Ǝv܂B


2.2 

  J[lN hospac_ini_sys Ă΂܂BvZbTŗL̏
Kv΂ōsĂB
  KvȂ #define  hospac_ini_sys() ɐ錾Ă\܂B


2.3 荞ݐ

  hospac_ena_intAhospac_dis_int Ă΂ꂽۂ͊荞݂^֎~
ĂB
  CCAZuȂǗpłꍇ̓}N錾ł
܂񂪁ACCAZu𗘗pۂ͗p郌WX^
Cꕔ󂳂Ȃ悤An̎dlǂǂōsĂB


2.4 ReLXg

  ۂ̃^XNReLXg쐬ׂɃJ[l hospac_cre_ctx
Ăяo܂B
  
  void hospac_cre_ctx(
        T_HOSPAC_CTXINF *pk_ctxinf,  /* ReLXgi[̐擪Ԓn */
        VP_INT          exinf,       /* N */
        FP              task,        /* NԒn */
        SIZE            stksz,       /* X^bNTCY */
        VP              stk          /* X^bN擪Ԓn */
      );

  Ahospac_swi_ctx Ŏw肳ꂽꍇɁAtask   exinf Ƃ
Ăяo悤ɃReLXg쐬ĂB
  taskŎw肷֐̃AhX

  void task(VP_INT exinf);

  Œ``łB


   hospac_swi_ctx ̐錾܂B

  void hospac_swi_ctx(
        T_HOSPAC_CTXINF *pk_pre_ctxinf,  /* ݂̃ReLXg̕ۑ */
        T_HOSPAC_CTXINF *pk_nxt_ctxinf   /* ؂ւ̃ReLXg */
       );

  hospac_swi_ctx ĂяoƁA݂̎sԂ pk_pre_ctxinf 
ۑĂB
  ̌Apk_nxt_ctxinf ɕۑĂsԂĊJ悤
ĂB


2.5 O

  J[l͗Os߂ hospac_set_tex Ăяo܂B
  pk_ctxinf Ŏw肳ꂽReLXgA hospac_swi_ctx
Ő؂ւꂽۂ exp Ŏw肳ꂽ֐ rasptn Ƃ
sł悤ɐݒ肷Kv܂B
  ܂AO烊^[ƁAIɌ̊֐ɖ߂悤
ĂB


2.6 ACh

  s^XNꍇ J[l
  
  for ( ; ; )
  {
      hospac_idle();
  }
  
  s܂BvZbTɂẮAACh HALT Ȃǂ
d͂𗎂ƂȂǂ̏sƂ\łB
  ɂ̂悤ȋ@\sv̏ꍇ́A}Nō폜邱Ƃ\łB




3. 荞ݏ

3.1 荞݃nh

  荞ݔɌĂяoKv̂J[l֐͈ȉ̒ʂłB

  void kernel_sta_int(void);        /* 荞ݏ̊Jn */
  void kernel_end_int(void);	    /* 荞ݏ̏I */
  void kernel_exe_int(INTNO intno); /* 荞ݏ̎s */

  񊄂荞ݎɍsׂȉɎ܂B

  (1) 荞ݗpX^bNɓւ
  (2) kernel_sta_int ֐Ăяo
  (3) kernel_exe_int ֐Ăяo
  (4) kernel_end_int ֐Ăяo
  (5) 荞݃nh畜A

  ŁA(1)̊荞ݗpX^bN̈̓RtBM[^[ɂ

  const VP kernel_int_sp;

  ̌`Ő錾Ă|C^ϐɊi[Ă܂̂
po܂B|C^AhXlGNX|[gĂ
ł͂ȂA|C^AhXi[ꂽ|C^ϐ̃AhX
GNX|[gĂ_ɒӂĂB

  ɁA(2)̊֐ĂяoŁAJ[l̏ԕϐA^XN
sɐ؂ւ܂B
  ܂Akernel_sta_int ֐̓ hospac_ena_int() ֐Ă΂A
d荞݂܂B
  t kernel_sta_int ֐Ăяo܂ł͊荞݋֎~Ԃۂ
Kv܂B

  Ad荞݂Ȃꍇ́AtOϐȂǂ
ʓrpӂ hospac_ena_int() Ă΂Ă荞݂
悤Ƀ}XNĂB

  (3)̊֐ĂяoŁAۂ ATT_ISR Ȃǂœo^荞
T[rX[`Ăяo܂B荞ݔԍƂ
ĂяoĂB
  荞݃Rg[[ɂāAKvɉ (3) ̑O
荞݂̊JnAȈsĂB
  Ń\tgEFAIɊ荞݃}XNݒ肵ăx荞
邱Ƃ\łB

  Ō (4) ̊֐̒ŕKvɉĒxfBXpb`
܂B
  A(4)̒iK܂łɂ́AvZbT[h͒ʏ̃^XN
sԂɂĂKv܂B
  Vv CPU(Z80  H8 Ȃ) ̏ꍇ͖肠܂񂪁A
荞ݐp̎s[hvZbT(386  ARM Ȃ)
ꍇ͒ӂKvłB

  ܂Ad荞݂ɑΉꍇ́Ad荞ݎ͒P
kernel_exe_int ֐Ăяô݂ƂȂ܂B
  d荞ݎ kernel_sta_int  kernel_end_int Ă
oȂŉB


3.1 荞ݐ

  ITROÑT[rXR[ƂāAena_intAdis_intAchg_ixxA
get_ixx Ȃǂ܂A͊荞݃Rg[[
ˑ@\ł邽߁AJ[lł͎Ă܂B
  Kvł΃[U[ŗpӂĂB



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