-------------------------------------------------------------------------------
 Hyper Oparating System V3 for Hitachi H8                                      
 ե󥹥ޥ˥奢                                                        
                                                                               
                                        Copyright (C) 1998-2002 by Project HOS 
-------------------------------------------------------------------------------



  Υޥ˥奢Ǥ Hyper Oparating System V3 for Hitachi H8 (ʲ HOS-H8)
Ѥޤ



ܼ

  裱  HOS-H8 γ
  裲  饤֥Υᥤˡ
  裳  ե졼λȤ
  裴  ץΥᥤˡ
  Ͽ  ռ
  Ͽ  ʸ




-------------------------------------------------------------------------------
 裱  HOS-H8 γ
-------------------------------------------------------------------------------


  HOS-H8 ϦITRON3.0ͤ˽򤷤 Ω H8/300H ꡼ѤΥꥢ륿
ϣӤǤ˸Ŀͥ٥ǤΥۥӡŪȤʪǣңϣͲ륷ƥ
󥯤ǴñȤ߹ळȤޤѥͭ²ҽŻ
̾¤䤵Ƥåѥȥ֥ȤƤޤ餯
makefike  ѤΥեΩΣåѥ
ѤǽȻפޤ



1.1 ƥॳ

  ³ǽ٥ӤޤǤȰΥ٥šäΥƥॳ򥵥ݡ
Ƥޤ
  ݡȤƤ륷ƥॳϰʲ̤ꡣ


  sta_tsk  ext_tsk  ter_tsk  dis_dsp  ena_dsp  chg_pri  rot_rdq  rel_wai
  get_tid  ref_tsk

°Ʊǽ
  sus_tsk  rsm_tsk  frsm_tsk slp_tsk  wup_tsk  can_wup

Ʊ̿ǽ
  sig_sem  wai_sem  preq_sem ref_sem  set_flg  clr_flg  wai_flg  pol_flg
  ref_flg  snd_msg  rcv_msg  prcv_msg ref_mbx

ߴǽ
  ret_int  loc_cpu  unl_cpu

ִǽ
  set_tim  get_tim  dly_tsk

ס
  get_blf  pget_blf rel_blf  ref_mpf

ƥ
  get_ver  ref_sys


  ƥ֥ȤŪޤե졼ѰդƤ
ޤΤǴñ뤳ȤǽǤ



1.2 ڥå

  祿           255
  SUSPENDͥȿ    65535
  ׵ͥȿ   65535
  祻ޥե         255
  祻ޥե   65535
  祤٥ȥե饰   255
  ٥ȥե饰μ   16 bit
  ᥤܥå   255




-------------------------------------------------------------------------------
 裲  եΥᥤˡ
-------------------------------------------------------------------------------


  HOS-H8 ϥۤޤΤѤ뤿ˤϤޤᥤ
֥ȥեɬפޤ䤵륳ѥ
ˤϥ饤֥ꥢ󤬤ޤΤǥ饤֥եϺޤ󡣸Ψϰ
ΤǤĤΥ֥ȥեˤ٤ƤޤȤƤޤޤξϤǤ
Υᥤˡޤ



2.1 ɬפʥ֥顢ѥ

  HOS-H8 򥳥ѥ뤹뤿ˤͭ²ҽŻ̾䤵Ƥ
AKI-H8ѤΣåѥȥ֥餬ɬפǤ°ޥ˥奢˱ä
򥻥åȥåפƤƲޤ make ɬפȤʤޤ
֥롦ѥҡפۤƤLSI C-86 Ver.3.30
ǡ° make ѤޤꤷƤޤ褦ꤤ
ޤ

  ʸϥ֥餪ӥѥΥǥ쥯ȥ˥ѥ̤ꡢ
ǽʾ֤ˤʤäƤ뤳Ȥ˿ʤޤ



2.2 إåեΥԡ

  ޤۥեष˺ INCLUDE Ȥǥ쥯ȥ
ˤե򥳥ѥѤǥ쥯ȥ˥ԡޤ
إåեϥΥ󥯻ˤѤޤ夫HOS-H8
ץꥱݤˤ⥤󥯥롼ɤɬפޤ



2.3 ᥤեʤɤ

  ˽褿 src Ȥǥ쥯ȥ makefile ޤإå
եΥѥʤɰĶ˰¸ܤޤѤ
Ķ˹礻ƽ񤭴Ʋ



2.4 饤֥Υᥤ

  Ƥ꤬ä餤褤ᥤǤ src  makefile 
