
		TOPPERS/ASPͥ
		桼ޥ˥奢

		бС: Release 1.9.3
		ǽ: 2015ǯ731

ΥɥȤϡTOPPERS/ASPͥѤ뤿ɬפʻ
ΤǤ롥

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

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

ܼ

TOPPERS/ASPͥγ
	1.1 TOPPERS/ASPͥΰդ
	1.2 TOPPERS/ASPͥλ
	1.3 ޥ졼󥬥
	1.4 ǽĥ塼˥󥰥
	1.5 Τ
	1.6 CygwinĶˤջ
åȰ¸
	2.1 åȰ¸γ
	2.2 ʰץѥå
	2.3 ̥ѥå
åȥ
	3.1 ȯĶν
	3.2 ե졼ι
	3.3 ץץιۤȼ¹
	3.4 ͥؿñ̤ǥ饤֥경ˡ
	3.5 ץꥱȥ̡ͥ˹ۤˡ
ǥ쥯ȥ깽ե빽
	4.1 ۥѥåΥǥ쥯ȥ깽
	4.2 å¸Υե빽
ե졼󥹥ץȤλȤ
Makefileνˡ
	6.1 Makefileѿ
	6.2 ѥ륪ץ
ե졼λȤ
ƥॵӥ
	8.1 ƥǽ
		8.1.1 ƥǽΰդ
		8.1.2 ХåեؤεϿ٥
		8.1.3 μ
		8.1.4 ν
		8.1.5 Υǡ¤
		8.1.6 ƥǽΥӥ
		8.1.7 ƥǽΤΥ饤֥ؿȥޥ
		8.1.8 ƥǽΤ¾Υӥ
	8.2 ꥢ륤󥿥եɥ饤
		8.2.1 ꥢ륤󥿥եɥ饤ФΥӥ
		8.2.2 ꥢ륤󥿥եɥ饤ФΤ¾Υӥ
	8.3 ƥ
		8.3.1 ƥΥӥ
		8.3.2 ƥΤ¾Υӥ
	8.4 ͥ뵯ưåν
ݡȥ饤֥
	9.1 Ūʥ饤֥ؿ
	9.2 塼饤֥ؿ
	9.3 ƥѥ饤֥ؿ
	9.4 ¹Իʬ۽ץ⥸塼
ƥȥץ
	10.1 ƥȥץѥ饤֥
	10.2 ͥ
	10.3 ǽƥȥץ
	10.4 ǽɾץ
Ѿդȥҥ
	11.1 ޥɥ饤Фȹ
	11.2 assertޥν
	11.3 ƥǽΰ
	11.4 ֥IDδ
	11.5 ͥܥΥ͡
	11.6 ȥ졼ϿΥץ륳ɤλˡ
	11.7 ƥεưν
	11.8 rodataRAM֤
;
	12.1 Ѿ
	12.2 ݾڡŬݡ
	12.3 Хݡ
	12.4 ֥
	12.5 TOPPERS桼᡼󥰥ꥹ
	12.6 TOPPERSץȤΥиΥӥ
	12.7 TOPPERSץȤؤλ
ե
	13.1 ӥ
	13.2 ŪAPI
	13.3 С


TOPPERS/ASPͥγ

1.1 TOPPERS/ASPͥΰդ

TOPPERS/ASPͥʰʲASPͥˤϡTOPPERS奫ͥδ
ȤʤΤȤơTOPPERSץȤˤƳȯꥢ륿५
Ǥ롥ITRON4.0ͤΥɥץեΥꥢ륿५
ͥǤTOPPERS/JSPͥĥɤǳȯ

1.2 TOPPERS/ASPͥλ

ASPͥλͤγפˤĤƤϡTOPPERS/ASPͥλͳספ
Ȥ뤳ȡޤASPͥޤTOPPERS奫ͥλͤξܺ
ˤĤƤϡPDFեηۤƤTOPPERS奫ͥ
ͽRelease 1.7.1ˡפ򻲾Ȥ뤳ȡ

1.3 ޥ졼󥬥

TOPPERSͥ¾ΦITRON4.0ͽΥͥ뤫顤TOPPERS
奫ͥ˰ܹԤ뤿ˡʤޤϥҥȡˤTOPPERS
奫ͥؤΥޥ졼󥬥ɡפPDFեηۤ
롥ɬפ˱ƻȤ뤳ȡ

1.4 ǽĥ塼˥󥰥

TOPPERS/ASPͥ򡤵ǽĥ塼˥󥰤뤿ˡʤޤϥҥ
ȡˤֵǽĥ塼˥󥰥ɡפѰդƤ롥ĥѥ
λˡϡֵǽĥ塼˥󥰥ɡפ˴ޤޤƤ롥ɬ
פ˱ƻȤ뤳ȡ

1.5 Τ

ߥӥ롼ƬϡATT_ISRisrˡߥϥɥƬ
ϡDEF_INHinthdrˡCPU㳰ϥɥƬϡDEF_EXCexchdrˡ
롼ƬϡATT_INIinirtnˡλ롼Ƭ
ATT_TERterrtnˤץγϤȤʤΥ顼ϡ
ե졼˸Фʤ礬ʥåȤ˰¸ˡ

kernel_cfg.cʤcfg1_out.cˤϡͥ롤ƥॵӥץ
ΤΥ󥯥롼ɥե⥤󥯥롼ɤΥ
ܥ⻲Ȥǽ롥Τᡤͥ롤ƥॵӥ
ꥱǥܥͤƤ䡤ѥ륪ץ󤬿
äƤˡkernel_cfg.cʤcfg1_out.cˤѥ
Ǥʤʤ礬ͤ롥ͥΥܥ͡हʤɤ
ˡǷڸƤϤ뤬꤬ʤʤäƤ櫓ǤϤʤ

ƥॳե졼ե뤫顤ե졼Ф
INCLUDEǥ쥯ƥ֤ˤ¾Υե졼ե򥤥󥯥롼
ɤƤˡ˴ޤޤCץץåΥ󥯥롼ɥǥ
쥯ƥ֡#includeˤǡե졼ե֤Ƥ
ǥ쥯ȥ꤬ե򸡺ѥˤϤʤȤ꤬롥
Сsyssvc/syslog.cfgˡ#include "syslog.h"פȵҤǤʤΤϡ
꤬뤿Ǥ롥

Ǥϡɥ쥹64ӥåȤδĶˤбƤʤ64ӥåȥɥ
Ķ򥵥ݡȤ뤿κβϡȥS쥳ɥեޥå
64ӥåȥɥ쥹бƤʤȤǤ롥

1.6 CygwinĶˤջ

CygwinĶˤƤϡǥ쥯ȥλХѥǹԤȤ侩롥
ϡCygwinĶХѥϡWindowsͥƥ֤ǥӥɤ줿ġ
ǤʤǤ롥


åȰ¸

2.1 åȰ¸γ

ASPͥΥå¸ȡƼΥåȥƥб뤿
ΥåȰ¸ϡ̡˳ȯƤ롥ΤᡤASPͥ뤬
Ƥ뤹٤ƤΥåȰ¸򡤥С礵ƥѥå
뤳ȤϺǤ롥ǡ˽Υ桼оݤˤʰץѥå
ȡΥ桼䥫ͥ볫ȯԤоݤˤ̥ѥåѰդ
롥

ASP̤ͥݡȤΥåȥƥإݡƥ󥰤뤿ɬ
ʺȤϡȯĶιۤɸγȯĶȤκۤεۼͥ뼫Ȥ
ݡƥ󥰡ƥॵӥΥݡƥ󥰤ʤɤʤ롥ܤϡ
֥åȰ¸ ݡƥ󥰥ɡפ򻲾Ȥ뤳ȡ

2.2 ʰץѥå

ʰץѥåϡASPͥ뤬бƤ륿åȥƥѰդ
졤ΥåȥƥASPͥư뤿ɬפʥե
켰ѥåΤǤ롥ʰץѥå˴ޤޤեϡ
С礷Ƥ뤳ȤǧƤ롥

ʰץѥåΥСֹϡѥåդȤ뤳Ȥ§
Ȥ뤬åȥƥλˤꤳθ§˽ʤ礬롥

ʰץѥåϡŪˤϡ̥ѥåʣޤȤ᤿
ΤǤ롥ΤᡤоݥåȥƥɬפΤʤեޤ
Ƥ롥ޤʰץѥå˴ޤޤƤ̥ѥåΥС
ϡ̥ѥåMANIFESTե򻲾Ȥ뤳ȤΤ뤳ȤǤ롥

2.3 ̥ѥå

̥ѥåϡASPͥγȯñˡγȯñ̤ǳȯô
Ƥե켰ѥåΤǤ롥ASPͥΥå
¸⡤Ĥθ̥ѥåȤۤ롥̥ѥå
Ѥ뤿ˤϡ̤ˤϡ¾θ̥ѥåɬפȤʤ롥å
¸θ̥ѥåѤ뤿ɬפȤʤ̥ѥåȤΥС
ˤĤƤϡåȰ¸Υ桼ޥ˥奢򻲾Ȥ뤳ȡ
Ѥ̥ѥåΥС礵뤳Ȥϡ桼ǤǤ
롥

̥ѥåΥСֹϡX.Y.Zηɽ롥å
¸ΥСֹASPͥΤΥ꡼ֹȤ롥å
¸ΥСֹϡXY줬¸륿å¸Ȱ
פƤ롥ФơZϰפƤȤϸ¤ʤ㤨С
¸ΥС1.1.0б륿åȰ¸ϡС
1.1.ZηȤʤ롥åȰ¸ΤߤС󥢥åפˤϡZ
ѹ롥

Ѥ̥ѥåϡΤ褦ˡå¸θ̥ѥ
ŸΤƱǥ쥯ȥŸ롥

	% tar xvfz asp-1.1.0.tar.gz
	% tar xvfz asp_arch_arm_gcc_1.1.2.tar.gz

å¸θ̥ѥåˤϡʲΥåȰ¸ޤޤ
Ƥ뤬¾Υåȥƥ˥ݡƥ󥰤ݤλͤˤ
뤿ѰդƤΤǤꡤưˤĤƤ̤ڤǤ롥

	target/dve68k_gcc	DVE-68K/40GNUȯĶѥåȰ¸
	arch/m68k_gcc		M68040GNUȯĶѥץå¸
	pdic/upd72001		PD72001 ʰSIOɥ饤


åȥ

ǤϡåȰ¸ѰդƤ륿åȥƥǡASP
ͥư륵ץץۡưޤǤμ򼨤

3.1 ȯĶν

ASPͥѤƥ๽ۤˤϡʲΥġ뤬ɬפǤ롥

	ۥȥƥѤΥġ
		perl		ưǧ5.10.0
		GNU Make	ưǧ3.81

	TOPPERS奫ͥѥե졼
		cfg			ưǧ1.9.0
					 1.5ΥСǤưʤ

	åȥƥѤΥġʥȯĶ
		ɸ൬ʤ˽򤷤Cѥ
		֥顤󥫡饤֥ꥢ
		ܥեϥġ롤إեϥġ
		ɸC饤֥ɬܤǤϤʤ

åȥƥѤΥġGNUȯĶѤˤϡʲΥġ
ɬפǤ롥

	åȥƥѤGNUȯĶġ
		BINUTILSasldarnmranlibobjcopyobjdump
		GCCޤGCC-COREgccӤƤӽФġ
		NEWLIBɸC饤֥ꡤɬܤǤϤʤ

ưǧƤ륿åȥƥѤΥġˤĤƤϡåȰ
¸Υ桼ޥ˥奢򻲾Ȥ뤳ȡ

åȥƥѤɸC饤֥ϡץꥱɸC饤
Ѥʤˤϡɬפʤѥ餬ɸC饤֥
ؿmemcpymemsetʤɡˤƤӽФɤ礬ꡤξ
ˤɸC饤֥꤬ɬפǤ롥ɸC饤֥Ѱդˡ
ɤƤӽФؿΤߤʬѰդƤ褤

ʲǤϡΥġ뤬ѰդǤƤ뤳ȤˡUNIXޥǤ
ۼ롥ޤʲǤϡmakeޥɤGNU MakeǤ
ΤȤASPͥΥץMakefileϡGNU MakeγĥǽѤ
ˡ

3.2 ե졼ι

ͥۤˡޤTOPPERS奫ͥѥե졼
ۤɬפ롥ʰץѥå˴ޤޤƤʤɡե
졼¹ԥեꤷˤϡΥƥåפɬפʤ

ե졼ιۤˤϡʲΥġ뤬ɬפǤ롥

	ۥȥƥѤΥġʥճȯĶ
		C++ѥ顤C++饤֥
					ưǧMac OS XĶˡGNU C++ 4.2.1
		Boost		ưǧ1.52.0
		GNU Make	ưǧ3.81

ǽˡѥå˥ե졼Υե뤬ޤޤƤʤ
ˤϡե졼ΥѥåASPͥΥե
Ÿǥ쥯ȥβŸ롥

	% cd asp
	% tar xvfz cfg-1.9.2.tar.gz

ޤϡե졼Υѥå¾Υǥ쥯ȥŸASP
ͥΥեŸǥ쥯ȥ꤫饷ܥå󥯤Ϥ
Ƥ褤

