
		TOPPERS/FMPͥλͳ

		бС: Release 1.0.2
		бASPͥС : Release 1.4.0
		ǽ: 2009ǯ57

ΥɥȤϡTOPPERS/FMPͥλͳפˤĤ
Ǥ롥TOPPERS/ASPͥФĥѹս濴롥

----------------------------------------------------------------------
 TOPPERS/FMP Kernel
     Toyohashi Open Platform for Embedded Real-Time Systems/
     Flexible MultiProcessor Kernel

 Copyright (C) 2005-2009 by Embedded and Real-Time Systems Laboratory
             Graduate School of Information Science, Nagoya Univ., JAPAN
 
 嵭Ԥϡʲ(1)(4)ξ˸¤ꡤܥեȥ
 ܥեȥѤΤޤࡥʲƱˤѡʣ
 ѡۡʰʲѤȸƤ֡ˤ뤳Ȥ̵ǵ롥
 (1) ܥեȥ򥽡ɤηѤˤϡ嵭
     ɽѾ浪Ӳ̵ݾڵ꤬Τޤޤηǥ
     ˴ޤޤƤ뤳ȡ
 (2) ܥեȥ򡤥饤֥ʤɡ¾Υեȥȯ˻
     ѤǤǺۤˤϡۤȼɥȡ
     ԥޥ˥奢ʤɡˤˡ嵭ɽѾ浪Ӳ
     ̵ݾڵǺܤ뤳ȡ
 (3) ܥեȥ򡤵Ȥ߹ʤɡ¾Υեȥȯ˻
     ѤǤʤǺۤˤϡΤ줫ξ
     ȡ
   (a) ۤȼɥȡѼԥޥ˥奢ʤɡˤˡ嵭
       ɽѾ浪Ӳ̵ݾڵǺܤ뤳ȡ
   (b) ۤη֤̤ˡˤäơTOPPERSץȤ
       𤹤뤳ȡ
 (4) ܥեȥѤˤľŪޤϴŪ뤤ʤ»
     ⡤嵭ԤTOPPERSץȤդ뤳ȡ
     ޤܥեȥΥ桼ޤϥɥ桼Τʤ
     ͳ˴Ťᤫ⡤嵭ԤTOPPERSץȤ
     դ뤳ȡ
 
 ܥեȥϡ̵ݾڤ󶡤ƤΤǤ롥嵭Ԥ
 TOPPERSץȤϡܥեȥ˴ؤơλŪ
 ФŬޤơʤݾڤԤʤޤܥեȥ
 ѤˤľŪޤϴŪʤ»˴ؤƤ⡤
 Ǥʤ
 
 @(#) $Id: fmp_spec.txt 348 2009-08-24 08:10:29Z ertl-honda $
----------------------------------------------------------------------

Ȥʤʸ

[1] ȥ󶨲: ITRON4.0, Ver.4.02.00, 2004ǯ.

[2] ȥ󶨲: ITRON4.0 ݸǽĥʦITRON4.0/PX͡,
	Ver.1.00.00, 2002ǯ.

[3] TOPPERSץ: TOPPERS/JSPͥ 桼ޥ˥奢
	Release 1.4.3б, ǽ: 2007ǯ423.

[4] TOPPERSץ: TOPPERSɸ߽ǥ, ǽ: 2008ǯ
	411.

[5] TOPPERSץ: TOPPERS/ASPͥλͳ
	Release 1.3бǽ: 2008ǯ429

ͤγά

TOPPERS/FMPͥλͤϡTOPPERS/ASPͥФưʲΥޥ
åƥѤγĥǽäΤǤ롥

ʣΥץåΥݡȡ
饹Ƴ
ޥ졼ǽƳ
।٥ȥϥɥޥ졼ǽƳ
ԥåǽƳ
¾ޥץåεǽƳ
ǽλѹ

ʲǤϡTOPPERS/ASPͥФĥѹսˤĤ
롥

ʣץåΥݡ

FMPͥʣΥץåǹƤ륷ƥ򥵥ݡȤ롥
ݡȤץå˾¤ߤʤ

(1)ץåID

ץåIDϡ1Ϣ³ֹץå˳դΤǤꡤ
åꤹɬפ륷ƥॳѤ롥㤨Хޥ졼
APIǤΥץåˤϡֹѤ롥ƥץåΥץ
åIDϡץåINDEX + 1 ͤȤʤ롥ǤϡץåINDEX
ץåIDޥ󶡤롥

(2)ޥץå

ƥ1ĤΥץå򼨤ưȽλ¾Υץ
ȶ̤ư롥ɤΥץåޥץåȤ뤫ϡ
åȰ¸Ƿꤵ롥ޥץåʳΥץå򥹥졼֥ץ
åȸƤ֡

(3) ƥ

ޥץåбͥǤϡƥ֤¿ץå˻
ĤȤˤʤ롥Ūˤϡɥץեˤƥץå
˻ľ֤ϡʲ̤Ǥ롥

  ¹Ծ֤Υ
  ͥư֤ư
  ߥå֤ߥå
  CPUå֤CPUå
  ͥ٥ޥ
  ǥѥåػ߾֤ȥǥѥåľ
  ǥѥåα
  ԥå

(4) ƥȤ˰¸ƹԤ

ƥδϡץå˴륿ȡ
ƥΤǰĤλ֤륰Х륿Τɤ餫򤹤롥

(5) CPU㳰ϥɥ

CPU㳰ϥɥϡץåꤹ롥ե졼ե
ˤCPU㳰ϥɥ(DEF_EXC)εҤϡҤ뤤줫
饹°褦˵Ҥɬפ롥

(6) ߥϥɥ/ӥ롼

ߥϥɥ/ӥ롼Ūˤϡ줫Υץå
Ǽդ褦Ūꤹ롥

(7) 塼

ϡ줫Υץå˳դƤ롥ơץå
ˡΥץå˳դ줿Фơͥ٥١
󥰤Ԥ

(8)ץå٤ƥॳΥݡ

֥ȤоݤȤƥॳϡơƥ
ƤΥ֥ȤоݤȤƼ¹ԤǤ롥

饹Ƴ

(1) 饹

ޥץåб뤿Ѥ륫ͥ륪֥Ȥν򡤥
饹classˤȸƤ֡

饹ϡ̤äͥ륪֥ȤνǤꡤƥ
ˤʣΥ饹Ƥʥץå = 饹ǤϤʤˡ
ͥ륪֥Ȥϡ줫1ĤΥ饹°롥ͥ륪֥
°륯饹ưŪѹ뤳ȤϤǤʤ

饹ϼ°åȰ¸ˤơ饹
롥

  1.ñ̤νդץå
    ץåIDꤹ롥
  2.ñ̤γդǽץå
    ץåIDΥӥåȥѥꤹ
      ʥץåID1ΥץåLSBб)
  3.ͥ륪֥ȤΥȥ֥å־
    ֥å־
    ޥե֥å
    ٥ȥե饰֥å
    ǡ塼֥å
    ͥ٥ǡ塼֥å
    ᡼ܥå֥å
    Ĺ֥å֥å
    ϥɥ֥å
    顼ϥɥ֥å
    ԥå֥å
  4.ͥ륪֥ȤΥȥ֥åʳΥΰʥ
    åǡ塼סХåեΰ־
    å
    ǡ塼ΰ
    ͥ٥ǡ塼ΰ
    Ĺ֡Хåե
    Ĺ֥å֥å

  5.¾δ