ޤΤǡΥǥ쥯ȥ˰ư make ¹ԤƤ顼
̵ hos_c.obj  hos_asm.obj Ȥ֥ȥե뤬
ϤǤ饤֥ꥢ󤬤Х饤֥ȤʤΤǤ
䤵Ƥʤ褦ǤΤǡøʬȥ֥ʬǤ
춯ˣĤˤޤȤƤޤ
  HOS-H8 λѤ˺ݤƤΣĤΥ֥Ȥ󥯤ޤ



2.3 ե졼Υԡ

  config Ȥǥ쥯ȥ hcfgh8h.c Ȥե졼Υ
 hcfgh8h.exe Ȥ hcfgh8h.c  Borland-C++ 5.01J ǥѥ뤷ʪ
ѰդƤޤץꥱ hcfgh8h.exe ѤޤΤǡ
ѥ̤äǥ쥯ȥ˥ԡƤƤ

   HOS-H8 Ѥץꥱޤ




-------------------------------------------------------------------------------
 裳 ե졼λȤ
-------------------------------------------------------------------------------


  ξϤǤ HOS-H8h Υե졼λȤޤ



3.1 ե졼Ȥ

  HOS-H8 ǤϥϤᡢޥե٥ȥե饰ʤɤŪ
Τᤳ򵭽Ҥץ񤭥ѥ롢󥯤Ԥʤɬפ
ޤΥץ󵭽ҤΤݤǤ뤿ᡢɬפ
ܤΤߤ񤤤եѰդե졼ȤΥե뤫
ɬפʥޤ



3.2 ե졼εǽ

  ե졼ϼεǽޤ

  ͥ٤λ
  ߥϥɥϿ
  åסϿ
  Ͽ
  ޥեϿ
  ٥ȥե饰Ͽ
  ᥤܥåϿ



3.3 ե졼ư

  ե졼ϥ桼Ѱդ "hos.cfg" Ȥեɤ߹
ǲϤ"cfg_c.c""cfg_asm.asm""defid.h"ȤĤΥեϤ
ޤ桼ϳƥץ "defid.h" 򥤥󥯥롼ɤƻȤᥤ
ˤ "cfg_c.c""cfg_asm.asm" 򤽤줾쥳ѥ뤷ƥ󥯤ɬפ
ޤ

СǤϥե̾Ǥ



3.4 ե졼եν

  ե졼ե("hos.cfg")νޤ

եˤϣԤˣ̿ΤߤȤޤޤ̿ϰԤƽ񤤤
ޤɬפޤ
  ѤǤ̿ʲ˵ޤ

  INCLUDE_C     "cfg_c.c" ɤ߹եλ
  USE_TIMER     ִǽѤ뤳Ȥ
  NOUSE_TIMER   ִǽѤʤȤ
  MAX_TSKPRI    祿ͥ٤
  SYSTEM_STACK  ƥѤΥåݥ󥿤λ
  CRE_SPL       åסκ
  CRE_TSK       Ͽ
  CRE_TSKSP     åסȤϿ
  CRE_SEM       ޥեϿ
  CRE_FLG       ٥ȥե饰Ͽ
  CRE_MBX       ᥤܥåϿ
  CRE_MPF       ĹסϿ
  DEF_INT       ߥϥɥϿ


  Ūϲ˽褿 sample Ȥǥ쥯ȥˤޤΤǻȤ
Ǥϸġ̿ñޤ


INCLUDE_C  øեѥ󥯥롼ɥե
  ʸˡ INCLUDE_C("filename.h")

  "cfg_c.c" ǥ󥯥롼ɤեꤷޤ"cfg_c.c" Ǥϥ
ϻδؿʤɤѤޤΤǡإåեΥ
롼ɤɬפǤ̿ˤƻꤷƤ
  ʤ<ITRON.h> ϼưŪƬɤ߹ޤޤ


USE_TIMER  
  ʸˡ USE_TIMER (ǥե)

  ִǽȤȤޤºݤ˵ǽȤˤŪ
__time_handler ƤӽФ褦ˤɬפޤ
  ִѤΥƥॳƤӽФʤ USE_TIMER ꤷƤ
̵ΤǥǥեȤȤʤäƤޤ


NOUSE_TIMER  ̤
  ʸˡ NOUSE_TIMER

  ִǽȤʤȤޤִѤΥݤʤ
ʤޤ