ե뤬ŸǤȡcfgǥ쥯ȥ˰ưե졼
󥹥ץȡconfigureˤMakefileδĶ¸Makefile.config
塤makeޥɤˤꥳե졼cfgץˤ
ۤǤ롥

	% cd cfg
	% ./configure --without-xml
	% make depend
	% make

Boost򥤥󥹥ȡ뤷ǥ쥯ȥꤪ̾ΤɸꤷƤ
ΤȤϰ㤦ˤϡconfigure--with-headers--with-libraries
ץˤꡤإåե뤪ӥ饤֥֤줿ǥ쥯ȥ
ꤹɬפ롥--without-xmlϡAUTOSAR XMLեɤ߹ߵ
ǽASPͥѤˤɬפʤˤޤʤȤꤹ륪ץ
AUTOSAR XMLեɤ߹ߵǽˤϡXerces-C++ XML
Parserɬפˤʤˡ

ޤۥȥƥˤäƤϡŬ٥夲ѥ
ǤʤȤΤƤ롥Τ褦ʾˤϡŬ٥򲼤뤫
Ŭ޻ߤ褦ˡMakefileɬפ롥

ʤե졼λˡˤĤƤϡ֣ե졼
λȤפξϤ롥

3.3 ץץιۤȼ¹

ˡASPͥư륵ץץۤˡ롥

ޤץץΥ֥ȥե֤ǥ쥯ȥ
ե졼󥹥ץȤ¹Ԥ롥㤨С֥ȥե
֤ǥ쥯ȥASPͥΥեŸǥ
ȥβOBJȤ̾ΤΥǥ쥯ȥˤˤϡΥޥɤ
¹Ԥʥǥ쥯ȥξ̾ΤǤդ˷Ƥ褤ˡ

	% cd asp
	% mkdir OBJ
	% cd OBJ
	% perl ../configure -T <åά>

ǡ<åά>ϡtargetǥ쥯ȥβ֤Ƥ륿
Ȱ¸ǥ쥯ȥ̾ΤǤ롥ե졼󥹥ץȤΥ
ץˤĤƤϡ֣ե졼󥹥ץȤλȤפ
Ϥ롥

ե졼󥹥ץȤμ¹Ԥˤꡤȥǥ쥯ȥˤϡ
ץץۤ뤿MakefileץץѤΥ
ե졼եsample1.cfgˡץץ
sample1.hsample1.cˤ롥

ե졼󥹥ץȤμ¹Ը塤ɬפǤMakefile
롥MakefileνˡˤĤƤϡ֣MakefileνˡפξϤ
롥

θ塤make dependǰ¸طեMakefile.dependˤ塤
makeޥɤˤꥵץץΥɥ⥸塼aspޤ
asp.exeˤǤ롥¸طեˤϼ㴳֤롥

	% make depend
	% make

ǹۤץץsample1.hsample1.csample1.cfg
ϡASPͥδŪưǧ뤿ΤΤǤ롥Υץ
γϡsample1.cƬΥȤˤ롥

3.4 ͥؿñ̤ǥ饤֥경ˡ

μǤϡͥեñ̤ǥѥ뤷饤֥경
ͥΥɥ̾뤿ˤϡѤʤӥ
ϥ󥯤ʤ˾ޤASPͥǤϡͥؿñ
ǥѥ뤷饤֥경ˡѰդƤ롥

ˡǥץץۤˤϡե졼󥹥
ץȤˡؼ륪ץ-fˤղäǤ褤

	% mkdir OBJ_LIB
	% cd OBJ_LIB
	% perl ../configure -T <åά> -f

ǡOBJ_LIBȤǥ쥯ȥξ̾ΤϡǤդ˷Ƥ褤
ʹߤμϡƱǤ롥

3.5 ץꥱȥ̡ͥ˹ۤˡ

ˡǤϡץꥱȥͥƱ뤿ᡤ
֥ȥե֤ǥ쥯ȥ¿Υե뤬
ơˤʤ롥ǡͥ٤㤤ˤϡ
ͥϻ˹ۤƤǥץꥱۤˡѰ
Ƥ롥ʲǤϡץץۤˡμˤĤ
롥

ޤͥۤǥ쥯ȥե졼
ץȤ¹Ԥ롥㤨Сͥۤǥ쥯ȥASP
ͥΥեŸǥ쥯ȥβKERNEL_LIBȤ̾Τ
ǥ쥯ȥˤˤϡΥޥɤ¹Ԥʥǥ쥯ȥξ
̾ΤǤդ˷Ƥ褤ˡ

	% mkdir KERNEL_LIB
	% cd KERNEL_LIB
	% perl ../configure -T <åά> -f

ˤꡤͥۤǥ쥯ȥˡMakefilesample1.cfg
sample1.hsample1.c뤬Makefileʳϼ¼ŪˤϻѤʤ

make dependǰ¸طեMakefile.dependˤ塤make
libkernel.aˤꥫͥ饤֥libkernel.aˤǤ롥

	% make depend
	% make libkernel.a

ˡץꥱۤǥ쥯ȥե졼
󥹥ץȤ¹Ԥ롥㤨Сץꥱۤǥ쥯
ȥASPͥΥեŸǥ쥯ȥβAPLȤ
̾ΤΥǥ쥯ȥˤˤϡΥޥɤ¹Ԥʥǥ쥯
ξ̾ΤǤդ˷Ƥ褤ˡ

	% cd ..
	% mkdir APL
	% cd APL
	% perl ../configure -T <åά> -L ../KERNEL_LIB

-Lץˤϡͥۤǥ쥯ȥΥѥꤹ롥

Ǹˡmake dependǰ¸طեMakefile.dependˤ塤
makeޥɤˤꥵץץΥɥ⥸塼aspޤ
asp.exeˤǤ롥

	% make depend
	% make

μǤϡץꥱۻˤϥͥκƹۤɬפ
ʤᡤͥΥɤˤϡͥ
ǥ쥯ȥmake libkernel.aƼ¹Ԥɬפ롥

ʾǤϡͥȥץꥱ̡Υǥ쥯ȥǹۤ
-Lץ˥ȥǥ쥯ȥʤ"."ȤҤǤԲġˤ
ꤹ뤳ȤǡͥȥץꥱƱǥ쥯ȥ̡˹
뤳ȤǤ롥ŪˤϡμȤʤ롥

	% mkdir OBJ
	% cd OBJ
	% perl ../configure -T <åά> -L ../OBJ
	% make depend
	% make libkernel.a
	% make cleankernel
	% make

ǡmake cleankernelϡͥ饤֥뤿֥ե
ΤǤ롥μǤϡmake dependˤꥫͥ饤
֥˴ؤ¸طʤᡤͥΥɤ
ˤϡɬmake cleankernelʤޤϡmake cleanˤƤ顤make
libkernel.aɬפΤդ뤳ȡ

ʤmake realcleanȡmake dependmakeˤե
٤ƺ롥Фơmake cleanǤϡmake dependˤ
¸طեϺʤ


ǥ쥯ȥ깽ե빽

4.1 ۥѥåΥǥ쥯ȥ깽

	include/		ץꥱإåե
	kernel/			ͥΥե
	syssvc/			ƥॵӥΥإåե롤ե
	library/		ݡȥ饤֥Υե
	target/			åȰ¸
	arch/			åȰ¸ζʬ
		gcc/		GCCȯĶ¸
		logtrace/	ȥ졼ϿΥץ륳
	pdic/			PDICʥǥХɥ饤ФOS¸ʬ
	utils/			桼ƥƥץ
	sample/			ץץMakefile
	doc/			ɥ
	test/			ƥȥץ
	extension/		ĥѥå

4.2 å¸Υե빽

å¸ʥƥȥץȳĥѥåϽˤγƥե
γפϼ̤ꡥ

	README.txt			TOPPERS/ASPͥδñʾҲ
	configure			ե졼󥹥ץȡGNUȯĶѡ
	MANIFEST			̥ѥåΥեꥹ

	include/
		kernel.h		ASPͥѤ뤿
		sil.h			ƥ।󥿥ե쥤Ѥ뤿
		t_stddef.h		TOPPERS̥إåե
		itron.h			ITRONͶ̵Υǡޥ
		t_syslog.h		ƥϤԤ
		t_stdlib.h		Ūʥ饤֥ؿѤ뤿
		queue.h			塼饤֥Ѥ뤿
		test_lib.h		ƥȥץѥ饤֥Ѥ뤿
		histogram.h		¹Իʬ۽ץ⥸塼Ѥ뤿
		log_output.h	ƥΥեޥåȽϤѤ뤿

	kernel/
		Makefile.kernel		ͥΥե빽
		kernel_impl.h		ͥɸإåե
		kernel_int.h		kernel_cfg.cѤΥإåե
		kernel_rename.def	ͥ̾Υ͡
		kernel_rename.h		ͥ̾Υ͡
		kernel_unrename.h	ͥ̾Υ͡	
		kernel_api.csv		ե졼ŪAPIơ֥
		kernel_def.csv		ե졼ͼܥơ֥
		kernel.tf			ե졼Υѥ2Υƥץ졼ȥե
		kernel_check.tf		ե졼Υѥ3Υƥץ졼ȥե
		genoffset.tf		եåȥեѤΥƥץ졼ȥե
		allfunc.h		٤Ƥδؿ򥳥ѥ뤹뤿
		check.h			顼åѥޥ
		startup.c		ͥνȽλ
		task.h			롼Ϣ
		task.c			롼
		wait.h			Ԥ롼Ϣ
		wait.c			Ԥ롼
		time_event.h	।٥ȴϢ
		time_event.c	।٥ȴ
		task_manage.c	ǽ
		task_refer.c	ֻȵǽ
		task_sync.c		°Ʊǽ
		task_except.c	㳰ǽ
		semaphore.h		ޥեǽϢ
		semaphore.c		ޥեǽ
		eventflag.h		٥ȥե饰ǽϢ
		eventflag.c		٥ȥե饰ǽ
		dataqueue.h		ǡ塼ǽϢ
		dataqueue.c		ǡ塼ǽ
		pridataq.h		ͥ٥ǡ塼ǽϢ
		pridataq.c		ͥ٥ǡ塼ǽ
		mailbox.h		᡼ܥåǽϢ
		mailbox.c		᡼ܥåǽ
		mempfix.h		Ĺס뵡ǽϢ
		mempfix.c		Ĺס뵡ǽ
		time_manage.c	ƥǽ
		cyclic.h		ϥɥ鵡ǽϢ
		cyclic.c		ϥɥ鵡ǽ
		alarm.h			顼ϥɥ鵡ǽϢ
		alarm.c			顼ϥɥ鵡ǽ
		sys_manage.c	ƥִǽ
		interrupt.h		ߴǽϢ
		interrupt.c		ߴǽ
		exception.h		CPU㳰ǽϢ
		exception.c		CPU㳰ǽ

	syssvc/
		banner.h		ͥ뵯ưåνϤΤ
		banner.c		ͥ뵯ưåν
		banner.cfg		ͥ뵯ưåνϤΥե졼
						ե
		logtask.h		ƥѤ뤿
		logtask.c		ƥ
		logtask.cfg		ƥΥե졼ե
		serial.h		ꥢ륤󥿥եɥ饤ФѤ뤿
		serial.c		ꥢ륤󥿥եɥ饤
		serial.cfg		ꥢɥ饤ФΥե졼ե
		syslog.h		ƥǽѤ뤿
		syslog.c		ƥǽ
		syslog.cfg		ƥǽΥե졼ե

	library/
		histogram.c		¹Իʬ۽ץ⥸塼
		log_output.c	ƥΥեޥåȽ
		strerror.c		顼åʸ֤ؿ
		t_perror.c		顼åν
		test_lib.c		ƥȥץѥ饤֥
		vasyslog.c		ѿΥƥ饤֥

	arch/gcc/
		MANIFEST		̥ѥåΥեꥹ
		tool_stddef.h	t_stddef.hγȯĶ¸GCCѡ

	arch/logtrace/
		MANIFEST		̥ѥåΥեꥹ
		trace_config.h	ȥ졼˴ؤ
		trace_config.c	ȥ졼ǽ
		trace_dump.c	ȥ졼Υ

	utils/
		applyrename		ե˥͡Ŭ
		genoffset		offset.hGNUȯĶѡ
		genrename		͡إåե
		gentest			ƥȥץ
		makedep			¸طꥹȤGNUȯĶѡ
		makerelease		꡼ѥå

	sample/
		Makefile		ץMakefileGNUȯĶѡ
		sample1.h		ץץ(1)˴ؤ
		sample1.c		ץץ(1)
		sample1.cfg		ץץ(1)Υե졼ե

	doc/
		user.txt			桼ޥ˥奢
		asp_spec.txt		TOPPERS/ASPͥλͳ
		extension.txt		ǽĥ塼˥󥰥
		porting.txt			åȰ¸ ݡƥ󥰥
		configurator.txt	ե졼
		design.txt			߷ץ
		version.txt			ѹ


ե졼󥹥ץȤλȤ

ե졼󥹥ץȡconfigureˤϡASPͥ뤪ӥ
ꥱץۤ뤿ɬפʴŪʥե졼
ԤΥץǤ롥

