
		TOPPERS/ASPͥλͳ

		бС: Release 1.9
		ǽ: 2013ǯ1231

ΥɥȤϡTOPPERS/ASPͥλͳפˤĤΤ
롥ITRON4.0ͤΥɥץեФĥѹ
濴롥

----------------------------------------------------------------------
 TOPPERS/ASP Kernel
     Toyohashi Open Platform for Embedded Real-Time Systems/
     Advanced Standard Profile Kernel

 Copyright (C) 2005-2013 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$
----------------------------------------------------------------------

Ȥʤʸ

[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.

ͤγά

TOPPERS/ASPͥλͤϡITRON4.0ͤΥɥץե
١ˡΤ褦ʳĥɤäΤǤ롥

߽ǽˤĤƤϡTOPPERSɸ߽ǥ˽򤵤롥
ITRON4.0ͤΥɥץե볰εǽΰƳ롥
λͤˤĤơITRON4.0ͤФѹä롥
JSPͥˤȼγĥǽѹƼ롥
ASPͥˤȼγĥǽ򿷤˼롥
ƥॳե졼Ū˸ľ
ĥǽ뤿γĥѥå򥵥ݡȤ롥
TOPPERSȹߥݡͥȥƥTECSˤƳ롥

ΤASPͥϡITRON4.0ͤ˴˽򤷤Ƥ櫓ǤϤʤ
JSPͥξ̸ߴˤʤäƤʤ

ITRON4.0ͤǤϡȼѰդŪAPIӥӥ̾
ˤϡƬˤ줾"V""v"ʸղäΤȤƤ뤬ASP
ͥǤϤεϺѤʤ

ʲǤϡITRON4.0ͤΥɥץեФĥ
սˤĤ롥

ɥץե볰εǽΰƳ

ITRON4.0ͤˤϵꤵƤ뤬ɥץե˴ޤޤ
ʤޤϡޤޤȤϸ¤ʤ˵ǽȤơεǽ롥

(1) ٥ȥե饰ʣԤ

٥ȥե饰ФʣԤεǽTA_WMUL°Υ٥ȥե饰
롥

ˤꡤ٥ȥե饰Υåȡset_flgiset_flgˤʣΥ
ǽ롥¿ΥƱԤ硤
Ǥγ߶ػ߻֤Ĺʤ뤿ᡤѤˤäƤդɬפǤ롥

(2) 顼ϥɥ

顼ϥɥεǽ롥顼ϥɥ鵡ǽΤ˼
ŪAPIӥӥϼ̤Ǥ롥

	CRE_ALM		顼ϥɥŪAPI
	sta_alm		顼ϥɥư
	ista_alm	顼ϥɥưϡ󥿥ƥѡ
	stp_alm		顼ϥɥư
	istp_alm	顼ϥɥưߡ󥿥ƥѡ

(3) ߥӥ롼

ɥץեǤϡߥϥɥȳߥӥ롼
줫򥵥ݡȤФ褤ȤˤʤäƤ롥JSPͥǤϳߥϥ
ɥΤߤƤ뤬ASPͥǤϤξԤ롥

ߥӥ롼λͤˤĤƤϡTOPPERSɸ߽ǥε
˽򤹤롥ߥӥ롼ɲä륵ӥȤơ
ŪAPI롥ŪAPIλͤˤĤƤϡTOPPERSɸ߽
ǥˤơITRON4.0ͤФƳĥäƤ롥

	ATT_ISR		ߥӥ롼ɲáŪAPI

(4) ߴǽ

ɥץե˴ޤޤʤߴǽȤơΥӥ
롥JSPͥǤϡΥӥ뤫
ϥåȰ¸ȤʤäƤ뤬ASPͥǤϡTOPPERSɸ
ǥε˽򤷤ơå¸˼롥

	dis_int		ߤζػ
	ena_int		ߤε
	chg_ipm		ͥ٥ޥѹ
	get_ipm		ͥ٥ޥλ

(5) ֥Ȥξֻȵǽ

˥ǥХåεǽȤơ֥Ȥξֻȵǽ롥
ŪˤϡΥӥ롥

	ref_tsk		ξֻ
	ref_tex		㳰ξֻ
	ref_sem		ޥեξֻ
	ref_flg		٥ȥե饰ξֻ
	ref_dtq		ǡ塼ξֻ
	ref_mbx		᡼ܥåξֻ
	ref_mpf		Ĺסξֻ
	ref_cyc		ϥɥξֻ
	ref_alm		顼ϥɥξֻ

ITRON4.0ͤФѹ

(1) ITRONɸǡθľ

ηޤäBH, WʤɡˤʤɤˤĤơC99˽򤷤̾
Ρint8_tint16_tint32_tʤɡˤ䤽ɤ̾Τѹ롥
ITRONɸǡBH, WʤɡˤɬפȤ륢ץꥱΤˡ
itron.hѰդ롥

(2) 󥿥ƥȤext_tsk

󥿥ƥȤext_tskƤФ줿硤E_CTX顼֤Τ
롥ˤȤʤäơext_tsk꥿󤹤ǽΤȤ֤
ͤηERȤ롥

(3) CPU㳰ϥɥǹԤ

CPU㳰ϥɥǹԤˤĤƤϡTOPPERSɸ߽ǥ˽
򤹤뤳ȤȤJSPͥλͤƧITRON4.0ͤˤ⽾ʤ
ΤΥӥȤơΥӥ롥

	xsns_dpn	CPU㳰ȯΥǥѥåα֤λ
	xsns_xpn	CPU㳰ȯΥ㳰α֤λ

(4) ͥѤΰʬΥ

ITRON4.0/PXͤˤƳ줿ITRON4.0ͤФѹȤơ
ͥѤΰʬΥ˴ؤͤѤ롥

ޤĹסμˤơͥѤΰʬΥ
뤳ȤȼĹסŪAPICRE_MPFˤΥѥ᡼
ˡĹסΰƬϡmpfmbˤɲä롥

ޤˤ碌ơǡ塼ŪAPICRE_DTQˤκǸ
ѥ᡼̾Τ򡤥ǡ塼ΰƬϡdtqmbˤѹ롥

ʤ᡼ܥåϡITRON4.0ͤȤθߴΤ˻ĤƤ뵡ǽ
ȰդͥѤΰʬΥϹԤʤΤᡤ᡼
ܥåŪAPICRE_MBXˤФѹϤʤ

(5) ñ̤ȥΰΥǡθľ

ñ̤ΥȥϤΥǡ򡤥ѥ᡼ȿǤʤFPǤϤ
ñѤΥǡȤ롥㤨СΥȥϤΥǡ
TASK㳰롼ΥǡTEXRTNȤ롥

ޤåΰȸĹסΰΥǡ򡤤줾STK_T
MPF_TȤ롥

(6) ͤ0ʥ֥°ˤθľ

ǥ󥰥ߥɤˡͤ0ΰľ֥°
TA_TFIFOˤˤĤƤϡͤ0ΤΤϥǥեȰѻߤ
itron.h˰ܤͤ0Υӥư⡼ɡTWF_ANDWˤ䥪֥
Ȥξ֡TTEX_ENAˤˤĤƤϡͤѹ롥

(7) Ԥ׵ͥȤѻ

Ԥ׵ͥȤ뵡ǽѻߤ롥ȡԤ׵ͥ
ȿκͤ1˸ꤹ롥ȼfrsm_tskѻߤitron.hˤ
frsm_tskrsm_tsk˥ޥ롥ޤTMAX_SUSCNTitron.h
ܤ

(8) ƥ굡ǽѻ

set_timʥƥˤѻߤ롥

(9) ϥɥλѹ

sta_cycƤӽФ塤ǽ˼ϥɥ餬ưѹ롥
ITRON4.0ͤǤϡsta_cycƤӽФƤϥɥεưǻ
лָȤƤ뤬ASPͥǤϡưǻꤷл
Ȥ롥

(10) 㳰롼μ¹ԳϾѹ

ͥ٥ޥ֤Ǥʤˤϡ㳰롼μ
ԤϤʤȤͤѹ

JSPͥˤȼγĥǽ

JSPͥˤȼγĥǽǡʲεǽ롥

(1) ǽɾѥƥﻲȵǽ

ǽɾѥƥﻲȵǽȤϡASPͥư륿ASP
ͥ뼫Ȥǽ¬뤿Ρƥñ̤ɤ߽Ф
ǽǤ롥εǽΤΥӥϼ̤ǤJSPͥ
̾Τѹˡ

	get_utm		ǽɾѥƥλ

JSPͥ뤫λѹȤơget_utmǤդΥƥȤƤӽ
ȤǤΤ롥ޤǽɾѥƥηSYSUTMˤ
å¸ulong_t롥

(2) λ롼ǽ

ASPͥǤϡƥνλ˸ƤӽФ뽪λ롼Ͽ
뤿εǽ򥵥ݡȤ롥εǽΤŪAPIϼ̤Ǥ롥

	ATT_TER		λ롼ɲáŪAPI

(3) ͥư֤λ

ͥư륿ƤӽФؿͥνλ
佪λϸˤƤӽФǽˤϡǥ
ΥӥƤӽФ뤫Ƚ̤뤳ȤɬפȤʤ롥εǽ
Υӥϼ̤ǤJSPͥȤ̾Τѹˡ

	sns_ker		ͥư֤λ

ASPͥˤȼγĥǽ

(1) ׵饤°

׵饤°ꤹ뵡ǽȤơTOPPERSɸ߽ǥ
ǵꤵ줿ŪAPI롥

	CFG_INT		׵饤°ŪAPI

(2) Ʊ֥̿Ȥκƽǽ

Ʊ֥̿Ȥ֤᤹εǽȤơΥӥ
롥

	ini_sem		ޥեκƽ
	ini_flg		٥ȥե饰κƽ
	ini_dtq		ǡ塼κƽ
	ini_mbx		᡼ܥåκƽ
	ini_mpf		Ĺסκƽ

Ʊ֥̿ȤκƽκݤˡƱ֥̿Ȥ
Ԥ֤ȤʤäƤϤ٤Ԥ롥Ԥ줿
ФƤϡE_DLT֤E_DLTϡɥץեǤϻ
Ƥʤ顼ɤǤ롥

ΤᡤΥӥˤꡤʣΥǽ
롥¿ΥƱԤ硤ͥǤγ߶
߻֤Ĺʤ뤿ᡤѤˤäƤդɬפǤ롥

Ʊ֥̿Ȥƽݤˡץꥱ¦Ȥ
ݤĤΤϥץꥱǤǤ롥ŪˤϡĹס
ƽݤˤϡѤߤΥ֥å򤽤ʹ߻Ȥ
褦ˤʤФʤʤޤ᡼ܥåƽݤˤϡ
᡼ܥå줿åΰʤФʤʤ

(3) ͥ٥ǡ塼ο

ͥդΥǡ塼εǽߤ롥ͥդǡ塼ǽ
˼ŪAPIӥӥϼ̤Ǥ롥

	CRE_PDQ		ͥ٥ǡ塼
	snd_pdq		ͥ٥ǡ塼ؤ
	psnd_pdq	ͥ٥ǡ塼ؤʥݡ󥰡
	ipsnd_pdq	ͥ٥ǡ塼ؤʥݡ󥰡󥿥ƥȡ
	tsnd_pdq	ͥ٥ǡ塼ؤʥॢȤ
	rcv_pdq		ͥ٥ǡ塼μ
	prcv_pdq	ͥ٥ǡ塼μʥݡ󥰡
	trcv_pdq	ͥ٥ǡ塼μʥॢȤ
	ini_pdq		ͥ٥ǡ塼κƽ
	ref_pdq		ͥ٥ǡ塼ξֻ

ǡͥ٥ǡ塼Ѥ줿ǡο¿硤ͥ٥ǡ
塼ؤΥǡԤӥsnd_pdqpsnd_pdq
ipsnd_pdqtsnd_pdqˤν֤ĹʤꡤͥǤγ߶ػ߻
Ĺʤ뤿ᡤѤˤäƤդɬפǤ롥

(4) γĥλ

γĥ򻲾Ȥ뤿Υӥߤ롥饤֥
Ѥ뤳ȤꤷƤ롥

	get_inf		γĥλ

(5) ͥνλ

̿Ūʥ顼äʤɤ˥ͥλ뤿Υӥ
ߤ롥εǽϡITRON4.0ͤεǽʬǤϡƥ๽
ǽʬहJSPͥǤϡkernel_exitȤ̾Τǡ¼Ūˤ
εǽѰդƤˡ

	ext_ker		ͥνλ

ASPͥǤϡΥӥ뤫꥿󤹤뤳ȤϤʤݸ
ǽäͥǤϥ顼꥿󤹤ǽ뤿ᡤ֤ͤη
ERȤ롥

ȼäơJSPͥkernel_startsta_ker̾ѹ롥
sta_kerϥӥȤϸʤʤȤˤ롥

(6) 󥿥ƥѤΥåΰ

󥿥ƥѤΥåΰƬϤȥꤹ뤿
ŪAPIߤ롥ޤŪAPIˤꡤ󥿥ƥѤΥ
åΰΥΤߤꤹ뤳ȤǤ롥

	DEF_ICS		󥿥ƥѤΥåΰ

JSPͥˤ¸꤫ѹ

ITRON4.0ͤǼޤϼ¸ȤƤͤǡʲΤ
ΤˤĤJSPͥ뤫ѹ롥

(1) ץꥱΥ󥯥롼ɥեι

ͥƤӽФץꥱ󤫤kernel.hSILƤӽФץ
󤫤sil.h򥤥󥯥롼ɤФ褤ΤȤt_services.h
s_services.hѻߤ롥

ޤkernel.hsil.hζʬȤt_stddef.hѰդͥSIL
ΤƤӽФʤץꥱ󤫤ϡt_stddef.h򥤥󥯥롼
Ф褤ΤȤ롥itron.hϡITRON4.0ͤȤθߴɬפʾ
󥯥롼ɤΤȤ롥

(2) ߽㳰Ϣηѹ

ߥϥɥֹηINHNOˡֹηINTNOˡCPU㳰ϥ
ֹηEXCNOˤ򡤥å¸ǡuint_t롥

(3) ñ̤μ¹Գϡ꥿Υƥ֤ε

ñ̤μ¹Գϡ꥿Υƥ֤ˤĤơITRON4.0ͤ
Ƽ¸Ǥä̩˵ꤷåȤˤ㤤ʤ
褦ˤ롥

(4) isig_timΰѹ

ƥ򹹿뵡򥫡ͥ˻İȤӥ
ȤƤisig_timѻߤ롥

(5) ͥѤΰλˡ

JSPͥǤϡͥѤΰϤ٤ƼưդǤäASP
ͥǤϡΥåΰȸĹסθĹס
ΰˤĤƤϡŪAPIƬϤꤹ뤳ȤǤΤȤʼ
ưդ⥵ݡȤˡ

(6) ͥγߤΰε

JSPͥǤϥåƤͥγߤΰ
ASPͥǤϡTOPPERSɸ߽ǥε˽򤷤ơǽ
Ϥɸಽ롥NMIʳ˥ͥγߤߤ뤫䡤
γͥ٤⤤Τ򥫡ͥȤ뤫ϡå
롥

ƥॳե졼θľ

ƥॳե졼Ū˸ľƥॳե
졼եˤCΥץץåǥ쥯ƥ֤ΰ
ŪAPIΥѥ᡼ʬѹ

ĥѥåΥݡ

ASPͥǤϡĤγĥǽ뤿ˡγĥѥå
򥵥ݡȤƤ롥

ߥ塼ƥåǽĥѥåͥٷѾߥ塼ƥå
Хϥɥ鵡ǽĥѥå
ͥٳĥѥå
󥿥ĥѥå
ưŪǽĥѥå

TOPPERSȹߥݡͥȥƥTECSˤƳ

ǥХɥ饤Ф䥷ƥǽȤ³TOPPERSȹߥݡͥ
ƥTECSˤƳ롥ޤͥ륪֥ȤTECSΥݡ
ͥȤȤư褦ˤ롥

ʤTECSб뤿νϡTECSۥѥå˴ޤޤƤꡤ
ASPͥۥѥåˤϴޤޤƤʤ

ʾ
