------------------------------------------------------------------------------
  HOS-V4                                                                      
    ¾ץåܿѻ                                                    
                                                                              
                                       Copyright (C) 1998-2002 by Project HOS 
                                       http://sourceforge.jp/projects/hos/    
------------------------------------------------------------------------------


1. 
  HOS-V4 Τϥץåؤΰ¸Ӥ ANSI-C ˤΤäȤäơ
¿CѥǥѥǤ뤳ȤŪȤƽ񤫤Ƥޤ
  ǡºݤ HOS-V4 ư٤ˤϡץåLSI˰¸
ʬ򵭽Ҥɬפޤ
  ܻˤ HOS-V4 ºݤΥץåư٤ɬפʾ򵭺ܤޤ


2. ץåݲݡͥ

2.1 

  ץå˰¸ʬ򡢵ۼ٤˥ͥϥإåե
 hospac.h ɤ߹ǥѥ뤵ޤ
  hospac.h ϥץåѰդ졢ѥΥ󥯥롼ɥѥ
ڤؤ뤳Ȥ椵ޤ
  ͥ뤬Ѥؿϰʲ̤Ǥ

  hospac_ini_sys   
  hospac_dis_int   ߶ػ
  hospac_ena_int   ߵ
  hospac_cre_ctx   ¹ԥƥȺ
  hospac_swi_ctx   ¹ԥƥڤؤ
  hospac_set_tex   㳰¹
  hospac_idle      ɥ

  δؿϥѥ˲褵٤˥ޥѤ
ǽǤ
  ޤhospac.h Ǥ typedef ˤä T_HOSPAC_CTXINF 
Ƥɬפޤ
  ϥμ¹Ծ֤¸ǡȤƤ
ͥ T_HOSPAC_CTXINF ȤˤĤƤϰڴͿޤɬפ
ǡ򤤤ĤǤǼ뤳Ȥޤ
  ̾ϥåݥ󥿤䡢ɬפʥ쥸Ѥѿͭ
¤Τˤʤ뤫Ȼפޤ


2.2 

  ͥ뵯ư hospac_ini_sys ƤФޤץåͭν
ɬפФǹԤäƤ
  ɬפʤ #define  hospac_ini_sys() Ƥ⹽ޤ


2.3 

  hospac_ena_inthospac_dis_int ƤФ줿ݤϳߤġػ
Ƥ
  饤󥢥֥ʤѤǤϥޥǤ
ޤ󤬡饤󥢥֥ѤݤѤ쥸
¾Cʬʤ褦ϤλͤɤɤǹԤäƤ


2.4 ƥ

  ºݤΥƥȤ٤˥ͥ hospac_cre_ctx
ƤӽФޤ
  
  void hospac_cre_ctx(
        T_HOSPAC_CTXINF *pk_ctxinf,  /* ƥȾǼƬ */
        VP_INT          exinf,       /* ư */
        FP              task,        /* ư */
        SIZE            stksz,       /* å */
        VP              stk          /* åƬ */
      );

  hospac_swi_ctx ǻꤵ줿ˡtask   exinf Ȥ
ƤӽФ褦˥ƥȤƤ
  taskǻꤹؿΥɥ쥹

  void task(VP_INT exinf);

  Ǥ


   hospac_swi_ctx 򼨤ޤ

  void hospac_swi_ctx(
        T_HOSPAC_CTXINF *pk_pre_ctxinf,  /* ߤΥƥȤ¸ */
        T_HOSPAC_CTXINF *pk_nxt_ctxinf   /* ڤؤΥƥ */
       );

  hospac_swi_ctx ƤӽФȡߤμ¹Ծ֤ pk_pre_ctxinf 
¸Ƥ
  θ塢pk_nxt_ctxinf ¸Ƥ¹Ծ֤Ƴ褦
Ƥ


2.5 㳰

  ͥ㳰Ԥ hospac_set_tex ƤӽФޤ
  pk_ctxinf ǻꤵ줿ƥȤ򡢼 hospac_swi_ctx
ڤؤ줿ݤ exp ǻꤵ줿ؿ rasptn Ȥ
¹ԤǤ褦ꤹɬפޤ
  ޤ㳰꥿󤹤ȡưŪ˸δؿ褦
Ƥ


2.6 ɥ

  ¹ԥ̵ ͥ
  
  for ( ; ; )
  {
      hospac_idle();
  }
  
  ¹ԤޤץåˤäƤϡɥ HALT ʤɤ
ϤȤʤɤνԤȤǽǤ
  äˤΤ褦ʵǽפξϡޥǺ뤳ȤǽǤ




3. ߽

3.1 ߥϥɥ

  ȯ˸ƤӽФɬפΤ륫ͥؿϰʲ̤Ǥ

  void kernel_sta_int(void);        /* ߽γ */
  void kernel_end_int(void);	    /* ߽νλ */
  void kernel_exe_int(INTNO intno); /* ߽μ¹ */

  ߻˹Ԥ٤ʲ˼ޤ

  (1) ѥåؤ
  (2) kernel_sta_int ؿƤӽФ
  (3) kernel_exe_int ؿƤӽФ
  (4) kernel_end_int ؿƤӽФ
  (5) ߥϥɥ餫

  ǡ(1)γѥåΰϥե졼ˤä

  const VP kernel_int_sp;

  ηƤݥѿ˳ǼƤޤΤ
ѽޤݥ󥿥ɥ쥹ͤݡȤƤ
ǤϤʤݥ󥿥ɥ쥹Ǽ줿ݥѿΥɥ쥹
ݡȤƤդƤ

  ˡ(2)δؿƤӽФǡͥξѿ󥿥
¹ڤؤޤ
  ޤkernel_sta_int ؿ hospac_ena_int() ؿƤФ졢
¿ųߤĤޤ
  դ kernel_sta_int ؿƤӽФޤǤϳ߶ػ߾֤ݤ
ɬפޤ

  ⤷¿ųߤĤʤϡե饰ѿʤɤ
Ѱդ hospac_ena_int() ƤФƤߤĤ
褦˥ޥƤ

  (3)δؿƤӽФǡºݤ ATT_ISR ʤɤϿ
ӥ롼󤬸ƤӽФޤֹȤ
ƤӽФƤ
  ߥȥ顼ˤäơɬפ˱ (3) 
ߤγϡλνԤäƤ
  ǥեȥŪ˳ߥޥꤷƥ٥
¸뤳ȤǽǤ

  Ǹ (4) δؿɬפ˱ٱǥѥå
ȯޤ
  ¨(4)ʳޤǤˤϡץå⡼ɤ̾Υ
Ʊ¹Ծ֤ˤƤɬפޤ
  ץ CPU(Z80  H8 ʤ) ξꤢޤ󤬡
Ѥμ¹ԥ⡼ɤץå(386  ARM ʤ)
դɬפǤ

  ޤ¿ųߤбϡ¿ų߻ñ
kernel_exe_int ؿƤӽФΤߤȤʤޤ
  ¿ų߻ kernel_sta_int  kernel_end_int Ƥ
Фʤǲ


3.1 

  ITRONΥӥȤơena_intdis_intchg_ixx
get_ixx ʤɤޤϳߥȥ顼
¸뵡ǽǤ뤿ᡢͥǤϼƤޤ
  ɬפǤХ桼¦ѰդƤ



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