ASPͥѤƥץꥱˤϡޤ֥
ե֤ǥ쥯ȥΥǥ쥯ȥǥե졼
󥹥ץȤ¹Ԥ롥֥ȥե֤ǥ쥯ȥξ
̾ΤϡǤդ˷Ƥ褤

ե졼󥹥ץȤФ륪ץϼ̤ꡥ

	-T <åά>
		åȥƥ̾Τtargetǥ쥯ȥβ֤Ƥ
		륿åȰ¸ǥ쥯ȥ̾Τǻꤹɬܡˡ

	-A <ץꥱץ̾>
		ץꥱץ̾Τꤹ롥άˤϡ
		ץץsample1ˤȤʤ롥

	-a <ץꥱΥǥ쥯ȥ̾>
		ץꥱץΥեʥƥॳե
		졼եˤ֤ǥ쥯ȥ̾ꤹ롥
		άˤϡ֥ȥե֤ǥ쥯ȥ֤
		Ƥ뤳Ȥꤹ롥ƥॳե졼եϡ
		֥ȥե֤ǥ쥯ȥ֤ȡ

	-U <֥ȥե̾>
		ץꥱץΥᥤΥ֥ȥե-A 
		ǻꤷץꥱץ̾".o"ղäΡ˰
		ˡ󥯤٤֥ȥե̾Τ".o"ղä
		ǻꤹ롥""ǰϤळȤˤäơʣΥեꤹ뤳
		ȤǽǤ-UץʣȤäƤϤʤʤˡ

	-L <ͥ饤֥Υǥ쥯ȥ̾>
		˹ۤͥ饤֥libkernel.aˤѤơץ
		ΤߤۤˤϡΥץ˥ͥ饤
		֥֤줿ǥ쥯ȥ̾ꤹ롥Υץλ
		ˤĤƤϡ3.5 ץꥱȥ̡ͥ˹ۤ
		ˡפ򻲾Ȥ뤳ȡ

	-f
		ͥؿñ̤ǥѥ뤷饤֥경ˡΥ
		ץꤹ롥ΥץλˤĤƤϡ3.4 
		ͥؿñ̤ǥ饤֥경ˡפ򻲾Ȥ뤳ȡ

	-D <ASPͥΥǥ쥯ȥ̾>
		ASPͥΥե֤ǥ쥯ȥ̾ꤹ롥
		άˤϡconfigure֤Ƥǥ쥯ȥȤʤ롥

	-l <ץߥ󥰸>
		ץꥱץΥץߥ󥰸ꤹ롥
		Ǥϡcc++Τߤ򥵥ݡȤƤ롥

	-t <ƥץ졼ȥǥ쥯ȥ̾>
		Makefile䥵ץץΥƥץ졼Ȥ֤줿ǥ쥯
		̾ꤹ롥άˤϡASPͥΥե
		֤ǥ쥯ȥβsampleǥ쥯ȥȤʤ롥

	-m <ƥץ졼Makefile̾>
		MakefileΥƥץ졼ȤȤե̾ꤹ롥ά
		ˤϡMakefileȤʤ롥

	-d <¹ԴĶ̾>
		åȥƥǤΥץμ¹ԴĶʤʤϡǥХ
		Ķˤ̾Τꤹ롥Υץꤹȡ¹ԴĶ
		ꤹ륷ܥTOPPERS_<ǥХåĶ̾>ˤޥ
		롥άˤϡ¹ԴĶꤹ륷ܥϥޥ
		ʤ

	-r
		ȥ졼ϿΥץ륳ɤͭˤˡΥץ
		ꤹ롥ΥץλˤĤƤϡ11.6 ȥ졼
		ϿΥץ륳ɤλˡפ򻲾Ȥ뤳ȡ

	-p <perlΥѥ̾>
		perlΥѥ̾ꤹ롥άˤϡ/usr/local/bin
		/usr/binõperlΥѥ̾ꤹ롥

	-g <ե졼Υѥ̾>
		ե졼cfgˤΥѥ̾ꤹ롥άˤϡ
		ǥեȤΥѥ̾ASPͥΥǥ쥯ȥβ
		cfg/cfg/cfgˤȤʤ롥

	-o <ץʸ>
		ѥͿ륪ץʸǡܥʳΤΡ
		ܥΥץϡ-OץѤ롥ץ
		ʸ˥ڡޤޤˤϡ"-O2 -Wall"Τ褦ˡ""ǰ
		ǵҤɬפ롥

	-O <ץʸ>
		ѥͿ륷ܥΤΥץʸ󡥥ץ
		ʸ˥ڡޤޤˤϡ"-DTEST -DPERF"Τ褦ˡ
		""ǰϤǵҤɬפ롥

	-k <ץʸ>
		󥫤Ϳ륪ץʸ󡥥ץʸ˥ڡ
		ޤˤϡ""ǰϤǵҤɬפ롥

ե졼󥹥ץȤԤϼ̤Ǥ롥

(1) Makefile

ƥץ졼ȥǥ쥯ȥʥǥեȤǤϡsampleˤŬڤMakefile
򤷡ɬפʲս񤭴ơMakefile롥

(2) ץץ

ꤷץꥱץबƥץ졼ȥǥ쥯ȥˤ硤
ŬڤʥץꥱץΥե򤷡ɬפʲս
񤭴ơץꥱץΥե㤨С
sample1.hsample1.csample1.cfgˤ롥

(3) ե졼ѰդǤƤ뤫Υå

ե졼cfgˤμ¹ԥե뤬뤫åե뤬
ˤϡλݤϤ롥


Makefileνˡ

ξϤ褦ˡե졼󥹥ץȤͿ륪ץ
Makefile뤬ե졼󥹥ץȤб
ǤʤˤϡMakefileľܽɬפ롥ǤϡMakefile
ǡɬפȤʤǽι⤤սˤĤ롥

ʤMakefile˥ե졼󥹥ץȤƼ¹Ԥ
ȡMakefile񤭤ƤޤΤդ뤳ȡʸŤΤ
Makefile.bak¸ˡ

6.1 Makefileѿ

(A) åά

TARGETˤϡåȥƥ̾Τtargetǥ쥯ȥβ֤
Ƥ륿åȰ¸ǥ쥯ȥ̾Τǻꤹ롥ϡ̾ϡ
ե졼󥹥ץȤФ-TץˤԤ

(B) ֥ȥեγĥ

CygwinĶǥѥ뤹ˤϡOBJEXT"exe"ɬפ롥
ϡCygwinĶǤϡɥ⥸塼Υե̾˳ĥ".exe"ղ
Τб뤿ΤΤǤ롥CygwinĶǤ뤳ȤȽǤС
ե졼󥹥ץȤԤ

(C) ¹ԴĶʥåȰ¸

åȤˤäƤϡ¹ԴĶбƥåȰ¸Υɤ򺹤
礬롥ǽˤ뤿ˡ¹ԴĶ̾ΤDBGENV
Ƥ롥ϡ̾ϡե졼󥹥ץȤФ
-DץˤԤɤΥåȤɤμ¹ԴĶбƤ뤫
ϡåȰ¸Υ桼ޥ˥奢򻲾Ȥ뤳ȡ

(D) ͥ饤֥Υǥ쥯ȥ̾

KERNEL_LIBˤϡͥ饤֥֤줿ǥ쥯ȥ̾롥
ϡ̾ϡե졼󥹥ץȤФ-Lץ
ˤԤ

(E) ͥؿñ̤ǥѥ뤹뤫ɤ

KERNEL_FUNCOBJSϡͥؿñ̤ǥѥ뤹ˤtrue
եñ̤ǥѥ뤹ˤ̤Ȥ롥ϡ̾
ϡե졼󥹥ץȤФ-fץˤԤ

(F) ̥ѥ륪ץ

٤ƤΥץ˶̤륳ѥ륪ץɲäɬפʾˤϡ
ѿѹ롥Υѥ륪ץ󤬡Υå
ǾɬפʾˤϡåȰ¸줿Makefile.target
٤Ǥ롥

	CDEFS		ѥФ-Dץ򵭽Ҥ롥
	INCLUDES	ѥФ-Iץ򵭽Ҥ롥
	COPTS		ѥФ뤽¾Υץ򵭽Ҥ롥
	LDFLAGS		󥫤Ф륪ץ򵭽Ҥ롥
	LIBS		饤֥󥯤ΤΥץ򵭽Ҥ롥

ɲäβǽΤ륳ѥ륪ץˤĤƤϡ6.2 ѥ륪
פ򻲾ȤΤȡ

(G) ץꥱץ̾

APPLNAMEˤϡץꥱץ̾롥ƥॳե
졼ե̾ϡAPPLNAME̾˳ĥ".cfg"ղ
̾Ȥ롥ޤץꥱΥᥤեϡAPPLNAME
̾˳ĥ".c"ղä̾Ȥ롥ϡ̾ϡե
졼󥹥ץȤФ-AץˤԤ

(H) ץꥱΥǥ쥯ȥ̾

ץꥱΥե򡤥֥ȥե֤ΤȤ
Υǥ쥯ȥ֤ˤϡAPPLDIRˤΥǥ쥯ȥ̾롥
ϡ̾ϡե졼󥹥ץȤФ-aץ
ˤԤץꥱΥե֤ǥ쥯ȥ꤬ʣ
ˤϡAPPL_DIRѹ뤳Ȥб롥

(I) ץꥱΥץե̾

ץꥱʣΥեǹˤϡΥ֥
ȥե̾APPL_ASMOBJSAPPL_COBJSAPPL_CXXOBJS󤹤롥

(J) ץꥱΥѥ륪ץ

ץꥱΥѥɬפʥѥ륪ץ䡤ץꥱ
󤬥饤֥ɬפȤˤϡAPPL_CFLAGSAPPL_LIBS
롥

(K) ɥ⥸塼Υե̾

ɸΥɥ⥸塼Υե̾OBJNAME롥ǥեȤasp
Ǥ롥

(L) åȥե

å"all"ΰ¸եȤơɥ⥸塼ηꤹ롥
ŪˤϡELFλ$(OBJFILE)Хʥλ$(OBJNAME).bin
ȥ Sλ$(OBJNAME).srecꤹ롥$(OBJFILE)ϡCygwin
ĶOBJEXT"exe"ˤ$(OBJNAME).exeǤʤˤ
$(OBJNAME)Ȥʤ롥

(M) makedepΥץ

CygwinĶǥ롼ȥǥ쥯ȥ꤬"cygdrive"Ǥʤˤϡmakedep-R
ץǥ롼ȥǥ쥯ȥ̾Ϳɬפ롥ޤMakefileΥ
å":"κ¦ˤʣΥե̾򵭽Ҥȡʥͥؿñ
ǥ饤֥경ˡΤ褦ʵҤưʤ
ˤϡCygwinĶGNU MakeǤΤ褦¤Ȥ𤬤ˡ
makedep-SץͿɬפ롥

makedepΥץϡΤ褦ˡMAKEDEP_OPTS롥

MAKEDEP_OPTS = -R cygdrive -S

6.2 ѥ륪ץ

ASPͥΥˤϡassertޥȤƤ롥assertޥϡ
NDEBUG뤳Ȥǡ֥ȥ椫äȤǤ롥
ͥΥǥХåλС-DNDEBUGꤷƥѥ뤷Ψ
褯ʤ롥

åȰ¸ˤơѥ륪ץ-Werrorʷٹ򥨥顼
ˤꤷƤ礬롥Τ褦ʥåȤˤơץ
Ƿٹ򤱤ʤˤϡåȰ¸ƥ
ѥ륪ץɬפ롥

ޤTOPPERS_OMIT_SYSLOGƥѥ뤹뤳Ȥǡƥ
Ϥ޻ߤ뤳ȤǤ롥


ե졼λȤ

ե졼cfgˤϡTOPPERS奫ͥͽ2.12.5
εҤ̤ꡤ3ĤΥѥǹ롥

ե졼ϡƥॳե졼ե̾ѥ᡼
˼ꡤʲΥץġʽפʤΤΤߡˡ

	--help
		ץΥꥹȤɽ롥

	-v--version
		ե졼ΥСɽ롥

	-k--kernel<ͥ̾>
		ͥ̾Τꤹ롥ǥեȤasp

	-p--pass<ѥֹ>
		ѥֹꤹ롥13Τ줫

	-I--include-path<󥯥롼ɥѥ̾>
		INCLUDEǥ쥯ƥ֤ˤơ󥯥롼ɤ륳ե졼
		եõѥ̾ꤹ롥

	-T--template-file<ƥץ졼ȥե̾>
		ƥץ졼ȥե̾Τꤹ롥ѥ2ȥѥ3ͭ

	--api-table <ŪAPIơ֥ե̾>
		ŪAPIơ֥Υե̾ꤹ롥

	--cfg1-def-table <ͼܥơ֥ե̾>
		ͼܥơ֥Υե̾ꤹ롥

	-r--rom-image<ɥ⥸塼̾>
		ɥ⥸塼S쥳ɥեޥåȤηѴե
		̾Τꤹ롥ѥ3ǤΤͭ

	-s [--symbol-table] <ܥե̾>
		ɥ⥸塼γƥܥȥɥ쥹бɽޤॷܥ
		ե̾Τꤹ롥ѥ3ǤΤͭ

	--id-output-file <IDֹϥե̾>
		֥ȤIDֹγդ̤򡤻ꤷ̾Υե˽
		Фѥ2ǤΤͭ

	--id-input-file <IDֹϥե̾>
		֥ȤIDֹγդ򡤻ꤷ̾Υե뤫
		ࡥѥ2ǤΤͭ

	--external-id
		֥ȤIDֹݻѿ롥ѥ2ǤΤ
		ͭ

	-M--print-dependencies<åȥܥ>
		ƥॳե졼եΰ¸طϤ롥
		Makefileΰ¸طݤѤ롥