MAX_TSKPRI  祿ͥٻ
  ʸˡ MAX_TSKPRI(maxtskpri)

  maxtskpri : ͥ

  ͥ٤ꤷޤϰϤΥ顼åϹԤʤäƤʤΤǻꤹ
ݤϼºݤ˻ȤäƤͥ٤ɤǧƤ


SYSTEM_STACK  ƥѥåɥ쥹
  ʸˡ SYSTEM_STACK(stackadr)

  stackadr  : åݥ󥿤Υɥ쥹

  ȥå׻󥿥ǥƥबѤ륹åݥ󥿤ν
ꤷޤǥեȤ 0xfff10 Ǥ̾RAMκǸꤷޤ


CRE_SPL  åסκ
  ʸˡ CRE_SPL(ID_SPL, splcnt, splsz)

  ID_SPL    : åסɣ̾
  splcnt    : åθĿ
  splsz     : åΥ

  ֤ǶͭǤ륹åޤåסѤ
 sta_tsk ˤǺåס뤫饹åΰ
Ƥޤ
  ITRON3.0λͳȼǤ


CRE_TSK  
  ʸˡ CRE_TASK(ID_TASK, exinf, func, itskpri, stacksize)

  ID_TASK   : ɣ̾
  exinf     : ĥ
  func      : ϴؿ̾  void func(int stcd)
  itskpri   : ͥٽ 18
  stacksize : å

  ɣĤϼưŪ˿ "defid.h" 

  #define ID_TASK 1

  ȤäǽϤޤιܤ˿ͤꤹľIDֹ
ꤹ뤳Ȥޤ


CRE_TSKSP  
  ʸˡ CRE_TSKSP(ID_TASK, exinf, func, itskpri, splid)

  ID_TASK   : ɣ̾
  exinf     : ĥ
  func      : ϴؿ̾  void func(int stcd)
  itskpri   : ͥٽ 18
  splid     : åסΣɣ

  DOMANT֤ǤʤʤȤ˻ꤵ줿åס뤫饹å
ƤޤƤ륹å̵ϡ֥åԤפȤ
HOSȼξ֤Ȥʤޤ
  εˤꡢƱ˥ǥ֤ˤʤ륿οåѰ
ƶͭ뤳Ȥޤ


CRE_SEM  ޥե
  ʸˡ CRE_SEM(ID_SEM, exinf, isemcnt, maxsem)

  ID_SEM    : ޥեɣ̾
  exinf     : ĥ
  isemcnt   : ޥեν
  maxsem    : ޥեκ


CRE_FLG  ٥ȥե饰
  ʸˡ CRE_SEM(ID_FLG, exinf, iflgptn)

  ID_FLG    : ٥ȥե饰ɣ̾
  exinf     : ĥ
  iflgptn   : ٥ȥե饰


CRE_MBX  ᥤܥå
  ʸˡ CRE_MBX(ID_MBX, exinf, bufsize)

  ID_MBX    : ᥤܥåɣ̾
  exinf     : ĥ
  bufcnt    : ХåեΥ


CRE_MPF  Ĺס
  ʸˡ CRE_MPF(ID_MPF, exinf, mpfcnt, mpfsz)

  ID_MBX    : ᥤܥåɣ̾
  exinf     : ĥ
  mpfcnt    : ֥å
  mpfsz     : ֥åΥ(Byte) ʾǤ뤳


DEF_INT  ߥϥɥ
  ʸˡ DEF_INT(intnum, func)

  intnum    : ֹ 160
  func      : ߥϥɥʣøδؿ

  쥸򡢥åڤؤ void func(void) ƤФޤ
  ʤ¿ųߤˤбƤޤΤǳߥ롼ǳߤ
ĤƤ⤫ޤޤ



3.5 

  "cfg_c.c" Ÿѥ᡼ΤۤȤɤϿͤȤƤǤϤʤʸ
ƤΤޤŸޤΤᥨ顼åǽϤϤۤȤɤޤ󤬡
ϤꡢINCLUDE_C ̿ɤ߹إåեΥޥ
뤳Ȥޤ




-------------------------------------------------------------------------------
 裴  ץκˡ                                                  
-------------------------------------------------------------------------------


  ξϤǤϼºݤ HOS-H8 Ȥäץˡޤ



4.1 ȥåץ롼

  ̤ΣøΥץ main ؿϤޤޤHOS-H8 Ǥ
  start_up ȤؿϤޤޤ

  void start_up(void)

  ȤؿɬѰդƤ

  Υȥåץ롼󥿥Ȥư졢ߤϵĤ줿