饹ϡ1Ϣ³ֹǼ̤롥TCLS_SELFʡ0ˤˤꡤ
ӽФñ̤°ΤƱ饹ꤹ뤳ȤǤ롥

(2) ֥ȤΥ饹

ޥץåбͥǤϡ֥ȤϿŪAPI򡤤
Υ֥Ȥ°륯饹ΰϤߤ˵Ҥ롥

  CLASS(1){
    CRE_TSK(TASK1, { TA_NULL....});
    ...
  }


 ޥ졼ǽ

ϡޥ졼APIƤӽФȤˤꡤץå
γդưŪѹ뤳ȤǽǤꡤޥ졼ȸƤ֡

(1) ޥ졼API

	mig_tsk			Υޥ졼
	mact_tsk		Υޥ졼ȵư
	imact_tsk		Υޥ졼ȵư󥿥ƥȡ

mig_tsk оݥϡդ줿ץåƱΥץ
å˳դ줿¤Ƥ롥

(2) դǽץå

饹γդǽץåˤꡤñ̤ޥ졼
뤳Ȥǽʥץåʳդǽʥץåˤꤹ뤳Ȥ
ǽǤ롥


 ।٥ȥϥɥޥ졼ǽ

륿ξ硤।٥ȥϥɥʼϥɥ顤顼
ϥɥˤΥޥ졼򥵥ݡȤ롥