ե졼ξܺٻͤˤĤƤϡPDFեηۤƤ
TOPPERS奫ͥѥե졼͡פ򻲾Ȥ뤳ȡ


ƥॵӥ

8.1 ƥǽ

ƥǽϡͥȯ۾ݤ䥫ͥΥȥ졼
ƥॵӥ䥢ץꥱȯ۾ݤȥ졼
򡤥ȤƵϿ뤿εǽǤ롥ޤϿ
Фǽġ

ƥǽϡƥॳե졼եsyslog.cfg
򥤥󥯥롼ɤ뤳ȤǡƥȤ߹ळȤǤ롥ƥ
ϤԤեǤϡt_syslog.h򥤥󥯥롼ɤ롥ޤ
ƥǽΤ¾ΥӥƤӽФեǤϡ
syslog.h򥤥󥯥롼ɤ롥

8.1.1 ƥǽΰդ

ƥǽϡͥ⤫ƤӽФȤǤ뤿ᡤͥ
겼γؤΥ⥸塼Ȱդ뤳ȤǤ롥ΰ̣Ǥϡ¾Υ
ƥॵӥȤϰդۤʤ롥

򥷥ƥ೰˽Ϥ뤿ˤϡꥢ륤󥿥ե
ɥ饤Фʤɡͥư륷ƥॵӥѤɬפ롥
ǡ򥷥ƥ೰˽Ϥ뤿Υӥʤ򡤥
ȸƤ֡ˤϡƥǽȤʬΥƼ뤳ȤȤ
ƥǽϥεϿФΤεǽ˹ʤäƤ롥

ʾΤ褦ˡƥǽϥͥ겼γؤΥ⥸塼Ǥ
ƥǽǥФˡͥεǽɬ
פȤ롥ϡͥѿľܻȤƤ롥Τᡤ
ͥμ¹Գ佪λϡϿʤ

8.1.2 ХåեؤεϿ٥

Ҥ褦ˡ򥷥ƥγ˽Ϥ뤿ˤϡͥ
ư륷ƥॵӥѤɬפ뤿ᡤͥư³
Ǥʤ褦ʽʰ۾ݤäˤϡϤǤʤ
ʤ롥ޤΥƥॵӥȤǥХåˤ⡤
νϤǤʤ

ǡͥư륷ƥॵӥȤʤˤǤ
Ϥ뤿ˡ٥ϵǽѰդ롥٥ϵǽϡ
åȰ¸Ѱդ٥ʸϴؿtarget_fput_logˤѤƥ
Ϥ뵡ǽǤ롥٥ʸϴؿϡåȰ¸
Ѱդ뤳ȤȤƤ뤬ǽʤȤ߹ޤʤɤǤϡʸ
Ϥˡʤͤ롥Τ褦ʾ硤٥ʸ
ؿ줿ʸϡ˻ĤƤΤƤƤޤʤ

򡤥ХåեصϿ뤫٥ϵǽѤƽϤ뤫
ϡƥǽΥӥsyslog_msk_logˤˤäƹ
ȤǤ롥syslog_msk_logλȤˤĤƤϸҤ롥ǥեȤ
ϡʥƥưsyslog_msk_logƤӽФʤˡ
٤ƤΥ٥ϵǽѤƽϤХåեˤϵϿ
ʤ

٥ϵǽѤȡåκprintfν
٥ʸϽ򥫡ͥǹԤˡͥα
ʤ뤳ȤդʤФʤʤäˡ٥ʸϽϥǥ
ݡ󥰤ǼΤ̾ǡξˤϡͥα
ϼŪȸʤ˰ʤ롥

8.1.3 μ

ƥǽϡ˰ʲμ̤ߤƤ롥

		LOG_TYPE_COMMENT	
		LOG_TYPE_ASSERT		μ
		LOG_TYPE_INH		ߥϥɥ
		LOG_TYPE_ISR		ߥӥ롼
		LOG_TYPE_CYC		ϥɥ
		LOG_TYPE_ALM		顼ϥɥ
		LOG_TYPE_OVR		Хϥɥ
		LOG_TYPE_EXC		CPU㳰ϥɥ
		LOG_TYPE_TEX		㳰롼
		LOG_TYPE_TSKSTAT	Ѳ
		LOG_TYPE_DSP		ǥѥå
		LOG_TYPE_SVC		ӥ

μ̤ǡLOG_TYPE_COMMENTLOG_TYPE_ASSERTʳϡͥ
Υȥ졼Ѥ뤿ΤΤǤ뤬Ѥ뤫ɤϥå
¸ǤƤ롥

8.1.4 ν

ƥǽϡϤݤ˻ꤹ٤˴Ťơ
ݤ˽ϤưŪꤹ뤳ȤǤ롥ϡUNIXΥ
ǽޤͤΤǡν٤μˡUNIXAPI򻲹
ˤƤ롥ޤ٥ϵǽѤƽϤ⡤٤
ŤưŪꤹ뤳ȤǤ롥

Ūˤϡν٤ȤƼ8ʳѰդƤ롥

		LOG_EMERG		ͥư³Ǥʤ顼
		LOG_ALERT
		LOG_CRIT
		LOG_ERROR		㤤ƥ२顼
		LOG_WARNING		ٹåƥϰ˷³ưǤ
		LOG_NOTICE
		LOG_INFO
		LOG_DEBUG		ǥХåΤΥå

ɤν٤ΥХåե˵Ͽ뤫ȡɤν٤Υ
٥ϵǽѤƽϤ뤫ϡƥǽΥӥ
syslog_msk_logˤˤäꤹ뤳ȤǤ롥

8.1.5 Υǡ¤

Ǽ뤿ΥǡȤơSYSLOG¤ΤѰդƤ롥
SYSLOG¤Τˤϡμ̡logtypeեɡˡ
logtimեɡˡ¾Υloginfoեɡˤޤޤ롥

SYSLOG¤Τ˳Ǽ줿ϤˤϡϽϴؿ
syslog_wri_logˤˤäƽ񤭹ޤ뤿ᡤϴؿƤ¦ǽ񤭹
ɬפϤʤ

8.1.6 ƥǽΥӥ

ƥǽ󶡤륵ӥϼ̤Ǥ롥Υ
ӥƤӽФեǤϡsyslog.h򥤥󥯥롼ɤɬ
롥

(1) ER syslog_wri_log(uint_t prio, const SYSLOG *p_syslog)

ƥǽˡp_syslogǻꤵprioǻꤵ
٤ǽϤʥХåեصϿ뤫٥ϵǽѤƽϤ
ˡ

ץȥˤơ*p_syslogconst꤬Ƥ뤬ºݤˤϡ
δؿǡ*p_sysloglogtimեɤ˥ƥ񤭹Ǥ
롥

(2) ER_UINT syslog_rea_log(SYSLOG *p_syslog)

Хåե1ļФХåեλE_OBJ
ǤʤϡХåեΥХեˤ꼺줿ο
ʥ󤬼Ƥʤ0ˤ֤ƥѤ뤳
ȤꤷƤ롥

(3) ER syslog_msk_log(uint_t logmask, uint_t lowmask)

Хåե˵Ͽ٤ν٤μӥåȥޥåסlogmaskˤȡ
٥ϵǽѤƽϤ٤ν٤򼨤ӥåȥޥå
lowmaskˤꤹ롥ӥåȥޥåפ뤿ΥޥȤơLOG_MASK
LOG_UPTOѰդƤ롥

(4) ER syslog_ref_log(T_SYSLOG_RLOG *pk_rlog)

ƥǽξ֤򻲾Ȥ롥ŪˤϡХåե˵Ͽ
οT_SYSLOG_RLOG¤ΤcountեɡˡХåե
ΥХեˤ꼺줿οlostեɡˡХåե
˵Ͽ٤ν٤μӥåȥޥåסlogmaskեɡˡ
٥ϵǽѤƽϤ٤ν٤򼨤ӥåȥޥå
lowmaskեɡˤ򻲾Ȥ뤳ȤǤ롥

8.1.7 ƥǽΤΥ饤֥ؿȥޥ

ƥϤΤΥ饤֥ؿȥޥϼ̤Ǥ롥
ƤӽФեǤϡt_syslog.h򥤥󥯥롼ɤФ褤

(1) void _syslog_n(uint_t prio, uint_t type, intptr_t arg1, ..., intptr_t argn)
     n06Τ줫

̤typeѥ᡼arg1argnΥ򡤽prioǽϤ
뤿δؿ

(2) void syslog_n(uint_t prio, const char *format, arg1, ..., argn)
     n05Τ줫

formatʸ󤪤Ӥ³å򡤥̤
LOG_TYPE_COMMENTΥȤơprioǽϤ뤿Υޥ

formatϥåΥեޥåȵҡarg1argnϥեޥåȵ
ȤͤǡprintfΥեޥåȵҤΥ֥åȤȤʤäƤ롥arg1
argnϡΥޥintptr_t˥㥹Ȥ뤿ᡤintptr_t˷
ǤǤդηϤȤǤåϤʤformat
arg1argnˤϡ¤롥

formatΥեޥåȵҤϡʸϤȤꤷƤꡤ
ޥ򽪤ѲƤϤʤʤ

format˻ȤեޥåȻϼ̤ꡥ

	%d		int_tȤߤʤ10ʿɽ
	%u		uint_tȤߤʤ10ʿɽ
	%x		uint_tȤߤʤ16ʿʱʸϾʸˤɽ
	%X		uint_tȤߤʤ16ʿʱʸʸˤɽ
	%p		ݥ󥿤Ȥߤʤ16ʿʱʸϾʸˤɽ
	%c		ʸɤȤߤʤʸɽ
	%s		ʸ򼨤ݥ󥿤Ȥߤʤʸɽ
	%%		'%'ɽʰϼʤ

%d, %u, %x, %XˤƤϡ'%'ľɽꤹ10ʿͤ򵭽Ҥ
뤳ȤǤ롥ξ硤ɽ٤ʸ󤬻ꤷʤ
ˤϡꤷ˱ͤɽ롥10ʿͤ'0'ǻϤޤˤϡ
δ֤'0'롥

ޤintptr_tΥlongΥʾǤĶˤƤϡ
եޥåȻѤ뤳ȤǤ롥¾ΥեޥåȻ'l'
ղäˤ̵뤹%lc%lsˤбƤʤˡ

	%ld		long_tȤߤʤ10ʿɽ
	%lu		ulong_tȤߤʤ10ʿɽ
	%lx		ulong_tȤߤʤ16ʿʱʸϾʸˤɽ
	%lX		ulong_tȤߤʤ16ʿʱʸʸˤɽ

arg1argn˥ݥ󥿤Ϥ%sбξˤˡݥ
λؤǡϡΥޥ򽪤ѲƤϤʤʤʸ
ϤȤꤷƤ롥

(3) void syslog(uint_t prio, const char *format, ...)

formatʸ󤪤Ӥ³å򡤥̤
LOG_TYPE_COMMENTΥȤơprioǽϤ뤿δؿǡ
οѤˤΡformat³Ϻ5ĤޤǡformatӤ
³ˤϡsyslog_nƱͤ¤롥

Υ饤֥ؿϡѿ뤿ʸ򥹥
롥Τᡤ¹Ի֤Ĺʤǽꡤ߶ػ߾֤ǸƤӽ
٤ǤϤʤ˥ץꥱץबѤ뤳ȤꤷƤ
롥

(4) UINT LOG_MASK(UINT prio)

prioΤߥåȤ줿ӥåȥޥåפޥsyslog_msk_log
뤿Ѥ롥

(5) UINT LOG_UPTO(UINT prio)

prioʾν٤٤ƥåȤ줿ӥåȥޥåפޥ
syslog_msk_logϤ뤿Ѥ롥

8.1.8 ƥǽΤ¾Υӥ

ƥǽϡΥӥ˲äơΤ
ؿġ

(1) void syslog_initialize(intptr_t exinf)

ƥǽ롥Хåե˥󤬵ϿƤ
ˤϡõ롥syslog.cfgˤäơͥ˽롼Ȥ
Ͽ롥exinf̵뤵롥

8.2 ꥢ륤󥿥եɥ饤

ꥢ륤󥿥եɥ饤ФϡꥢݡȤ򰷤Υɥ饤Ф
롥

ꥢ륤󥿥եɥ饤Фϡƥॳե졼ե
serial.cfg򥤥󥯥롼ɤ뤳ȤǡƥȤ߹ळȤǤ롥
ꥢ륤󥿥եɥ饤ФƤӽФեǤϡserial.h
󥯥롼ɤ롥