֤ǸƤӽФޤ̤ϤѿνǥХԤ
򥹥ȤꤷޤڻȤ鷺ߤǽʤɤȤ
̤ mian ؿȤƻȤޤ
  ꥿˥ǥѥåϤޤ


4.2 ִǽ

  ִǽȤˤ __time_handler ȤϥɥŪ˸ƤӽФ
ɬפޤ󥿥Ū˸Ƥ֤󥿡Х륿ޤꤷ
ߥɥ쥹 __time_handler ꤷƤ
  ʤƤӽФȤ˿ʤ֤ꤹ vset_tmi(timint) Ȥޥ
ѰդƤޤǥեȤǣꤵƤޤ vset_tim(5) Ƥ
 5msec ֳ֤ǸƤӽФƤ֤ 1msec ñ̤Ȥʤޤ
  ӶȤǤ2.5msecñ̤ǸƤӽФ vset_tim(2)vset_tim(3) ߤ˸Ƥ
ʤɤȤȤޤä msec ñ̤ǤɬפѤƤ



4.3 ᥤ

  ᥤκݤˤϺΤۤ˥ե졼Ϥ cfg_c.c
 cfg_asm.asm Σ򤽤줾쥳ѥ뤹ɬפޤλ
cfg_asm.asm  cfg_asm.obj ȥåץ롼ȤʤޤΤ
Ƭˤƥ󥯤ԤäƲ




-------------------------------------------------------------------------------
 裵  ץΥᥤ                                                      
-------------------------------------------------------------------------------


5.1 ץγ

  ñʥץѰդƤޤCSI(ͥ룱ˤѤƣУä̿
ΤǤϣУääʸʸ餷ƥХå
ϻϤΣô֡ä˸߻УäɽȤΤǤ


5.2 ᥤ

  ץϲˤǤ sample Ȥǥ쥯ȥŸޤޤ
 hos_c.obj  hos_asm.obj 򤳤Υǥ쥯ȥ˥ԡƲ
   makefile ΥѥλʤɤѤδĶ˹礻ƽ񤭴Ʋ
  ޤlnk.sub Ȥ󥯻Υ֥ե깽ʤɤ˱ƽ
Ƥ


5.3 ᥤ

  make ¹Ԥ sample.mot Ȥȥӥե뤬
ϤǤ
  žưǤ




-------------------------------------------------------------------------------
  Ͽ  ռ
-------------------------------------------------------------------------------

  TRONץȤȤФ餷Τ߽ФƤޤؤ
¼ITRON礭ʹ׸򤵤 MLǤ⤪äˤʤޤ˭Ѳʳؤ
Ĺǿͤλˤ褯ä ITRON-Club ᥤ󥰥ꥹ
˸鿽夲ޤ
  gccѤ˰ܿХݤ⤿ĺ޼ᡢĤǼĤ
ո򲼤ᡢShunjiᡢ̿ŪʥХͤùǤä
k-sasakiᡢĤ⵮Ťʤո򲼤 terukᡢpenᡢterukᡢ¾
θȤޤط̵Τ˳ȯĶ󶡲ä彣
ؤι´ȸ带HOSȤäƤƤξ
ڤꤷƸ鿽夲ޤ




-------------------------------------------------------------------------------
 Ͽ  ʸ
-------------------------------------------------------------------------------

  Υץκˤ껲ͤȤʸʲ˵ޤ
֦ITRON3.0ɸϥɥ֥åפϼ긵֤뤳Ȥ򤪴ᤤޤ
 http://tron.um.u-tokyo.ac.jp/TRON/ITRON/home-j.html ѸǤ
 ɤ褦Ǥ


  ITRON3.0ɸϥɥ֥å  
     ƽ ¼    ѡʥǥ
     ISBN4-89362-154-8  \4,000+

  ITRONITRONɸϥɥ֥å
     ƽ ¼    ѡʥǥ
     ISBN4-89362-079-7  \4,800+

  TRONɸ६ɥ֥å2
     ƽ ¼    ѡʥǥ
     ISBN4-89362-133-5  \3,500+

  TRONWARE Vol.3 ꥢ륿ϣ ITRON
     ѡʥǥ
     ISBN4-89362-071-1  \1,204+

  TRONWARE Vol.5 󥰥åCPUꥢ륿ϣ ITRON
     ѡʥǥ
     ISBN4-89362-076-2  \1,204+




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