(1) ।٥ȥϥɥޥ졼API

	msta_cyc		ϥɥΥޥ졼
	msta_alm		顼ϥɥΥޥ졼
	imsta_alm		顼ϥɥΥޥ졼󥿥ƥȡ

APIޥ쥷硼ΤॢȻꥻåȤ롥


ԥåǽ

ץå֤¾浡ǽȤƥԥåǽƳԥ
ϥͥȤƼ뤳ȤϤǤʤ

(1) ԥåAPI

	loc_spn			ԥåμ
	iloc_spn		ԥåμ󥿥ƥȡ
	unl_spn			ԥåβ
	iunl_spn		ԥåβ󥿥ƥȡ
	try_spn			ԥåμʥݡ󥰡
	itry_spn		ԥåμʥݡꥰ󥿥ƥȡ
	ref_spn			ԥåξֻ

(2) ԥå

ԥåȡԥå֤Ȥʤ롥ԥå
ϡΥץåФ볰ߡڤӥڤؤػߤ
롣


 ¾Υޥץåεǽ

ޥץåεǽȤưʲεǽƳ줿

(1) ƥִǽ

	get_pid			ץåIDμ
	iget_pid		ץåIDμ󥿥ƥȡ
	mrot_rdq		̤ͥβž¾ץå
	imrot_rdq		̤ͥβž¾ץå󥿥ƥȡ

(2) ƥ๽ǽ

롼Ƚλ롼򤽤줾쥯饹˽°ʤХ
ʥ롼ȥ饹˽°ʤʥ롼ʬ롥

롼ξ硤ޤޥץåǥХ롼󤬡
¹Ԥ줿塤롼󤬳ƥץåǼ¹Ԥ롥

λ롼ξ硤ޤ뽪λ롼󤬳ƥץåǼ
Ԥ줿塤Х뽪λ롼󤬥ޥץåǼ¹Ԥ롥


ǽλѹ

(1) ter_tsk

оݥϡƱץå˳դƤ륿˸¤
롥оݥȰۤʤץå˳դƤ
ϡE_OBJ顼Ȥʤ롥

ޤƥॳν֤ξ¤ޤʤᡤѤˤäƤϡ
դɬפǤ롥

(2) ref_tsk

prcidˡоݥγդץåIDֹ椬֤롥

(3) get_utm

륿ѤƤˡ¾ΥץåΥƥθ
ͤ򻲾Ȥ뵡ǽѰդƤʤ

(4) CRE_CYC

Х륿ѤƤǡϥɥ°륯
饹γդǽץåƥץåΤߤǤʤ
ˤϡE_RSATR顼Ȥʤ롥

(5) CRE_ALM

Х륿ѤƤǡ륢顼ϥɥ°
륯饹γդǽץåƥץåΤߤǤʤ
ˤϡE_RSATR顼Ȥʤ롥

(6) cfg_int

CFG_INTεҤоݳ׵饤ФϿ줿ߥӥ
롼ʤޤоݳֹбߥϥɥֹФϿ
줿ߥϥɥˤȰۤʤ륯饹ΰϤˤˤϡE_RSATR
顼Ȥʤ롥

(7) def_inh

Ͽߥϥɥ°륯饹νդץåγ
ߤ׵ᤵץåǤʤˤϡE_RSATR顼Ȥʤ롥

(8) def_exc

ϿCPU㳰ϥɥ°륯饹νդץåCPU
㳰ȯץåǤʤˤϡE_RSATR顼Ȥʤ롥

(9) DEF_ICS

󥿥ƥѥåΰϥץå˳ݤɬפ롥
DEF_ICSˤꤹ󥿥ƥѥåΰϡ󥿥
ƥѥåΰ褬°륯饹νդץåѤ롥
ΥץåФƤǤ󥿥ƥѥåΰ褬ꤵ
ƤˤϡE_OBJ顼Ȥʤ롥

(10) ATT_INI

饹°ʤХ롼ϥޥץåǼ¹Ԥ졤
饹°롼ϤΥ饹νդץå
ˤ¹Ԥ롥

(11) ATT_TER

饹°ʤХ뽪λ롼ϥޥץåǼ¹Ԥ졤
饹°뽪λ롼ϤΥ饹νդץ
ˤ¹Ԥ롥

 ֥Ȥ־

ʲ˼ͥΥǡ¤־ꤹ뤳ȤǽǤ롥
ϡåȰ¸Υե졼ƥץ졼ȥեǹԤ

ץåȥ֥å
󥿥ƥѥå
।٥ȥҡ
।٥ȥȥ֥å

ʾ