ꥢ륤󥿥եɥ饤Фϡݡ˥ޥե2ĤĻѤ롥
ޥեŪAPIϡserial.cfg˴ޤޤƤ롥

8.2.1 ꥢ륤󥿥եɥ饤ФΥӥ

ꥢ륤󥿥եɥ饤ФƤӽФӥλͤϼ̤
Ǥ롥ǡꥢݡȤIDֹportidˤβϥåȰ
¸Ȥʤ롥

Υӥϡ󥿥ƥȤƤӽФȤϤǤ
ޤserial_rea_datserial_wri_datϡǥѥåα֤ǸƤ
ФȤϤǤʤ⡤ƤӽФˤE_CTX顼Ȥʤ롥

(1) ER serial_opn_por(ID portid)

portidǻꤵ줿ꥢݡȤ򥪡ץ󤷡ǽʾ֤
롥

(2) ER serial_cls_por(ID portid)

portidǻꤵ줿ꥢݡȤ򥯥롥

(3) ER_UINT serial_rea_dat(ID portid, char *buf, uint_t len)

portidǻꤵ줿ꥢݡȤ顤lenХȤʸbuf
ΰ롥lenХȼޤǡԤ֤Ȥʤ롥ʸ
ޤϥ顼ɤ֤

(4) ER_UINT serial_wri_dat(ID portid, const char *buf, uint_t len)

portidǻꤵ줿ꥢݡȤˡbuflenХȤʸ
롥lenХХåեޤǡԤ֤Ȥʤ롥ʸ
ϥ顼ɤ֤

(5) ER serial_ctl_por(ID portid, uint_t ioctl)

portidǻꤵ줿ꥢݡȤioctlǼͤꤹ
롥

ioctlˤϡʲɽ򡤥ӥå¤ȤäΤ
ꤹ롥

	IOCTL_ECHOʥХå⡼ɡ
		ΥӥåȤꤹȡꥢ륤󥿥եɥ饤Ф
		ХåԤŪˤϡХåեʸФ٤ˡ
		ʸ񤭽Ф

	IOCTL_CRLFʲԥ⡼ɡ
		LFline feedˤ񤭽ФȡCRcarriage returnˡLFѴ
		ƽ񤭽Ф

	IOCTL_FCSNDե
		ʸФơXON/XOFFˤեԤ
		ʤSTOPʥȥ-Sˤߤ
		STARTʥȥ-QˤƳ롥

	IOCTL_FCANYեǤդʸƳ
		IOCTL_FCSNDꤷƤˡ˼Ǥդʸ
		Ƴ롥

	IOCTL_FCRCVʼե
		ʸФơXON/XOFFˤեԤ
		ʤХåեλĤΰ褬ʤʤSTOPʥȥ
		-SˤФĤΰ褬STARTʥȥ-Qˤ
		Ф롥

ʤץľΥǥեȤͤ(IOCTL_ECHO | IOCTL_CRLF |
IOCTL_FCSND | IOCTL_FCRCV)Ǥ롥

(6) ER serial_ref_por(ID portid, T_SERIAL_RPOR *pk_rpor)

portidǻꤵ줿ꥢݡȤξ֤򻲾Ȥpk_rporǻꤵѥ
Ȥ֤ѥåreacntˤϼХåեʸwricntˤ
Хåեʸ֤

8.2.2 ꥢ륤󥿥եɥ饤ФΤ¾Υӥ

ꥢ륤󥿥եɥ饤ФϡΥӥ˲äơ
̤ʸμФġϡͥ˽롼
ȤϿ롥ޤåȰ¸ǡλ
ߥӥ롼ġϿserial.cfg˴ޤޤ롥

(1) void serial_initialize(intptr_t exinf)

ꥢ륤󥿥եɥ饤Ф롥ͥ˽롼
Ͽ롥exinf̵뤹롥

(2) bool_t serial_get_chr(ID portid, char *p_c)

portidǻꤵ줿ꥢݡȤХåեʸp_cλؤ
˼Фtrue֤ؿʸʤäˤϡfalse֤λ
롼ǸƤӽФȤꤷƤ롥

8.3 ƥ

ƥϡƥǽФ
ƥγ˽Ϥ뤿ΥӥǤ롥

ASPͥΥ꡼ѥå˴ޤޤ륷ƥϡꥢ
ݡȤ˥ʸηǽϤΤǡƥΰ
Ȥդ󶡤Ƥ롥

Υƥϡƥॳե졼ե
logtask.cfg򥤥󥯥롼ɤ뤳ȤǡƥȤ߹ळȤǤ롥
ƥΥӥƤӽФեǤϡlogtask.h򥤥
롼ɤ롥

ƥ¹ԳϤȡ٤LOG_EMERGΥ
٥ϵǽѤƽϤ٤LOG_NOTICE⤤
Хåե˵Ͽ褦ˡƥǽ꤬ѹ롥

8.3.1 ƥΥӥ

ƥΥӥƤӽФӥλͤϼ̤
롥

(1) ER logtask_flush(uint_t count)

ƥǽΥХåեΥοcountʲˤʤޤԤġ
count0ξˤϡꥢ륤󥿥եɥ饤ФХåե
ʤΤԤġ

8.3.2 ƥΤ¾Υӥ

ƥϡΥӥ˲äơᥤȽλ
ġᥤϥȤơλϽλ롼Ȥ
Ͽ롥Ͽlogtask.cfg˴ޤޤ롥

(1) void logtask_main(intptr_t exinf)

ƥΥᥤexinfˤϡϤ륷ꥢݡ
ȤIDֹϤ

(2) void logtask_terminate(intptr_t exinf)

ƥνλꥢ륤󥿥եɥ饤ФХ
եѤ줿ǡȡХåե˵Ͽ줿٥
ϵǽѤƽϤ롥Ϥ٤󤬤ˤϡ
ˡ"-- buffered messages --"ȤʸϤ롥exinf̵
롥

δؿλ롼ȤϿ뤳Ȥǡͥ뽪λ̤
ϤΥΤۤȤɤϤ뤳ȤǤ롥̤ϤΥ
⡤ƥΥᥤХåեФ
ޤꥢ륤󥿥եɥ饤ФƤʤϡδؿǤ
ϤǤʤ

8.4 ͥ뵯ưåν

ͥ뵯ưåνϤϡͥεưˡͥ̾ΤС
ֹ桤ɽʤɤϤ뤿εǽǤ롥

ͥ뵯ưåνϤϡƥॳե졼ե
banner.cfg򥤥󥯥롼ɤ뤳ȤǡƥȤ߹ळȤǤ롥

ͥ뵯ưåνϤϡδؿǹ롥

(1) void print_banner(intptr_t exinf)

ƥǽѤơͥ뵯ưåϤ롥banner.cfg
ˤäơͥ˽롼ȤϿ롥exinf̵뤵롥


ݡȥ饤֥

ݡȥ饤֥ϡץꥱ䥷ƥॵӥ뤿
ѤǤ饤֥ؿǤ롥

9.1 Ūʥ饤֥ؿ

Ūʥ饤֥ؿѤˤϡt_stdlib.h򥤥󥯥롼ɤɬ
פ˱strerror.ct_perror.c򥳥ѥ롦󥯤롥

(1) const char *itron_strerror(ER ercd)

ercdǼ륨顼ɤбᥤ󥨥顼ɤʸ֤

(2) void t_perror(uint_t prio, const char *file, int_t line,
										const char *expr, ER ercd);

ӥ뤬顼֤Ѥ뤳Ȥꤷؿǡե
ֹ̾桤ᥤ󥨥顼򡤽prioǡƥǽ
ѤƽϤ롥

9.2 塼饤֥ؿ

塼饤֥ϡ塼إåޤ󥰹¤Υ֥󥯥塼
򰷤饤֥Ǥ롥塼إåμȥϥ塼ƬΥ
ꡤȥϥ塼ΥȥȤ롥ޤ塼ƬΥ
ȥȥȡ塼Υȥμȥϡ塼إå
Ȥ롥Υ塼ϡȥꡤȥȤ⼫ʬȤؤ塼إ
Ǥ魯

塼饤֥ؿѤˤϡqueue.h򥤥󥯥롼ɤ롥

塼إåȥȥΤΥǡ¤ȤơQUEUE¤ΤѤ롥
QUEUE¤Τϼ̤ꡥ

	typedef struct queue {
		struct queue *p_next;		/* ȥؤΥݥ */
		struct queue *p_prev;		/* ȥؤΥݥ */
	} QUEUE;

塼ΤѰդƤؿϼ̤ꡥ

(1) void queue_initialize(QUEUE *p_queue);

塼롥p_queueˤϥ塼إåꤹ롥

(2) void queue_insert_prev(QUEUE *p_queue, QUEUE *p_entry);

p_queueǻꤹ륨ȥˡp_entryǻꤹ륨ȥ롥
p_queue˥塼إåꤷˤϡ塼p_entryǻꤹ
륨ȥ뤳Ȥˤʤ롥

(3) void queue_insert_next(QUEUE *p_queue, QUEUE *p_entry);

p_queueǻꤹ륨ȥμˡp_entryǻꤹ륨ȥ롥
p_queue˥塼إåꤷˤϡ塼Ƭp_entryǻꤹ
륨ȥ뤳Ȥˤʤ롥

(4) void queue_delete(QUEUE *p_entry);

p_entryǻꤹ륨ȥ򡤥塼롥

(5) QUEUE *queue_delete_next(QUEUE *p_queue);

p_queueǻꤹ륨ȥμΥȥ򥭥塼
ȥ֤p_queue˥塼إåꤷˤϡ塼ƬΥ
ȥФȤˤʤ롥p_queue˶Υ塼ꤷƸƤӽФƤϤʤ
ʤ

(6) bool_t queue_empty(QUEUE *p_queue);

塼ξˤtrueǤʤˤfalse֤p_queueˤ
塼إåꤹ롥

9.3 ƥѥ饤֥ؿ

ƥѥ饤֥ؿϡեޥåȽϤ뤿
ˡƥӥƥǽѤ뤿δؿǤ롥

ƥѥ饤֥ؿѤˤϡlog_output.h򥤥
롼ɤlog_output.c򥳥ѥ롦󥯤롥

(1) void syslog_printf(const char *format, const intptr_t *p_args,
												void (*putc)(char))

formatǻꤵեޥåȵҤp_argsǻꤵ󤫤
å1ʸϴؿputcѤƽϤ롥

(2) void syslog_print(const SYSLOG *p_syslog, void (*putc)(char))

p_syslogǻꤵʸľ1ʸϴؿputcѤƽ
Ϥ롥

(3) void syslog_lostmsg(uint_t lost, void (*putc)(char))

lostĤΥ󤬼줿ݤΥå1ʸϴؿputcѤƽ
Ϥ롥

9.4 ¹Իʬ۽ץ⥸塼

¹Իʬ۽ץ⥸塼ϡƥΥꥢ륿ǽɾ뤿
ˡץ֤μ¹Ի֤¬ʬۤ򽸷סɽ뤿Υ
֥ؿǤ롥

¹Իʬ۽ץ⥸塼Ѥˤϡhistogram.h򥤥󥯥롼ɤ
histogram.c򥳥ѥ롦󥯤롥

¹Իʬ۽ץ⥸塼ϡʣΥץ֤μ¹Ի֤¬
סɽ뤳ȤǤ롥ץˡ¹ԻʬۤϿ뤿
Υǡ¤ġɤΥǡ¤Ѥ뤫IDֹhistidˤǻ
ꤹ롥ѤǤǡ¤οϡTNUM_HIST롥ʤ
IDֹȤơ1TNUM_HISTꤹ뤳ȤǤ롥TNUM_HISTϡǥե
ͤhistgram.cƤꡤѥ륪ץ䥿å
¸target_test.hޤϤ饤󥯥롼ɤեˤˤ
뤳ȤǤ롥

åȰ¸ѹƤʤ硤¹Իʬ۽ץ⥸塼
ϡͥǽɾѥƥ򻲾Ȥ뵡ǽget_utmˤѤƼ
Ի֤¬롥Τᡤ¹Ի֤ϥޥñ̤ǵϿ
ϥåȰ¸ˡޤϿ֤ˤϡ¬ΤΥХإå
get_utmμ¹Ի֡ܦˤޤޤ롥

åȰ¸ѹƤλͤˤĤƤϡåȰ
¸Υ桼ޥ˥奢򻲾Ȥ뤳ȡ

(1) void init_hist(ID histid, uint_t maxval, uint_t histarea[])

histidǻꤵ줿ǡ¤롥maxvalˤϵϿ֤
histareaˤϵϿΰƬϤꤹ롥histareaǻϤޤ뵭ΰϡ
ǿmaxval˻ꤷ+1uint_tȤƳݤ롥㤨С
maxval1000ꤹˤϡhistareaˤǿ1001uint_t
ƬϤϤ

(2) void begin_measure(ID histid)

¹Ի֤¬ץ֤ľ˸ƤӽФؿhistidǻꤵ
ǡ¤ˡߤΥƥϿ롥

(3) void end_measure(ID histid)

¹Ի֤¬ץ֤ľ˸ƤӽФؿߤΥƥ
ȡhistidǻꤵ줿ǡ¤˵Ͽ줿ϻ狼顤ץ
֤μ¹Ի֤ᡤη̤Ͽ롥

(4) void print_hist(ID histid)

ƥǽѤơ¹Իʬۤη¬̤Ϥ롥


ƥȥץ

ƥȥץϡͥεǽƥȤǽɾԤΥץ
ෲǤ롥

10.1 ƥȥץѥ饤֥

ƥȥץѥ饤֥ϡץΥåݥȤ
Ǽ¹Ԥ줿ȤʤɡץबưƤ뤳Ȥå
뤿δؿǤ롥ץबưƤʤȤ򸡽Ф
ˤϡץλ롥

ƥȥץѥ饤֥ؿѤˤϡtest_lib.h򥤥󥯥롼
ɤtest_lib.c򥳥ѥ롦󥯤롥

(1) void check_point(uint_t count)

åݥȤ̲᤹ݤ˸ƤӽФؿcountˤϡܤΥå
ݥȤǤ뤫ꤹʺǽΥåݥȤǤ1ꤹˡ
countͤǽΥåݥȤˤƤ1Ǥʤˡʹߤ
åݥȤˤƤϡΥåݥ̲count˻ꤷ
ͤ1äͤǤʤˡץबưƤʤȸʤ
ץλ롥

(2) void check_finish(uint_t count)

ǸΥåݥȤãݤ˸ƤӽФؿcountˤϡܤ
åݥȤǤ뤫ꤹʺǽΥåݥȤǤ1ꤹ
ˡcountͤΥåݥ̲count˻ꤷͤ1
ͤǤʤˡץबưƤʤȸʤδؿ
ϡץबưƤ롿ʤ˴ؤ餺ץλ
롥

(3) void check_assert(bool_t exp)

expǤ뤳Ȥå˸ƤӽФؿexpǤ
ˡץबưƤʤȸʤץλ롥

(4) void check_ercd(ER ercd, ER expected_ercd)

ercdexpected_ercd˰פƤ뤳Ȥå˸ƤӽФؿ
ercdexpected_ercd˰פƤʤˡץबưƤ
ʤȸʤץλ롥

(5) void check_state(bool_t ctx, bool_t loc, PRI ipm,
						bool_t dsp, bool_t dpn, bool_t tex)

ƥȤˤơƥ֤ԤΤˤʤäƤ뤫
å˸ƤӽФؿctxlocdspdpntexˤϤ줾
sns_ctx()sns_loc()sns_dsp()sns_dpn()sns_tex()ͤȤƴԤ
ͤipmˤget_ipm()ǻȤǤͥ٥ޥȤƴԤ
ͤꤹ롥Τ줫ԤͤȰפƤʤˡ
ץबưƤʤȸʤץλ롥

(6) void check_state_i(bool_t ctx, bool_t loc,
						bool_t dsp, bool_t dpn, bool_t tex)

󥿥ƥȤˤơƥ֤ԤΤˤʤäƤ뤫
å˸ƤӽФؿctxlocdspdpntexˤϤ줾
sns_ctx()sns_loc()sns_dsp()sns_dpn()sns_tex()ͤȤƴԤ
ͤꤹ롥Τ줫ԤͤȰפƤʤˡ
ץबưƤʤȸʤץλ롥

(7) void set_bit_func(BIT_FUNC bit_func)

åݥȤˤƸƤӽФʿǴؿꤹ뤿δؿ

(8) void test_start(char *progname)

ƥȳϻˡƥȥץ̾Ϥ뤿δؿ

(9) void syslog_flush(void)

ƥǽ˵Ͽ줿٥ϵǽѤʸ
ϴؿˤϤ롥

(10) void test_finish(void)

ץλؿåݥȤѤʤˡδ
Ѥ롥

10.2 ͥ

åݥȤˤƸƤӽФʿǤ˻ȤΥץȤơ
ͥѰդƤ롥ͥϡͥ
γƥǡ¤ΰ򸡺ʸǤ̤ˡ

ͥѤˤϡbit_kernel.c򥳥ѥ롦
롥

(1) ER bit_kernel(void)

ͥγƥǡ¤ΰ򸡺ǧǤE_OK
ǤʤäE_SYS顼֤ؿE_SYS顼֤ݤΥ֥顼
ɤȤơǧǤʤäܤ򼨤ɤ֤

10.3 ǽƥȥץ

testǥ쥯ȥ֤줿"test"ǻϤޤץϡͥεǽ
ȤԤΥץǤ롥

ǽƥȥץϥƥȥץѥ饤֥ѤƤ뤿ᡤ
ۤˤϡMakefileAPPL_COBJSˡtest_lib.oɲäɬפ
롥ե졼󥹥ץȤѤˤϡ-Uץ
test_lib.oꤹ롥ŪˤϡΥޥɤ¹ԤФ褤ʹ
Υǥ쥯ȥ꤬ASPͥΥեŸǥ쥯ȥľ
ˤȲꤷƤˡ

	% perl ../configure -T <åά> -A <ǽƥȥץ̾> \
											-a ../test -U test_lib.o

CPU㳰Υƥ(1)(13)ϡƱΥƥॳե졼
ѤƤ뤿ᡤtest_cpuexc.cfg򼡤Τ褦˥ԡƤɬ
롥

	% cp ../test/test_cpuexc.cfg test_cpuexc<ƥֹ>.cfg

СѰդƤ뵡ǽƥȥץϼ̤ꡥ

(1) test_cpuexc1			CPU㳰Υƥ(1)
(2) test_cpuexc2			CPU㳰Υƥ(2)
(3) test_cpuexc3			CPU㳰Υƥ(3)
(4) test_cpuexc4			CPU㳰Υƥ(4)
(5) test_cpuexc5			CPU㳰Υƥ(5)
(6) test_cpuexc6			CPU㳰Υƥ(6)
(7) test_cpuexc7			CPU㳰Υƥ(7)
(8) test_cpuexc8			CPU㳰Υƥ(8)
(9) test_cpuexc9			CPU㳰Υƥ(9)
(10) test_cpuexc10			CPU㳰Υƥ(10)
(11) test_cpuexc11			CPU㳰Υƥ(11)
(12) test_cpuexc12			CPU㳰Υƥ(12)
(13) test_cpuexc13			CPU㳰Υƥ(13)
(14) test_dlynse			sil_dly_nse˴ؤƥ
(15) test_sem1				ޥեǽΥƥ(1)
(16) test_sem2				ޥեǽΥƥ(2)
(17) test_sysstat1			ƥ֤˴ؤƥ(1)
(18) test_task1				⥸塼Υƥ(1)
(19) test_tex1				㳰˴ؤƥ(1)
(20) test_tex2				㳰˴ؤƥ(2)
(21) test_utm1				get_utm˴ؤƥ(1)

CPU㳰ΥƥȥץΰϡCPU㳰ϥɥ餫꥿󤷤
ˡCPU㳰ȯ̿μ¹Ԥ³뤳Ȥ˺
Ƥ롥ΩʤˤϡƥȥץΥ
Ȱ¸ˤơCANNOT_RETURN_CPUEXCޥ뤳ȤɬפǤ
롥ܤϡ֥åȰ¸ ݡƥ󥰥ɡפ򻲾Ȥ뤳ȡ

10.4 ǽɾץ

testǥ쥯ȥ֤줿"perf"ǻϤޤץϡͥǽɾ
ԤΥץǤ롥

ǽɾץϡ¬оݤȤʤ򷫤֤¹Ԥμ¹Ի
¬ơ¹Իʬۤɽ롥

¬¹Ի֤ˤϡַ¬ΥХإåɡʻַ¬μ¹Ԥˤ
֡ˤޤޤ롥¬оݤν̣μ¹Ի֤뤿ˤϡ
¬줿֤顤ַ¬ΥХإåɤ¬뤿Υץ
perf0ˤǷ¬줿֤򸺻ɬפ롥

ޤ¹Ի֤η¬ϡ̤˵Ҥʤ¤ߤĤޤ޹Ԥᡤ
ߥϥɥʾʤȤ⡤޳ߥϥɥˤν֤ޤޤ줿
¹Է̤¬롥

ͥǽɾˤäƤϡϡɥä˥åˤ
αդɬפ롥

ǽɾץϥƥȥץѥ饤֥ȼ¹Իʬ۽ץ
塼ѤƤ뤿ᡤۤˤϡMakefileAPPL_COBJSˡ
test_lib.ohistogram.oɲäɬפ롥ե졼󥹥
ץȤѤˤϡ-Uץtest_lib.ohistgram.oꤹ
롥ŪˤϡΥޥɤ¹ԤФ褤ʹѤΥǥ쥯ȥ꤬
ASPͥΥեŸǥ쥯ȥľˤȲꤷ
ˡ

	% perl ../configure -T <åά> -A <ǽɾץ̾> \
									-a ../test -U "test_lib.o histogram.o"

СѰդƤǽɾץϼ̤ꡥ

(1) perf0		ַ¬ΥХإåɤɾ

ַ¬ΥХإåɤ¬뤿ΥץࡥŪˤϡΥץ
begin_mearsureend_measure³ƸƤӽФץˤμ¹Ի
֤¬롥

¾ǽɾץǷ¬줿֤顤ΥץǷ¬줿
֤򸺻֤¬оݤν̣μ¹Ի֤Ǥ롥

(2) perf1		slp_tskwup_tskˤ륿ڴ֤ɾ

slp_tskwup_tskˤ륿ڴ֤¬뤿Υץࡥ
Ūˤϡ⤤ͥ٤ΥԤ֤Ǥˡ㤤ͥ٤Υ
wup_tskˤ⤤ͥ٤Υ򵯾⤤ͥ٤Υڤ괹
ޤǤλ֤ȡ⤤ͥ٤Υslp_tskˤ굯Ԥ֤Ȥʤꡤ
ͥ٤Υڤ괹ޤǤλ֤¬롥

(3) perf2		snd_pdqν֤ɾ

ͥ٥ǡ塼ѤƤǡοˤꡤsnd_pdqν֤
ɤΤ褦Ѳ뤫¬뤿ΥץࡥŪˤϡͥ٥ǡ
塼˹⤤ͥ٤ΥǡnѤƤˡsnd_dtqˤ
ͥ٤ΥǡΤˤ֤¬롥n010203040
50100200300ѲƷ¬롥

(4) perf3		set_flgν֤ɾ

Ԥ륿οˤꡤset_flgν֤ɤΤ褦Ѳ뤫
¬뤿ΥץࡥŪˤϡTA_WMUL°Υ٥ȥե饰Ф
ơnĤΥԤäƤˡset_flgˤꤽΤ٤ƤԤ
Τˤ֤¬롥n0123451020ѲƷ¬
롥

(5) perf4		act_tskiact_tskν֤ȥڴ֤ɾ

act_tskiact_tskν֤ȥڴ֤¬뤿Υץࡥ
Ūˤϡ(1) ڴ򵯤ʤact_tskν֡(2) 
򵯤act_tskν֡ʥڴ֤ޤˡ(3) ڴ
򵯤iact_tskν֡ʥڴ֤ȥ޳Ǽ¹Ԥ
륷ƥι֤ޤˤ3Ĥλ֤¬롥

Ѿդȥҥ

11.1 ޥɥ饤Фȹ

ޥɥ饤Ф򥷥ƥȤ߹िˡƥॳե졼
եƬtarget_timer.cfg򥤥󥯥롼ɤɬפ롥

11.2 assertޥν

ASPͥΥˤϡassertޥȤƤ롥assertޥ
t_stddef.h˴ޤޤ졤assertԤκǸν̾ϡץ
ߤˤϡåȰ¸TOPPERS_assert_abortǷ
ꤵ롥

assertԤ硤ƥ೫ȯϥǥХåȤΤ˾ޤ
ƥƯнˡϡƥФ׷˰¸롥ǡ
åȰ¸TOPPERS_assert_abort򡤥ƥ׷˹פŬڤʽ
֤ɬפ롥ƥ׷ˤäƤϡNDEBUGassert
ޥν򥪥֥ȥ椫äʡ6.2 ѥ륪ץ
򻲾ȡˡͤ롥

11.3 ƥǽΰ

TOPPERS/ASPͥǤϡƥ೫ȯθƥ
ǽȤ߹ǥեȤȤƤ롥

ФơTOPPERS/ASPͥѤƥ򵡴Ȥ߹ϡ
ƥǽ̣ʤ¿ؤȹߤ˺ݤƤΥ
ǽˡˤϡʲˡͤ롥

(1) ƥǽѤʤ

ƥǽڻѤʤˤϡƥǽ򥷥ƥ
Ȥ߹ޤʥƥॳե졼եsyslog.cfg򥤥
롼ɤʤˡƥǽΥӥƤӽФե
TOPPERS_OMIT_SYSLOGƥѥ뤹Ф褤

(2) ѤΤߤԤ

Ȥ߹֤ǡꥢݡ𤷤ƥƥ³
뤳ȤǤˤϡƥƯˤϥѤΤߤԤ
ƥ˾㳲ʤɤ˥ФȤǡ㳲θʬϤ
Ȥ뤳ȤǤ롥

ŪˡȤơ2Ĥˡͤ롥

(2-1) ٥ϤѤ

ɬפʥ٥ϵǽѤƽϤ褦ꤷ٥
ʸϴؿtarget_fput_logˤ줿ʸŵŪˤϥ
ХåեˤѤ褦ˤ롥ƥξ㳲ˤϡΥΰ
ɤ߽Ф

(2-2) ƥǽΥХåեѤ

ɬפʥ򥷥ƥǽΥХåե˵Ͽ褦ꤹ롥
ƥưʤȡϥХåեѤ
ƥξ㳲ˤϡХåեΰɤ߽Фƥ
ưƥϤ롥

(3) ȯΤޤޤȤ

ƥǽ򡤥ƥ೫ȯΤޤѹꥢݡ
˥ήˡͤ롥

11.4 ֥IDδ

TOPPERS/ASPͥǤϡ֥ȤIDֹ򡤥ե졼
դˡܤȤʤäƤ롥

ץꥱץǥ֥ȤIDֹ򻲾Ȥˤϡ
2Ĥˡͤ롥

(1) ֥ȼ̾Ѥ

֥ΤŪAPICRE_YYYˤ1ѥ᡼˵Ҥ
ȼ̾򡤥ץꥱץǤѤˡ

ե졼ϡ֥ȼ̾򡤳դIDֹ˥ޥ
CץץåΥǥ쥯ƥ֡#defineˤkernel_cfg.h
뤿ᡤץꥱץफkernel_cfg.h򥤥󥯥롼ɤ
ɬפ롥

ˡϡ֥ȥIDֹ椬ľޤ뤿˼¹Ը
Ψɤǡե졼¹Ԥkernel_cfg.h񤭴
٤ˡץꥱץκƥѥ뤬ɬפˤʤȤ
롥Τᡤץꥱץեǡ
ΥեΤߤǥ֥ȼ̾򻲾Ȥ빽ˤȤäפ
뤳Ȥ˾ޤ

(2) ֥ȤIDֹݻѿѤ

֥ȤIDֹݻconst°ղäѿѰդץꥱ
ץǤϡѿѤˡ

㤨СTASK1Ȥ֥ȼ̾ΥФơΤ褦ѿ
Ѱդ롥

const ID TASK1_id = TASK1;

ץꥱץǤϡѿTASK1_idˤѤ뤳Ȥǡ
ե졼¹Ԥkernel_cfg.h񤭴٤ˡ嵭ѿ
ޤեΤߤƥѥ뤹Ф褤Ȥˤʤ롥

ˡϡץꥱץκƥѥǾ¤ˤǤ
ǡѿΤΥΰ褬ɬפˤʤ뤳Ȥ˲äơʥץ
åˤäƤϡѿΤΥХإåɤȤ
롥ޤǤϤʤѿǤ뤳Ȥ顤¾ѿνˤϻȤ
Ȥ¤롥

ʤTOPPERS/ASPͥΥե졼ϡ--external-idץ
ղä뤳Ȥˤꡤ嵭ѿkernel_cfg.c뵡ǽ
äƤΤǡ٤ƤΥ֥ID򤳤ˡǻȤˤϡ
εǽѤ뤳Ȥ侩롥

ե졼ˤIDֹդΤ⤦1ĤβȤơե
졼եνˤꡤ֥IDγդѤäƤޤ
Ȥ󤲤롥ϡץꥱ󥽥եȥ߷׻ͽID
ֹ椬ܤƤ䡤ǥХåȤˤIDֹľܰäƤ
ˡȸΨ㲼ǽͤ롥

б뤿ˡTOPPERS/ASPͥΥե졼ˡ
IDֹγդ̤ե˽񤭽Фǽ--id-output-fileץ
ȡIDֹγդե뤫ൡǽ--id-input-fileץ
ѰդƤ롥εǽѤơե졼¹Ԥ٤ˡ
˼¹Ԥ˥ե˽񤭽ФIDֹγդळȤǡ
¹ԻƱդԤȤǤ롥TOPPERS/ASPͥ
ϡIDֹȴΤϵʤᡤ֥Ȥοä
ˤϡIDֹ椬礭Υ֥Ȥäơ˥顼Ȥʤ롥
ξˤϡߡΥ֥Ȥˡǲ򤹤뤷ʤ

11.5 ͥܥΥ͡

ASPͥǤϡ⥸塼̾Τ¾Υ⥸塼̾ΤȾͤ
뤳Ȥ򤱤뤿ˡͥܥϡC٥ǡƬ
"_kernel_"ޤ"_KERNEL_"Ǥ̾ΤȤƤ롥

򥽡ɤβξΩ뤿ˡASPͥǤϡ
ɤϼ̾ѤƵҤCץץåΥޥ#define
Ѥơ"_kernel_"ޤ"_KERNEL_"ǻϤޤ̾ʼ̾
yyyyyξˤϡ_kernel_yyyyyˤ˥͡हȤߤѤƤ롥

ŪˤϡϢǥ쥯ȥxxx_rename.def֤͡
ΤΥإåեxxx_rename.hxxx_unrename.hˤ
ġutils/genrenameˤѰդƤ롥

λȤߤϡɤβΩİǡ⤢롥㤨
С¿ΥǥХåǡ̾Τȥ֥ȥ̾
ۤʤ뤿ˡѿ̾ꤷͤɤꡤؿ̾
ꤷƥ֥졼ݥȤ֤ȤäȤǤʤ

ξб뤿ˡASPͥǤϡγ̾
͡ह뤿Υ桼ƥƥutils/applyrenameˤѰդƤ롥
applyrename桼ƥƥˡ͡եxxx_rename.defˤΥ
եåxxxʬˤȡ͡षեꥹȤͿȡ
͡Ԥʤ㤨Сkernelǥ쥯ȥΤ٤ƤΥեФ
ơͥܥ͡हˤϡΥޥɤ¹Ԥ
褤

	% cd kernel
	% ../utils/applyrename kernel *

ޤåȰ¸Υǥ쥯ȥΤ٤ƤΥեФơ
ܥ͡हˤϡΤ褦ʥޥɤ¹ԤФ褤

	% cd target/dve68k_gcc/
	% ../../utils/applyrename target *
	% ../../utils/applyrename ../../kernel/kernel *

11.6 ȥ졼ϿΥץ륳ɤλˡ

ȥ졼ϿΥץ륳ɤåȰ¸Ȥ߹ޤƤ
ˤϡե졼󥹥ץȤˤѤ뤳Ȥؼ
ץ-rˤղä뤳Ȥǡ˥ȥ졼Ͽ뵡ǽ
ͭˤʤ롥

ȥ졼ϿλˡΰȤơƥ൯ư˥ȥ졼
Ͽ򳫻Ϥƥཪλ˵Ͽȥ졼פ뤿ˤϡ
ƥॳե졼ե˼Τ褦ʵҤɲä롥

	#include "logtrace/trace_config.h"
	ATT_INI({ TA_NULL, TRACE_AUTOSTOP, trace_initialize });
	ATT_TER({ TA_NULL, target_fput_log, trace_dump });

ǡ롼trace_initializeˤؤΰϡľΥȥ졼
ư⡼ɤꤹΤǤ롥Ǥư⡼ɤˤĤƤϡ
arch/logtrace/trace_config.hΥȤ롥

λ롼trace_dumpˤϡϿ줿ȥ졼򥿡åȰ
¸٥ϵǽtarget_fput_logˤѤƥפ뤿ΤΤ
롥ȥ졼̤ˡǼФˤϡλ롼Ͽ
ɬפϤʤ

ʾˡǤϡtrace_initialize롼ǡtrace_dumpλ
롼ǸƤӽФƤ뤿ᡤ롼ƤӽФ佪λ롼
ƤӽФˤϡȥ졼ϿεǽѤǤʤ롼
ƤӽФ佪λ롼ƤӽФ˼¹Ԥ㤨
Сͥ륪֥Ȥν䡤trace_initializeϿ
롼trace_dumpϿλ롼ˤǥ
졼ϿεǽѤ뤿ˤϡtrace_initializetrace_dump
ŬڤʾǸƤ֤褦˽뤳ȤɬפǤ롥

11.7 ƥεưν

ƥεư˥ץꥱɬפȤʤԤε
ǽȤƽ롼ѰդƤ뤬롼󤬼¹Ԥ
ᤤߥ󥰤Ǽ¹Ԥ뤳Ȥɬפʽ礬롥

Τ褦ʾѤ뤿ˡɸŪʥȥåץ⥸塼뤫顤
åȥƥ¸νեåhardware_init_hookˤƤӽФȤ
Ƥ롥hardware_init_hookϡͥΥåȰ¸Ѱդ
ΤɸǤ뤬򥢥ץꥱѰդΤ֤
ǥץꥱɬפȤʤԤȤǤ롥

hardware_init_hookκˤϡbssdata
󤬽ƤʤȤ䡤饤֥꤬ƤʤȡC
ǵҤǤȤϸ¤ʤȤʤɤդɬפǤ롥ˤäƤϡ
֥åȰ¸ ݡƥ󥰥ɡפ򻲾Ȥ뤳ȡ

ͥΥȥåץ⥸塼뤬hardware_init_hookƤӽФ褦
Ƥʤˤϡȥåץ⥸塼򥢥ץꥱ
ѰդΤ֤ˡ侩롥

11.8 rodataRAM֤

餫ͳrodataRAM֤硤dataƱͤˡ
νͤROM֤ȥåץ⥸塼RAM˥ԡΤ
ľǤ롥¸ˤϡdataμ谷򻲹ͤˡ󥫥
ץȤȥȥåץ⥸塼ɬפ뤬˲äơ
ʲ֤ɬפǤ롥

ե졼ϡѥ1ȥѥ3ˤơɥ⥸塼Υܥ
եѤơɥ⥸塼rodataɤ߹ळȤǡ
Ƽͤ롥ΤᡤrodatadataƱ
ͤ˰ȡΥɥ쥹RAMΥɥ쥹VMAȸƤ֡ˤ֥
ɥ쥹ROMΥɥ쥹LMAȸƤ֡ˤפʤʤ뤿ˡͤ
뤳ȤǤ顼Ȥʤ롥

ѥ1ǤΥ顼򤹤뤿ˤϡѥ1Υ󥯻cfg1_out󥯤
ˤˤϡrodataΥɥ쥹֥ɥ쥹פ
󥫥ץȡɸΥ󥫥ץȤϤΤ褦ˤʤäƤˤ
롥ץMakefileǤϡLDSCRIPTˤ󥫥ץȤꤹ
ΤǤϤʤLDFLAGSCFG1_OUT_LDFLAGS˰ۤʤ󥫥ץȤѤ륪
ץꤹФ褤

ѥ3ǤΥ顼򤹤뤿ˤϡե졼Υѥ3Υƥץ졼
ȥեˤơrodataƤ֥ɥ쥹饢
ɥ쥹˥ԡ롥Τˤϡѥ3Υƥץ졼ȥեΥ
Ȱ¸ǡLMA.ORDER_LISTΥƥץ졼ȥեѿꤹФ褤
Ūˡϡ֥åȰ¸ ݡƥ󥰥ɡפ򻲾Ȥ뤳ȡ


;

12.1 Ѿ

ASPͥѾϡƥեƬɽƤ롥ϡ
եƬɽƤԤͭƤ롥

Ѿ(3)(b)ˤơѤη֤TOPPERSץȤ𤹤
ˡȤƤϡASPͥѤʤ̾Τȱʬʲ̾
ȶȼξ򡤰ʲURLΥڡ𤹤ΤȤ롥

	http://www.toppers.jp/report.html

ޤκݤˡASPͥѤƤΥȤ䤴ո⤤ȹ
Ǥ롥

12.2 ݾڡŬݡ

ASP̵ͥݾڤ󶡤ƤΤǤ롥ȯԤTOPPERSץ
ȤϡASPͥ˴ؤơλŪФŬޤơ
ʤݾڤԤʤޤASPͥѤˤľŪޤϴŪ
ʤ»˴ؤƤ⡤Ǥʤ

ȯԤTOPPERSץȤϡASPͥ˴ؤ륵ݡȤ«
ƤʤASPͥ˴ؤƼ䤬ϡҤTOPPERS桼
᡼󥰥ꥹȤѤƤȹǤ롥μ¤ʥݡȤɬ
פʾˤϡͭǥݡȥӥ󶡤ƤҤ̤줿

12.3 Хݡ

ASPͥ˥Хȯ줿ˤϡҤTOPPERS桼
᡼󥰥ꥹȤ𤷤ߤ

᡼󥰥ꥹȤ˥Хʤɤ𤹤ˤϡɬפ˱Ƽ
Τ餻ߤ

	ѤƤ륫ͥ˴ؤ
		å¸ΥС
		ѤƤ륿åȰ¸ȤΥС
		TOPPERSץȤΥ꡼Ф¤սʤС

	åȥƥ˴ؤ
		åȥץåμ
		åȥܡμ

	ۥȤ˴ؤ
		OSΥСʥӥѥåŬѾ
		ѥʤɤγȯĶΥСCygwinΥС

12.4 ֥

TOPPERSץȤΥ֥ȤϡʲURLˤ롥

	http://www.toppers.jp/

TOPPERSץȤASPͥ˴ؤǿϡΥ֥Ȥ
뤳ȤǤ롥ޤASPͥκǿǤϡΥ֥Ȥ
ɤ뤳ȤǤ롥

12.5 TOPPERS桼᡼󥰥ꥹ

ASPͥޤTOPPERSץȤγȯʪΥ桼Ф
ӥ桼ߴ֤ξ򴹤ưפˤ뤿ˡTOPPERS桼᡼
󥰥ꥹȡusers@toppers.jpˤѰդƤ롥

Υ᡼󥰥ꥹȤˤϡïǤ⼫ͳϿ᡼դ뤳Ȥ
Ͽ԰ʳϥ᡼դǤʤˡޤդ줿᡼ϡï
Ǥ⼫ͳ˥֥ȤɤळȤǤ롥

᡼󥰥ꥹȤؤϿˡˤĤƤϡʲURLΥڡ롥

	http://www.toppers.jp/community.html

12.6 TOPPERSץȤΥиΥӥ

TOPPERSץȤΥФФƤϡ嵭˲äơASPͥ˴Ϣ
ƼΥӥѰդƤ롥

(1) TOPPERSȯԥ᡼󥰥ꥹ

TOPPERSץȤΥФϡASPͥ˴ؤ䡤Х
ɤˡTOPPERSȯԥ᡼󥰥ꥹȡdev@toppers.jpˤѤ뤳
ȤǤ롥

(2) ASPͥγȯٱ祵

ASPͥγȯٱΤTRACʥХȥå󥰥ƥˤʲ
URLˤTRACؤΥˤϡѥɤɬפǤˡ

	http://dev.toppers.jp/trac/asp/

TOPPERSץȤΥФϡΥȤ顤֥󥿥ե
subversionФˤꡤASPͥγȯΥС뤳Ȥ
롥ޤХȥå󥰥ǡ١˥뤳ȤǤ
ΥХؤΥ䡤ХϿ򤹤뤳ȤǤ롥

12.7 TOPPERSץȤؤλ

TOPPERSץȤǤϡηǥץȤ˹׸Ƥ
ץȤǳȯեȥ򤪻ȤץȤ˶̣
λäƤ롥TOPPERSץȤؤλˡˤĤƤϡ
ʲΥڡ롥

	http://www.toppers.jp/joinus.html


ե

13.1 ӥ

(1) ǽ

	ER ercd = act_tsk(ID tskid)
	ER ercd = iact_tsk(ID tskid)
	ER_UINT	actcnt = can_act(ID tskid)
	ER ercd = ext_tsk(void)
	ER ercd = ter_tsk(ID tskid)
	ER ercd = chg_pri(ID tskid, PRI tskpri)
	ER ercd = get_pri(ID tskid, PRI *p_tskpri)
	ER ercd = get_inf(intptr_t *p_exinf)
	ER ercd = ref_tsk(ID tskid, T_RTSK *pk_rtsk)

(2) °Ʊǽ

	ER ercd = slp_tsk(void)
	ER ercd = tslp_tsk(TMO tmout)
	ER ercd = wup_tsk(ID tskid)
	ER ercd = iwup_tsk(ID tskid)
	ER_UINT wupcnt = can_wup(ID tskid)
	ER ercd = rel_wai(ID tskid)
	ER ercd = irel_wai(ID tskid)
	ER ercd = sus_tsk(ID tskid)
	ER ercd = rsm_tsk(ID tskid)
	ER ercd = dly_tsk(RELTIM dlytim)

(3) 㳰ǽ

	ER ercd = ras_tex(ID tskid, TEXPTN rasptn)
	ER ercd = iras_tex(ID tskid, TEXPTN rasptn)
	ER ercd = dis_tex(void)
	ER ercd = ena_tex(void)
	bool_t state = sns_tex(void)
	ER ercd = ref_tex(ID tskid, T_RTEX *pk_rtex)

(4) Ʊ̿ǽ

	ER ercd = sig_sem(ID semid)
	ER ercd = isig_sem(ID semid)
	ER ercd = wai_sem(ID semid)
	ER ercd = pol_sem(ID semid)
	ER ercd = twai_sem(ID semid, TMO tmout)
	ER ercd = ini_sem(ID semid)
	ER ercd = ref_sem(ID semid, T_RSEM *pk_rsem)

	ER ercd = set_flg(ID flgid, FLGPTN setptn)
	ER ercd = iset_flg(ID flgid, FLGPTN setptn)
	ER ercd = clr_flg(ID flgid, FLGPTN clrptn)
	ER ercd = wai_flg(ID flgid, FLGPTN waiptn,
						MODE wfmode, FLGPTN *p_flgptn)
	ER ercd = pol_flg(ID flgid, FLGPTN waiptn,
						MODE wfmode, FLGPTN *p_flgptn)
	ER ercd = twai_flg(ID flgid, FLGPTN waiptn,
						MODE wfmode, FLGPTN *p_flgptn, TMO tmout)
	ER ercd = ini_flg(ID flgid)
	ER ercd = ref_flg(ID flgid, T_RFLG *pk_rflg)

	ER ercd = snd_dtq(ID dtqid, intptr_t data)
	ER ercd = psnd_dtq(ID dtqid, intptr_t data)
	ER ercd = ipsnd_dtq(ID dtqid, intptr_t data)
	ER ercd = tsnd_dtq(ID dtqid, intptr_t data, TMO tmout)
	ER ercd = fsnd_dtq(ID dtqid, intptr_t data)
	ER ercd = ifsnd_dtq(ID dtqid, intptr_t data)
	ER ercd = rcv_dtq(ID dtqid, intptr_t *p_data)
	ER ercd = prcv_dtq(ID dtqid, intptr_t *p_data)
	ER ercd = trcv_dtq(ID dtqid, intptr_t *p_data, TMO tmout)
	ER ercd = ini_dtq(ID dtqid)
	ER ercd = ref_dtq(ID dtqid, T_RDTQ *pk_rdtq)

	ER ercd = snd_pdq(ID pdqid, intptr_t data, PRI datapri)
	ER ercd = psnd_pdq(ID pdqid, intptr_t data, PRI datapri)
	ER ercd = ipsnd_pdq(ID pdqid, intptr_t data, PRI datapri)
	ER ercd = tsnd_pdq(ID pdqid, intptr_t data, PRI datapri, TMO tmout)
	ER ercd = rcv_pdq(ID pdqid, intptr_t *p_data, PRI *p_datapri)
	ER ercd = prcv_pdq(ID pdqid, intptr_t *p_data, PRI *p_datapri)
	ER ercd = trcv_pdq(ID pdqid, intptr_t *p_data, PRI *p_datapri, TMO tmout)
	ER ercd = ini_pdq(ID pdqid)
	ER ercd = ref_pdq(ID pdqid, T_RPDQ *pk_rpdq)

	ER ercd = snd_mbx(ID mbxid, T_MSG *pk_msg)
	ER ercd = rcv_mbx(ID mbxid, T_MSG **ppk_msg)
	ER ercd = prcv_mbx(ID mbxid, T_MSG **ppk_msg)
	ER ercd = trcv_mbx(ID mbxid, T_MSG **ppk_msg, TMO tmout)
	ER ercd = ini_mbx(ID mbxid)
	ER ercd = ref_mbx(ID mbxid, T_RMBX *pk_rmbx)

(5) סǽ

	ER ercd = get_mpf(ID mpfid, void **p_blk)
	ER ercd = pget_mpf(ID mpfid, void **p_blk)
	ER ercd = tget_mpf(ID mpfid, void **p_blk, TMO tmout)
	ER ercd = rel_mpf(ID mpfid, void *blk)
	ER ercd = ini_mpf(ID mpfid)
	ER ercd = ref_mpf(ID mpfid, T_RMPF *pk_rmpf)

(6) ִǽ

	ER ercd = get_tim(SYSTIM *p_systim)
	ER ercd = get_utm(SYSUTM *p_sysutm)

	ER ercd = sta_cyc(ID cycid)
	ER ercd = stp_cyc(ID cycid)
	ER ercd = ref_cyc(ID cycid, T_RCYC *pk_rcyc)

	ER ercd = sta_alm(ID almid, RELTIM almtim)
	ER ercd = ista_alm(ID almid, RELTIM almtim)
	ER ercd = stp_alm(ID almid)
	ER ercd = istp_alm(ID almid)
	ER ercd = ref_alm(ID almid, T_RALM *pk_ralm)

(7) ƥִǽ

	ER ercd = rot_rdq(PRI tskpri)
	ER ercd = irot_rdq(PRI tskpri)
	ER ercd = get_tid(ID *p_tskid)
	ER ercd = iget_tid(ID *p_tskid)
	ER ercd = loc_cpu(void)
	ER ercd = iloc_cpu(void)
	ER ercd = unl_cpu(void)
	ER ercd = iunl_cpu(void)
	ER ercd = dis_dsp(void)
	ER ercd = ena_dsp(void)
	bool_t state = sns_ctx(void)
	bool_t state = sns_loc(void)
	bool_t state = sns_dsp(void)
	bool_t state = sns_dpn(void)
	bool_t state = sns_ker(void)
	ER ercd = ext_ker(void)

(8) ߴǽ

	ER ercd = dis_int(INTNO intno)
	ER ercd = ena_int(INTNO intno)
	ER ercd = chg_ipm(PRI intpri)
	ER ercd = get_ipm(PRI *p_intpri)

(9) CPU㳰ǽ

	bool_t stat = xsns_dpn(void *p_excinf)
	bool_t stat = xsns_xpn(void *p_excinf)

13.2 ŪAPI

(1) ǽ

	CRE_TSK(ID tskid, { ATR tskatr, intptr_t exinf, TASK task,
								PRI itskpri, SIZE stksz, STK_T *stk })

(3) 㳰ǽ

	DEF_TEX(ID tskid, { ATR texatr, TEXRTN texrtn })

(4) Ʊ̿ǽ

	CRE_SEM(ID semid, { ATR sematr, uint_t isemcnt, uint_t maxsem })
	CRE_FLG(ID flgid, { ATR flgatr, FLGPTN iflgptn })
	CRE_DTQ(ID dtqid, { ATR dtqatr, uint_t dtqcnt, void *dtqmb })
	CRE_PDQ(ID pdqid, { ATR pdqatr, uint_t pdqcnt, PRI maxdpri, void *pdqmb })
	CRE_MBX(ID mbxid, { ATR mbxatr, PRI maxmpri, void *mprihd })

(5) סǽ

	CRE_MPF(ID mpfid, { ATR mpfatr, uint_t blkcnt, uint_t blksz,
										MPF_T *mpf, void *mpfmb })

(6) ִǽ

	CRE_CYC(ID cycid, { ATR cycatr, intptr_t exinf, CYCHDR cychdr,
								RELTIM cyctim, RELTIM cycphs })
	CRE_ALM(ID almid, { ATR almatr, intptr_t exinf, ALMHDR almhdr })

(8) ߴǽ

	CFG_INT(INTNO intno, { ATR intatr, PRI intpri })
	ATT_ISR({ ATR isratr, intptr_t exinf, INTNO intno, ISR isr, PRI isrpri })
	DEF_INH(INHNO inhno, { ATR inhatr, INTHDR inthdr })

(9) CPU㳰ǽ

	DEF_EXC(EXCNO excno, { ATR excatr, EXCHDR exchdr })

(10) ƥ๽ǽ

	DEF_ICS({ SIZE istksz, STK_T *istk })
	ATT_INI({ ATR iniatr, intptr_t exinf, INIRTN inirtn })
	ATT_TER({ ATR teratr, intptr_t exinf, TERRTN terrtn })

13.3 С

	2006ǯ1029	Release	1.A.0		ǽΥ꡼
	2007ǯ220	Release	1.A.1
	2007ǯ220	Release	1.A.2
	2007ǯ712	Release	1.B.0		ե졼򿷥С
	2007ǯ712	Release	1.B.1		饤󥹾촹
	2007ǯ716	Release	1.B.2
	2007ǯ721	Release	1.B.3		ǥ쥯ȥ깽ѹ
	2007ǯ820	Release	1.B.4		ĥѥåɲ
	2007ǯ1016	Release 1.B.5
	2007ǯ1115	Release 1.0.0		ǤΥ꡼
	2007ǯ1223	Release 1.1.0
	2008ǯ319	Release 1.2.0
	2008ǯ321	Release 1.2.1
	2008ǯ412	Release 1.3.0		̸˸Ƥκǽ
	2008ǯ513	Release 1.3.1		ǽΰ̸
	2008ǯ821	Release 1.3.2
	2009ǯ511	Release 1.4.0
	2010ǯ628	Release 1.5.0		ĥѥå̸
	2010ǯ81	Release 1.6.0		cfg-1.6б
	2011ǯ58	Release 1.7.0		ưŪǽĥѥåɲ
	2012ǯ1226	Release 1.8.0
	2014ǯ16	Release 1.9.0		åХåեǽĥɲ
	2014ǯ1117	Release 1.9.1
	2015ǯ530	Release 1.9.2
	201 ǯ   	Release 1.9.3

ʾ
