
             TOPPERS/JSPͥ 桼ޥ˥奢 

             Release 1.2бǽ: 15-Nov-2001

 Υ桼ޥ˥奢ϡITRON4.0ͽVer. 4.01.00ˤƤ
˵ҤƤޤITRON4.0ͽϡʲURL
뤳ȤǤޤ
        http://www.itron.gr.jp/SPEC/mitron4-j.html

----------------------------------------------------------------------
 TOPPERS/JSP Kernel
     Toyohashi Open Platform for Embedded Real-Time Systems/
     Just Standard Profile Kernel

 Copyright (C) 2000,2001 by Embedded and Real-Time Systems Laboratory
                             Toyohashi Univ. of Technology, JAPAN

 嵭ԤϡFree Software Foundation ˤäƸɽƤ 
 GNU General Public License  Version 2 ˵ҤƤ狼
 ξΤ줫˸¤ꡤܥեȥܥեȥ
 ѤΤޤࡥʲƱˤѡʣѡۡʰʲ
 ѤȸƤ֡ˤ뤳Ȥ̵ǵ롥
 (1) ܥեȥ򥽡ɤηѤˤϡ嵭
     ɽѾ浪Ӳ̵ݾڵ꤬Τޤޤηǥ
     ˴ޤޤƤ뤳ȡ
 (2) ܥեȥѲǽʥХʥꥳɡʥ֥륪
     ȥե饤֥ʤɡˤηѤˤϡ
     ȼɥȡѼԥޥ˥奢ʤɡˤˡ嵭ɽ
     Ѿ浪Ӳ̵ݾڵǺܤ뤳ȡ
 (3) ܥեȥԲǽʥХʥꥳɤηޤϵ
     ߹ѤˤϡΤ줫ξȡ
   (a) ѤȼɥȡѼԥޥ˥奢ʤɡˤˡ嵭
       ɽѾ浪Ӳ̵ݾڵǺܤ뤳ȡ
   (b) Ѥη֤̤ˡˤäơ嵭Ԥ𤹤
       ȡ
 (4) ܥեȥѤˤľŪޤϴŪ뤤ʤ»
     ⡤嵭Ԥդ뤳ȡ

 ܥեȥϡ̵ݾڤ󶡤ƤΤǤ롥嵭Ԥϡ
 ܥեȥ˴ؤơŬѲǽޤơʤݾڤԤ
 ʤޤܥեȥѤˤľŪޤϴŪ
 ʤ»˴ؤƤ⡤Ǥʤ

 @(#) $Id: user.txt,v 1.21 2001/11/15 14:21:23 hiro Exp $
----------------------------------------------------------------------
 * ITRON4.0ͤϡȥ󶨲 ITRON濴Ȥʤäƺꤵ줿
   ץʥꥢ륿५ͥͤǤITRON4.0ͤλͽϡITRON
   ץȥۡڡhttp://www.itron.gr.jp/ˤꤹ뤳
   Ǥޤ
----------------------------------------------------------------------
 * TRON  "The Real-time Operating system Nucleus" άΤǤ
 * ITRON  "Industrial TRON" άΤǤ
 * ITRON  "Micro Industrial TRON" άΤǤ
 * TRONITRONӦITRONϡξʤʤϾʷؤ̾Τ
   Ϥޤ
 * TOPPERS  "Toyohashi OPen Platform for Embedded Real-time Systems" 
   άΡJSP  "Just Standard Profile" άΤǤ
 * ܥޥ˥奢ξ̾ϡƼҤξɸޤϿɸǤ
----------------------------------------------------------------------


TOPPERS/JSPͥγ

TOPPERS/JSPͥʰʲñJSPͥȽ񤯡ˤϡ˭Ѳʳ 
ȹߥꥢ륿ॷƥฦ漼濴ȤTOPPERSץȤˤ
ƳȯITRON4.0ͤΥɥץե˽򤷤ꥢ륿
५ͥǤ롥

1.1 åȥץååȥƥ

JSPͥϡǡʲΥåȥץååȥ
򥵥ݡȤƤ롥

    ץå          ƥ
    M68040MC68LC040 DVE-68K/40Ż
    SH3SH7709A      SH-CARD CARD-E09Aʥץ
    SH3SH7709A      MS7709ASE01ΩĶLSIƥॺ
    SH3SH7709       MU-200-RSH3ʻɩŵޥ󵡴諒եȥ
    SH3SH7708       DVE-SH7700Ż
    SH4SH7750       CQ RISCɾå/SH-4CQǡ
    SH1SH7032       KZ-SH1-01ʵԥޥԥ塼
                         RISCɾåSH-1CQǡˤǤư
    SH1SH7032       SH1/CPUBʾ׾ԡ
    H8H8/3048F      AKI-H8/3048FʽŻ̾
    ARM7TDMIKS32C50100  Evaluator-7TARM
    V850ʦPD703107	RTE-V850E/MA1-CBʥޥܡ

JSPͥϡͥΤǤ¤¿ʬCǵҤ롤
ΩȰ¸ΤʬΥʤɡ¾ΥåȥץåؤΥݡ
ƥ󥰤ưפʹ¤ˤʤäƤ롥ݡƥ󥰤ˤɤ٤μ
뤫ϡåȥץåΥƥ䥷ƥιʤ
˰¸롥

Υ桼ޥ˥奢Ǥϡåȡʥåȥץåӥ
åȥƥˤ˰¸ʤǽˤĤƤΤƤ롥åȤ
¸뵡ǽˤĤƤϡåΥޥ˥奢򻲾Ȥ뤳ȡ

1.2 ȯĶ

JSPͥϡGCC ʤɤ GNUȯĶɸΥեȥȯĶȤ
Ƥ롥饤ؿ䥤饤󥢥֥鵡ǽʤɡGCC γĥǽ
ѤƤʬ롥

ͥΤϡΥ饤֥ؿ˰¸ʤ褦˵ҤƤ롥
GCC ɸC饤֥ؿƤӽФɤ礬ꡤ
ξˤɸC饤֥꤬ɬפǤ롥ޤƥॵӥ䥵ݡ
ȥ饤֥ꡤץꥱץɸC饤֥꤬ɬפˤʤ
ͤ롥ºݡɸۥåȤ˴ޤޤǤ⡤ƥ
ǽƤӽФΥ饤֥ؿǡѿ뤿εǽ
stdarg.h, va_list, va_start, va_argˤѤƤʼºݤˤϡGNUȯ
ĶǤϡѿ뤿εǽ GCC ΤǥݡȤƤ
ᡤɸC饤֥ɬפʤˡͳˤꡤɸC饤֥
Ѥ빽Ȥ褦ˤƤ롥

1.3 ߥ졼Ķ

JSPͥΥߥ졼ĶȤơLinuxưĶ 
WindowsưĶѰդƤ롥Υߥ졼Ķϡ
Linux  Windows ΰĤΥץʣΥڤؤư
Τǡåɥ饤֥ȤƻȤȤǤ롥

Υߥ졼ĶˤĤƤξܺ٤ϡߥ졼Ķ
ޥ˥奢򻲾Ȥ뤳ȡ

1.4 ͥ뤬ݡȤ뵡ǽ

JSPͥϡ̤̾ꡤITRON4.0ͤΥɥץե
˴ޤޤ뵡ǽ򤹤٤ƥݡȤƤ롥ɥץեǤϡ
ߥϥɥȳߥӥ롼Τ줫򥵥ݡȤФ褤
JSPͥϡǤϳߥϥɥΤߤ򥵥ݡȤƤ롥

ɥץե˴ޤޤʤǽȤơåȰ¸˰ʲ
ߴǽӥӥ򥵥ݡȤ礬롥ε
ǽζŪƤˤĤƤϡå˰ۤʤ롥ܤϡå
Υޥ˥奢򻲾Ȥ뤳ȡ

    dis_int     ߤζػ
    ena_int     ߤε
    chg_ixx     ߥޥѹ
    get_ixx     ߥޥλ
     xx ϥå롥

ޤITRON4.0ͤƤʳˡʲȼγĥǽ
ӥ򥵥ݡȤƤ롥

(1) CPU㳰ȯΥƥ֤λ

ɥץեǤϡCPU㳰ϥɥǡCPU㳰ȯ
ƥȤ֤򻲾ȤǤ뤳ȤɬפǤ뤬Τ API 
ƤʤJSPͥǤϡCPU㳰ȯ sns_yyy ƤӽФ
η̤CPU㳰ϥɥǼФ褦ˤ뤿ˡʲ
ޤĤΥӥȼ˥ݡȤƤ롥

    vxsns_ctx   CPU㳰ȯΥƥȤλ
    vxsns_loc   CPU㳰ȯCPUå֤λ
    vxsns_dsp   CPU㳰ȯΥǥѥåػ߾֤λ
    vxsns_dpn   CPU㳰ȯΥǥѥåα֤λ
    vxsns_tex   CPU㳰ȯΥ㳰ػ߾֤λ

(2) ǽɾѥƥﻲȵǽ

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

    vxget_tim   ǽɾѥƥλ

ǽɾѥƥﻲȵǽ򥵥ݡȤ뤫ɤϡåȰ¸
եǻꤹ뤳ȤǤ롥ޤåȥƥ
ˤꡤεǽ򥵥ݡȤǤʤ⤢롥

1.5 Τ

СǤϡŪAPIνΥ顼θеǽǡå
¸Υ顼θФԽʬǤ롥㤨Сߥϥɥֹ椬
Ǥ硤ͥȥե졼Τ⥨顼򸡽Ф
ͥ뤬ưʤ̤Ȥʤ롥

ޤե졼IDֹμưդˤơƥॳ
ե졼ե˳դоݤμ̻Ҥɽ줿IDֹ
դƤޤᡤθǳդѤIDֹꤷƥ֥
ȥ顼ˤʤ롥㤨мεҤǤϡ1ܤ 
TASK1  1 դƤޤᡤ2ܤǥ顼Ȥʤ롥

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

itron.h  SERCD ޥϡեȱ黻ҡ>>ˤĥ
ƥեȤ뤳ȤꤷƤ뤬ANSI CεʤǤϡĥ
뤳ȤݾڤƤʤեȱ黻ҤĥʤѥǤϡ
SERCD ͤͤˤʤäƤޤΤ褦ʾˤϡSERCD 
(~(-1 >> 8) | (ercd >> 8)) Τ褦ˤФ褤


JSPͥεǽ

ǤϡITRON4.0ͤǼȤʤäƤ濴ˡJSP
ͥεǽˤĤƲ⤹롥

2.1 ˤȥǥ

ITRON4.0ͤΥɥץեϡƥΤĤΥ⥸塼
˥󥯤뤳ȤꤷƵꤵƤ롥ޤӥθƽ
ϡñʤ륵֥롼󥳡ˤäƹԤȤꤵƤ롥JSP
ͥϡ˽ץꥱȥͥĤΥ⥸塼
󥯤֥롼󥳡ˤäƥӥƤӽФˡΤߤ
ݡȤƤ롥

JSPͥư륢ץꥱϡ٤CǵҤ뤳Ȥ
§ȤƤ롥Τᡤߥϥɥʤɤνñ̤򡤥
֥ǵҤˡϡ̤ˤѰդƤʤʤ󡤥󥿥ե
Cδؿˤ碌СҤ˥֥ȤȤ
ˡ

JSPͥǤϡӥʬĤγ߶ػ߶֤ȤƼ
Ƥ뤿ᡤӥԲʬϸ̩ݾڤ롥դ˷
Ƥϡ߶ػ߻֡ʺ֤߱Ʊ͡ˤԤ塼
Ĥʤ륿κ䥿।٥Ȥκ˰¸뤳Ȥˤʤ뤬
ɥץեεǽåȤϰǤϡˡǤ⤽ۤ
̤ˤϤʤʤ

2.2 ǡ

JSPͥǤϡʲ˥ꥹȥåפǡsigned intޤ 
unsigned intƤ롥signed int unsigned intΥ
ϡJSPͥΥåȤȤʤۤȤɤΥץåѥ
 32ӥåȤǤȹͤ뤿ᡤǤʤˤΤߡ
Υޥ˥奢롥ʤåΥޥ˥奢
Ƥʤ¤ꡤʲ˥ꥹȥåפǡΥ 32ӥåȤǤ
롥

    signed intƤǡ

	INT		դ
	BOOL		
	FN		ǽ
	ER		顼
	ID		IDֹ
	PRI		ͥ
	TMO		ॢ
	ER_BOOL		ER ޤ BOOL
	ER_ID		ER ޤ ID
	ER_UINT		ER ޤ UINT

    unsigned intƤǡ

	UINT		̵
	ATR		°
	STAT		
	MODE		ư⡼
	SIZE		
	RELTIM		л
	SYSTIM		ƥ
	TEXPTN		㳰װΥӥåȥѥ
	FLGPTN		٥ȥե饰Υӥåȥѥ

RELTIMͭӥåȿ 31ӥåȤۤ뤳ȤϤʤʤ
unsigned intΥ 32ӥåȤξˤϡRELTIMͭӥåȿ 
31ӥåȤǤꡤ(2^31 - 1) ۤͤ RELTIMΥѥ᡼Ϥ
硤E_PAR顼Ȥʤ롥unsigned intΥ 16ӥåȤξˤϡ
RELTIMͭӥåȿ 16ӥåȤǤ롥ɥץեǤϡ
RELTIM 16ӥåȰʾȵꤷƤꡤλͤǥɥץե
뵬˽򤷤Ƥ롥

SYSTIMϡ˥ꥹȥåפ̤ unsigned intƤꡤ
¤ΤȤˡѤƤʤ

֤򤢤魯ǡTMORELTIMSYSTIMˤλñ̤ϡ
ɥץեε˽٤1ߥäȤƤ롥

2.3 ֥ȤIDֹͥ

֥ȤIDֹˤϡ1 Ϣ³ͤѤ롥֥Ȥ
IDֹȴ㤨СID=1  ID=3 Υ֥ȤϿ졤
ID=2 Υ֥ȤϿʤˤˤϡե졼顼
𤹤롥IDֹѤƥ४֥Ȥȥ桼֥
ζ̤ϥݡȤƤʤ

Ǥ륪֥ȤκϡͥΥɾϡIDֹ椬ID
signed intƤˤɽǤϰǤ뤬ºݤˤϥ
̤ˤä¤롥ʤJSPͥǤϡ֥Ȥ
뤿ΥӥϥݡȤƤʤ

ȥåͥ٤ˤϡ116 ͤѤ롥

2.4 顼åȥ顼

JSPͥǤϡʲ˼ᥤ󥨥顼ɤ֤顼θФά
Ƥ롥

    E_SYS       ƥ२顼
    E_MACV      ꥢȿ

ޤݥ󥿤ͤʾΥѥ᡼顼E_PARˤθФά
Ƥ롥ꥢȿE_MACVˤθФάƤ뤿ᡤ
ݥ󥿤ϤӥФơ¸ߤʤϤ򺹤ݥ
ʤɡʥݥ󥿤Ϥ硤ץå
顼ʤɤCPU㳰򵯤礬ʶŪưϥåȥץ
å˰¸ˡ

ITRON4.0ͽƤᥤ󥨥顼ɤǡ
ץեεǽǤȯʤΤ䡤JSPͥμȯʤ
Τ롥JSPͥǥӥ뤬֤ᥤ󥨥顼ɤˤĤ
Ƥϡ9.3 ᥤ󥨥顼ɰפ򻲾ȤΤȡ

JSPͥǤϡ֥顼ɤѤƤʤ֥顼ɤˤ
 -1 ֤롥

2.5 ߥϥɥ

JSPͥǤϡߥϥɥεǽȤŪAPIDEF_INH
򥵥ݡȤƤꡤߥӥ롼εǽȤɲäŪ
APIATT_ISRˤϥݡȤƤʤ

ߥϥɥCˤ뵭ҷϼ̤Ȥ롥

        void interrupt_handler(void)
        {
                ߥϥɥ
        }

JSPͥǤϡCǵҤ줿ߥϥɥ餬ƤФǡCPU
å֤ˤʤäƤ롥ޤߥϥɥ餫꥿󤹤ˤϡ
Cδؿñ˥꥿󤹤Ф褤

ߥϥɥ򥢥֥ǵҤˡϡݡȤƤʤ

NMIʥޥǤʤߡ˰ʳ˥ͥδγߤ뤫ɤ
ϡåȰ¸Ǥ롥ŪʻͤˤĤƤϡåΥޥ˥
򻲾Ȥ뤳ȡ

2.6 ।٥ȥϥɥ

JSPͥǤϡ।٥ȥϥɥȤơϥɥΤߤ򥵥ݡ
ȤƤ롥ϥɥϡisig_timƥॳ椫顤֥롼
󥳡ǸƤӽФ롥Τᡤϥɥ̤ͥϡisig_tim
ƤӽФߥϥɥĤ⤤ʸ̩˸ȡisig_tim
ӽФߥϥɥ⤯γߥϥɥ⤤ͥ
¾Τν㤤ˡ

2.7 CPU㳰ϥɥ

JSPͥǤϡɥץե뵬˽äơCPU㳰ϥɥ
εǽȤŪAPIDEF_EXCˤ򥵥ݡȤƤ롥

JSPͥǤϡCPU㳰ϥɥ󥿥ƥȤǼ¹Ԥ롥
ƥȤƤӽФ륵ӥϡCPU㳰ϥɥ⤫
ƤӽФȤǤ롥ITRON4.0ͤˤơCPU㳰ϥɥǹ
٤ΤȤƵꤵƤϡΤ褦ˡǹԤȤ
롥

 (a) CPU㳰ȯƥȤ֤λȤϡΤѰդ줿
     JSPͥȼΥӥvxsns_ctxvxsns_locvxsns_dsp
     vxsns_dpnvxsns_texˤѤƹԤȤǤ롥ܤϡ3.10 
     CPU㳰ȯΥƥֻȡפ򻲾Ȥ뤳ȡ

 (b) CPU㳰ȯIDֹλȤϡiget_tidӥ
     ƤӽФȤˤäƹԤȤǤ롥

 (c) 㳰׵ϡiras_texӥƤӽФȤˤ
     ƹԤȤǤ롥

CPU㳰ϥɥ̤ͥϡƥȤ¹CPU㳰ȯ
ˤϡǥѥå⤯٤Ƥγߥϥɥ餪ӥ
ޥϥɥ㤤󥿥ƥȤ¹CPU㳰ȯ
ˤϡCPU㳰ȯ̤ͥĤ⤤ʸ̩
ȡCPU㳰ȯ⤯CPU㳰ȯ
̤ͥ¾Τν㤤ˡ

CPU㳰ϥɥCˤ뵭ҷϼ̤Ȥ롥

        void cpu_exception_handler(VP p_excinf)
        {
                CPU㳰ϥɥ
        }

p_excinf ˤϡCPU㳰˴ؤ򵭲ƤΰƬϤϤ
롥ϡCPU㳰ϥɥǡCPU㳰ȯƥȤ֤
ȤݤɬפȤʤ롥ܤϡ3.10 CPU㳰ȯΥƥֻ
ȡ׻Ȥ뤳ȡCPU㳰ϥɥ餫꥿󤹤ˤϡCδؿ
ñ˥꥿󤹤Ф褤

CPU㳰ϥɥ򥢥֥ǵҤˡϡݡȤƤʤ

2.8 󥿥ƥȤΥӥƽФȳ߶ػ߶

JSPͥǤϡƥѤΥӥȡ󥿥
ƥѤΥӥ̩˶̤Ƥ롥ƥ
ѤΥӥ󥿥ƥȤƤӽФ䡤󥿥
ƥѤΥӥ򥿥ƥȤƤӽФ
ˤϡE_CTX顼֤

ޤ󥿥ƥȤƤӽФ줿ӥٱ¹ԤϹԤ
ƤʤΤᡤ󥿥ƥȤƤӽФӥ⡤
оݤΥ֥Ȥξ֤˰¸ȯ륨顼򸡽Ф뤳Ȥ
롥

2.9 ƥȽ롼

ͥưˤϡåȤ˰¸ƹԤʤФʤʤ
νԤä塤CPUå֤Ʊξ֤ǡkernel_startؿ
ӽФJSPͥǤϡå˥ȥåץ⥸塼Ѱ
ơνԤäƤ롥ܤϡåΥޥ˥奢򻲾Ȥ
뤳ȡ

ATT_INI ˤäɲä줿롼ϡͥΥǡ¤
¾ŪAPI ν򽪤ˡƥॳե졼
եǤ ATT_INI εҽƱǸƤӽФ롥롼
ǤϡӥƤӽФƤϤʤʤ롼ǥ
ӥƤӽФ硤ƥưݾڤʤʼºݤˤϡ
åȤˤäơƤӽФƤ⺹٤ʤӥ뤬ˡޤ
롼¹˥ͥδγߤػߤƤ뤫ɤ
ϡåȤ kernel_startؿƤӽФ줿ξ֤˰¸
롥ŪˤϡåΥޥ˥奢򻲾Ȥ뤳ȡ

2.10 ŪAPIȥե졼

JSPͥϡITRON4.0ͤ˵ꤵ줿ƥॳե졼
˽򤷤ǡե졼Ԥ

ƥι򵭽Ҥƥॳե졼եϡޤ
CΥץץåǽ졤η̤򥫡ͥΥե졼
cfgץˤϤ롥ͥΥե졼ϡ
빽ե kernel_cfg.c ˡIDưդ̥إåե
 kernel_id.h 롥ޤŪAPIΥѥ᡼åѤ
ե kernel_chk.c 롥ŪAPIʸˡ顼ʤӽ
Υ顼ΰˤФСͥΥե졼顼
𤹤롥

kernel_cfg.c ϡѥ뤵ơץꥱץपӥ
ͥȶ˥󥯤롥󥯤ˤ줿ɥ⥸塼ϡ
ͥΥѥ᡼åץchkץˤˤäơŪAPI
ѥ᡼åԤ롥ѥ᡼ͤΥ顼Фȡ
᡼åץब顼𤹤뤬1.5 Τפ
Ҥ٤̤ꡤСǤϥѥ᡼顼ΥåԴǤ롥

ʾμϡå Makefile ˵ҤƤ롥եȥ
ʤΥե졼Ȥ߹ߤˤϡMakefile ɬ
פ롥

2.11 󥯥롼ɥե

ץꥱѤ뤳ȤǤ륤󥯥롼ɥեϡinclude ǥ
쥯ȥβ֤Ƥ롥

 jsp_services.h ϡץꥱѤɸ।󥯥롼ɥե
Ǥꡤjsp_stddef.h, kernel.h, itron.h, serial.h, syslog.h 򥤥
롼ɤƤ롥ޤ¿ΥץꥱͭפȻפޤ
Ǥ롥


JSPͥΥӥŪAPI

ǤϡJSPͥΥӥŪAPIˤĤơITRON4.0
ͤǼȤʤäƤJSPͥȼΥӥ濴
⤹롥

3.1 ǽ

εư׵ᥭ塼󥰿κ͡TMAX_ACTCNTˤ 1 ˸ꤷƤ
롥

(1) CRE_TSK			ŪAPI

tskatr  TA_ASM ꤵ줿εǽʥ򥢥֥ǵ
ˤϥݡȤƤʤޤstk  NULL ʳꤵ줿ε
ǽʥåΰƬϤꤹˤ⥵ݡȤƤʤ

(2) act_tsk, iact_tsk		εư

(3) can_act			ư׵Υ󥻥

(4) ext_tsk			νλ

ext_tsk 󥿥ƥȤƤФ줿硤ƥǽѤ
ƥ顼ϤLOG_ALERT٥ˡŪ˥ƥȤ
ڤ괹ơ¹Ծ֤Υλ롥ͥϤΤޤ޼¹Ԥ³
뤬åȤˤäƤϡ󥿥ƥѤΥå˥ߤ
ĤäꡤߥϥɥΥͥȿδ̷⤬ꤹ뤿ᡤʸ
ưݾڤʤ

ext_tsk CPUå֡ʤޤϥǥѥåػ߾֡ˤǸƤФ줿硤
ƥ˥顼ϿLOG_WARNING٥ˡCPUå
ʤޤϥǥѥåľ֡ˤˤƤ饿λ롥

(5) ter_tsk			ζλ

(6) chg_pri			ͥ٤ѹ

(7) get_pri			ͥ٤λ

3.2 °Ʊǽ

ε׵ᥭ塼󥰿κ͡TMAX_WUPCNTˤ 1 ˸ꤷƤ
롥ޤζԤ׵ͥȿκ͡TMAX_SUSCNTˤ 1 ˸
ꤷƤ롥

(1) slp_tsk			Ԥ
(2) tslp_tsk			ԤʥॢȤ

(3) wup_tsk, iwup_tsk		ε

(4) can_wup			׵Υ󥻥

(5) rel_wai, irel_wai		Ԥ֤ζ

(6) sus_tsk			Ԥ֤ؤΰܹ

(7) rsm_tsk			Ԥ֤κƳ
(8) frsm_tsk			Ԥ֤ζƳ

ζԤ׵ͥȿκ͡TMAX_SUSCNTˤ 1 Ǥ뤿ᡤ
rsm_tsk  frsm_tsk νƤƱǤ롥

(9) dly_tsk			ٱ

3.3 㳰ǽ

TEXPTNϡunsigned intƤ롥ä TBIT_TEXPTN ϡ
unsigned int 32ӥåȤξ 3216ӥåȤξ 16 ˤʤ롥

(1) DEF_TEX			㳰롼ŪAPI

texatr  TA_ASM ꤵ줿εǽʥ㳰롼򥢥
֥ǵҤˤϥݡȤƤʤ

(2) ras_tex, iras_tex		㳰׵

(3) dis_tex			㳰ζػ

(4) ena_tex			㳰ε

(5) sns_tex			㳰ػ߾֤λ

3.4 Ʊ̿ǽ

3.4.1 ޥե

ޥեκ񸻿ϡUINTunsigned intƤˤɽ
ͤϰǤ롥ʤunsigned int 32ӥåȤξ 
(2^32 - 1)16ӥåȤξ (2^16 - 1) = 65535 Ǥ롥TMAX_MAXSEM 
Ƥʤ

(1) CRE_SEM			ޥեŪAPI

(2) sig_sem, isig_sem		ޥե񸻤ֵ

(3) wai_sem			ޥե񸻤γ
(4) pol_sem			ޥե񸻤γʥݡ󥰡
(5) twai_sem			ޥե񸻤γʥॢȤ

3.4.2 ٥ȥե饰

ĤΥ٥ȥե饰ʣΥԤ֤ˤʤ뵡ǽϥݡȤ
ʤ

FLGPTNϡunsigned intƤ롥ä TBIT_FLGPTN ϡ
unsigned int 32ӥåȤξ 3216ӥåȤξ 16 ˤʤ롥

(1) CRE_FLG			٥ȥե饰ŪAPI

flgatr  TA_WMUL ꤵ줿εǽʥ٥ȥե饰ʣΥ
Ԥ֤ˤʤˤϥݡȤƤʤ

(2) set_flg, iset_flg		٥ȥե饰Υå

(3) clr_flg			٥ȥե饰Υꥢ

(4) wai_flg			٥ȥե饰Ԥ
(5) pol_flg			٥ȥե饰Ԥʥݡ󥰡
(6) twai_flg			٥ȥե饰ԤʥॢȤ

3.4.3 ǡ塼

dtqcntĤΥǡǼΤɬפʥǡ塼ΰΥϡ
sizeof(VP_INT) * dtqcnt ХȤǤ롥TSZ_DTQ Ƥʤ

(1) CRE_DTQ			ǡ塼ŪAPI

dtq  NULL ʳꤵ줿εǽʥǡ塼ΰƬϤ
ꤹˤϥݡȤƤʤ

(2) snd_dtq			ǡ塼ؤ
(3) psnd_dtq, ipsnd_dtq		ǡ塼ؤʥݡ󥰡
(4) tsnd_dtq			ǡ塼ؤʥॢȤ

(5) fsnd_dtq, ifsnd_dtq		ǡ塼ؤζ

(6) rcv_dtq			ǡ塼μ
(7) prcv_dtq			ǡ塼μʥݡ󥰡
(8) trcv_dtq			ǡ塼μʥॢȤ

3.4.4 ᡼ܥå

T_MSGϲΤ褦Ƥ롥T_MSGΥϡåȥץ
åѥΥݥ󥿤Υ˰פ롥

	typedef	struct t_msg {
		struct t_msg	*next;
	} T_MSG;

JSPͥǤϡ̥ͥå塼إåΰѤƤʤ
TSZ_MPRIHD ƤʤȤ 0 Ȥʤ롥

(1) CRE_MBX			᡼ܥåŪAPI

mprihd  NULL ʳꤵ줿εǽ̥ͥå塼إ
ΰƬϤꤹˤϥݡȤƤʤ

(2) snd_mbx			᡼ܥåؤ

åѥåΥåͥ٤ʾΥѥ᡼顼
E_PARˤθФϾάƤ롥åͥ٤ˤɤΤ褦ͤϤ
⡤ư롥

(3) rcv_mbx			᡼ܥåμ
(4) prcv_mbx			᡼ܥåμʥݡ󥰡
(5) trcv_mbx			᡼ܥåμʥॢȤ

3.5 סǽ

3.5.1 Ĺס

 blkszХȤΥ֥å blkcntĳǤΤɬפʸ
ĹסΰΥϡTROUND_VP(blksz) * blkcnt ХȤǤ롥
ǡTROUND_VP(blksz) ϡblksz 򥿡åȥץåѥ
Υݥ󥿤Υܿˤʤ褦ڤ夲ɽTSZ_MPF 
Ƥʤ

(1) CRE_MPF			ĹסŪAPI

mpf  NULL ʳꤵ줿εǽʸĹסΰƬ
ϤꤹˤϥݡȤƤʤ

(2) get_blf			Ĺ֥åγ
(3) pget_blf			Ĺ֥åγʥݡ󥰡
(4) tget_blf			Ĺ֥åγʥॢȤ

(5) rel_mpf			Ĺ֥åֵ

blkѥ᡼ֵѤ֥åƬϡˤֵͤΥ
סΰγ䡤֥åؤˤϡE_PAR顼
֤̤Υ֥åֵѤ䡤ֵѺѤΥ֥å
ֵѤưݾڤʤ

3.6 ִǽ

।٥ȥϥɥ˴ؤƤϡ2.6 ।٥ȥϥɥפ򻲾
뤳ȡ

3.6.1 ƥ

JSPͥǤϡƥåζisig_tim Ū˸ƤӽФ
ϥƥॵӥΥƥ९åɥ饤ФˤäƼ¸Ƥ롥
ƥ९åɥ饤Фμʬϡå˥ϡɥޤȤ
Ƽ¸Ƥꡤisig_tim ƤӽФϥå롥
 TIC_NUME  TIC_DENO ϡåȰ¸ΥץꥱѤΥ
󥯥롼ɥեcpu_defs.h  sys_defs.hˤƤ롥
åȤˤäƤϡοͤѹ isig_tim ƤӽФ
ѹǤ褦˼Ƥ⤢롥ܤϡåΥ
˥奢򻲾Ȥ뤳ȡ

(1) set_tim			ƥ

(2) get_tim			ƥλ

(3) isig_tim			ƥåζ

isig_tim ϡåȰ¸줿 TIC_NUME  TIC_DENO ǻꤵ
֤ƥʤᡤɬפʥ।٥ȡʥॢȡ
ϥɥεưʤɡˤνԤJSPͥǤϡƥ९å
ɥ饤ФΥӥŪ˸ƤӽФᡤץꥱ
ƤӽФɬפϤʤ

3.6.2 ϥɥ

ϥɥεư¸뵡ǽϥݡȤƤʤ

(1) CRE_CYC			ϥɥŪAPI

cycatr  TA_PHS ꤵ줿εǽʼϥɥεư¸
ˤϥݡȤƤʤޤTA_ASM ꤵ줿εǽʼ
ϥɥ򥢥֥ǵҤˤ⥵ݡȤƤʤ

(2) sta_cyc			ϥɥư

(3) stp_cyc			ϥɥư

3.7 ƥִǽ

(1) rot_rdq, irot_rdq		̤ͥβž

(2) get_tid, iget_tid		¹Ծ֤ΥIDλ

(3) loc_cpu, iloc_cpu		CPUå֤ؤΰܹ

(4) unl_cpu, iunl_cpu		CPUå֤β

(5) dis_dsp			ǥѥåζػ

(6) ena_dsp			ǥѥåε

(7) sns_ctx			ƥȤλ

(8) sns_loc			CPUå֤λ

(9) sns_dsp			ǥѥåػ߾֤λ

(10) sns_dpn			ǥѥåα֤λ

3.8 ߴǽ

ߥϥɥ˴ؤƤϡ2.5 ߥϥɥפ򻲾Ȥ뤳ȡ

(1) DEF_INH			ߥϥɥŪAPI

INHNO inhno ΰ̣ϥå롥inhatr ˤϡ
TA_HLNG Τߤꤹ뤳ȤǤ롥

(2) dis_int			ߤζػ
(3) ena_int			ߤε
(4) chg_ixx			ߥޥѹ
(5) get_ixx			ߥޥλ

Υӥ뤬ݡȤƤ뤫ɤݡȤƤ
λ͡xx ʬ̾Ρȥѥ᡼̾ΤỌ̇̄CPUå
ǥѥå֤ȤδϢˤˤĤƤϡåȰ¸Ǥ롥Ū
ϡåΥޥ˥奢򻲾Ȥ뤳ȡ

3.9 ƥ๽ǽ

CPU㳰ϥɥ˴ؤƤϡ2.7 CPU㳰ϥɥפ򡤽롼˴
Ƥϡ2.9 ƥȽ롼׻Ȥ뤳ȡ

(1) DEF_EXC			CPU㳰ϥɥŪAPI

EXCNO excno ΰ̣ϥå롥excatr ˤϡ
TA_HLNG Τߤꤹ뤳ȤǤ롥

(2) ATT_INI			롼ɲáŪAPI

iniatr  TA_ASM ꤵ줿εǽʽ롼򥢥֥
ǵҤˤϥݡȤƤʤ

3.10 CPU㳰ȯΥƥֻ

CPU㳰ϥɥǡCPU㳰ȯƥȤ֤򻲾Ȥ뤿
ΥӥȤơJSPͥǤϡޤĤΥӥȼ
ݡȤƤ롥ӥ vxsns_yyy ϡCPU㳰ȯ 
sns_yyy ƤӽФη̤ФΤǡCPU㳰ϥɥϤ
ѥ᡼ p_excinf ѥ᡼Ȥ롥

(1) vxsns_ctx			CPU㳰ȯΥƥȤλ

CAPI
	BOOL state = vxsns_ctx(VP p_excinf);

ڥѥ᡼
	VP	p_excinf	CPU㳰˴ؤ򵭲Ƥΰ
				Ƭ

ڥ꥿ѥ᡼
	BOOL	state		ƥ

ڵǽ

CPU㳰ȯƥȤ󥿥ƥȤξ TRUE
ƥȤξ FALSE ֤p_excinf ˤϡCPU㳰ϥɥ
Ϥ p_excinfѥ᡼򤽤ΤޤϤCPU㳰ϥɥʳ
ӽФ䡤p_excinf Ϥʤäο񤤤ݾڤ


(2) vxsns_loc			CPU㳰ȯCPUå֤λ

CAPI
	BOOL state = vxsns_loc(VP p_excinf);

ڥѥ᡼
	VP	p_excinf	CPU㳰˴ؤ򵭲Ƥΰ
				Ƭ

ڥ꥿ѥ᡼
	BOOL	state		CPUå

ڵǽ

CPU㳰ȯ֤CPUå֤ξ TRUECPUå
ξ FALSE ֤p_excinf ˤϡCPU㳰ϥɥϤ 
p_excinfѥ᡼򤽤ΤޤϤCPU㳰ϥɥʳƤӽФ
䡤p_excinf Ϥʤäο񤤤ݾڤʤ

(3) vxsns_dsp			CPU㳰ȯΥǥѥåػ߾֤λ

CAPI
	BOOL state = vxsns_dsp(VP p_excinf);

ڥѥ᡼
	VP	p_excinf	CPU㳰˴ؤ򵭲Ƥΰ
				Ƭ

ڥ꥿ѥ᡼
	BOOL	state		ǥѥåػ߾

ڵǽ

CPU㳰ȯ֤ǥѥåػ߾֤ξ TRUEǥѥ
ľ֤ξ FALSE ֤p_excinf ˤϡCPU㳰ϥɥϤ
 p_excinfѥ᡼򤽤ΤޤϤCPU㳰ϥɥʳƤӽФ
䡤p_excinf Ϥʤäο񤤤ݾڤʤ

­

CPU㳰ϥɥεưˤäƥǥѥåػߡľ֤ѲCPU
㳰ϥɥǤϥǥѥåζػߤĤϹԤʤᡤvxsns_dsp 
֤ͤ sns_dsp ֤ͤ˾˰פ롥Τᡤvxsns_dsp  
sns_dsp νƤƱȤʤäƤ롥

(4) vxsns_dpn			CPU㳰ȯΥǥѥåα֤λ

CAPI
	BOOL state = vxsns_dpn(VP p_excinf);

ڥѥ᡼
	VP	p_excinf	CPU㳰˴ؤ򵭲Ƥΰ
				Ƭ

ڥ꥿ѥ᡼
	BOOL	state		ǥѥåα

ڵǽ

CPU㳰ȯ֤ǥѥåα֤ξ TRUEǤʤ
 FALSE ֤ʤǥѥå̤ͥ⤤
¹ԤƤCPUå֤Ǥäӥǥѥåػ߾
ǤäϡTRUE ֤p_excinf ˤϡCPU㳰ϥɥϤ 
p_excinfѥ᡼򤽤ΤޤϤCPU㳰ϥɥʳƤӽФ
䡤 p_excinf Ϥʤäο񤤤ݾڤʤ

(5) vxsns_tex			CPU㳰ȯΥ㳰ػ߾֤λ

CAPI
	BOOL state = vxsns_tex(VP p_excinf);

ڥѥ᡼
	VP	p_excinf	CPU㳰˴ؤ򵭲Ƥΰ
				Ƭ

ڥ꥿ѥ᡼
	BOOL	state		㳰ػ߾

ڵǽ

CPU㳰ȯ˼¹Ծ֤Ǥä㳰ػ߾
ξ TRUE㳰ľ֤ξ FALSE ֤CPU㳰
󥿥ƥȤȯλ˼¹Ծ֤Υʤä
⡤FALSE ֤p_excinf ˤϡCPU㳰ϥɥϤ p_excinf
᡼򤽤ΤޤϤCPU㳰ϥɥʳƤӽФ䡤
p_excinf Ϥʤäο񤤤ݾڤʤ

­

CPU㳰ϥɥεưˤäƥ㳰ػߡľ֤Ѳ 
CPU㳰ϥɥǤϥ㳰ζػߤĤϹԤʤᡤ 
vxsns_tex ֤ͤ sns_tex ֤ͤ˾˰פ롥Τᡤ
vxsns_tex  sns_tex νƤƱȤʤäƤ롥

3.11 ǽɾѥƥﻲȵǽ

JSPͥǤϡJSPͥư륿JSPͥ뼫Ȥǽ
¬뤿ˡƥ٤ι⤤ǽɾѥƥ
߽Фǽ򡤥åȰ¸˥ݡȤƤ롥ǽɾѥƥ
ϡñ̤ɽ뤬ºݤ٤ϥåȰ¸Ǥ롥Ū
ϡåΥޥ˥奢򻲾Ȥ뤳ȡ

ǽɾѥƥﻲȵǽǤϡΥǡѤ롥

	SYSUTIM		ǽɾѥƥ̵

SYSUTIMΥϥåȰ¸Ǥ롥Ūˤϡå
ޥ˥奢򻲾Ȥ뤳ȡ

(1) vxget_tim			ǽɾѥƥλ

CAPI
	ER ercd = vxget_tim(SYSUTIM *p_sysutim);

ڥѥ᡼
	ʤ

ڥ꥿ѥ᡼
	ER	ercd		顼
	SYSUTIM	sysutim		ߤǽɾѥƥ

ڥ顼ɡ
	E_CTX		ƥȥ顼

ڵǽ

ߤǽɾѥƥɤ߽Фsysutim ֤

ΥӥϡƥȤΤ߸ƤӽФȤǤ롥
ƥȤǤСCPUå֤ǤäƤƤӽФ롥󥿥
ƥȤƤӽФˤϡE_CTX顼Ȥʤ롥


ƥǽ

ƥǽϡͥȯ۾ݡassert fail顼
ɤ֤ʤ顼ˤ򡤲餫ˡǥƥγΤ뤿
εǽǤ롥ƥॵӥ䥢ץꥱ󤫤⡤Ʊǽ
뤳ȤǤ롥ޤǤϥݡȤƤʤͥΥȥ
ǽˤѤ뤳Ȥθ߷פƤ롥

4.1 ƥǽΰդ

ͥȯ۾ݤ䥫ͥΥȥ졼򥷥ƥγ
Τ뤿ˡȤơꥢ륤󥿥ե˽Ϥ롤ǥ
˽񤭽Фʤɤˡͤ롥ꥢ륤󥿥եǥ
뤿ΥӥʥǥХɥ饤Фʤɡˤϥͥư
뤿ᡤѤ륷ƥǽϡͥ˼줿
ॵӥȹͤǤ롥

ͥƤӽФȤϡƥǽ
ͥΰȹͤΤǡ֤Ť̯Ǥ롥

JSPͥǤϡ۾ݤ˴ؤȥ졼ʤ
Τˤ򡤥ͥΥХåեʤХåեȸƤ֡
˵Ͽ뵡ǽȡХåեɤ߽Фǽ򡤥ƥ
ǽȸƤӡͥγĥǽȰդ롥Хåեɤ߽Ф
򡤥ǥХ˥륵ӥѤƳ˽Ϥ뵡ǽ
ϡƥȤƥͥ˼¸롥

4.2 ХåեؤεϿ٥

Ҥ褦ˡ򥷥ƥγ˽Ϥ뤿ɬפʥǥХ
˥륵ӥϥͥưƤꡤͥư³
Ǥʤʰ۾ݤäˤϡΥӥȤȤ
ǤʤޤΥӥȤǥХåˤ⡤ǥХ
륵ӥȤȤǤʤ

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

򡤥ХåեصϿ뤫٥ϵǽѤƽϤ뤫
ڴϡͥγĥӥsyslog_setmaskˤˤäƹԤ
ȤǤ롥syslog_setmask λȤˤĤƤϸҤ롥

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

ͥư³Ǥ褦ʡʤޤǤʤ˻ݤˤĤ
ϡ򥫡ͥΥХåե˵ϿϿν
ϡǥХ˥륵ӥѤƽϤ륷ƥ
Ǥ롥ƥϥͥư륿Ǥ뤿ᡤ
ͥγĥӥѤơХåեɤ߽Ф
JSPͥɸۥåȤˤϡƥΰȤơ
륤󥿥ե˥ʸηǽϤ륷ƥ
ޤƤ롥

4.3 ν

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

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

	LOG_EMERG	ƥ򥷥åȥ󤹤٤顼
	LOG_ALERT
	LOG_CRIT
	LOG_ERR		㤤ƥ२顼
	LOG_WARNING	ٹåƥϰ˷³ưǤ
	LOG_NOTICE
	LOG_INFO
	LOG_DEBUG	ǥХåΤΥå

ɤν٤ΥХåե˵Ͽ뤫ȡɤν٤Υ
٥ϵǽѤƽϤ뤫ϡͥγĥӥ
syslog_setmaskˤˤäꤹ뤳ȤǤ롥syslog_setmask γƥ
᡼ϡꤹνɽӥåȥޥåפǤ롥ޤӥ
ȥޥåפ뤿ΥޥȤơLOG_MASK  LOG_UPTO ѰդƤ롥

4.4 ƥǽγĥӥ

ƥǽ󶡤ĥӥϼ̤Ǥ롥

(1) ER syslog_write(UINT prio, SYSLOG *p_syslog)

ƥǽˡ prio ǥ1ĽϤʥХåե
صϿ뤫٥ϵǽѤƽϤˡSYSLOG ϡ
Ǽ뤿ΥǡǡγĥӥˤϡϤ
ؤΥݥ󥿤Ϥ

(2) ER_UINT syslog_read(SYSLOG *p_syslog)

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

(3) ER syslog_setmask(UINT logmask, UINT lowmask)

ϿޤϽϤ٤νͤΥӥåȥޥlogmaskˤȡ
٥ϵǽѤƽϤ٤νͤΥӥåȥޥlowmask
ꤹ롥lowmask ǡlogmask ꤵƤʤӥåȤꤵƤ
Ƥ⡤̣ʤʥ顼ˤʤʤˡ

4.5 ƥǽΤΥ饤֥ؿȥޥ

ƥǽϡ嵭Υӥ˲äơΥ饤֥ؿ
ޥ󶡤롥

(1) void syslog_n(UINT prio, const char *format, arg1, ..., argn)
     n  05 Τ줫

format ʸ󤪤Ӥ³å򡤽 
prio ǥȤƽϤ뤿Υޥformat ϥåΥե
ޥåȵҡarg1argn ϥեޥåȵǻȤͤǡprintf 
եޥåȵҤΥ֥åȤȤʤäƤ롥arg1argn  VP_INT˥
Ȥ뤿ᡤVP_INT˷ѴǤǤդηϤȤǤ
Ϥʤformat  arg1argn ˤϡ¤롥

format ΥեޥåȵҤϡΥޥäѲƤϤʤ
ʤ

format ˻ȤեޥåȻϼ̤ꡥ

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

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

arg1argn ˥ݥ󥿤Ϥ%s бξˤˡݥ
λؤǡϡΥޥäѲƤϤʤʤ

(2) void _syslog_n(UINT prio, const char *format,
				VP_INT arg1, ..., VP_INT argn)
     n  05 Τ줫

format ʸ󤪤Ӥ³å򡤽 
prio ǥȤƽϤ뤿Υ饤֥ؿformat  arg1
argn ˤϡsyslog_n Ʊͤ¤롥

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

format ʸ󤪤Ӥ³å򡤽 
prio ǥȤƽϤ뤿Υ饤֥ؿǡοѤ
Ρformat ³Ϻ5Ĥޤǡformat Ӥ³
ˤϡsyslog_n Ʊͤ¤롥

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

(4) UINT LOG_MASK(UINT prio)

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

(5) UINT LOG_UPTO(UINT prio)

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

(6) void syslog_printf(SYSLOG *p_syslog, void (*putc)(char))

ƥǽѤΥեޥåȽϤ뤿Υ饤֥ؿƥ
Ѥ뤳ȤꤷƤ뤬ƥǽǤѤ
ʤΤᡤΥ饤֥ؿΥեϡͥΥǥ
ȥ֤Ƥ syslog.c ˴ޤƤˡ

4.6 ƥǽˡ

JSPͥΥƥǽꤵƤˡϡʲ̤
롥

(a) ʰ۾ݤ򼨤٥ϵǽѤƽϤ
ǤʤνϤϥƥǤ롥

Хåե˵Ͽν٤ȡ٥ϤѤƽϤ
ν٤Ŭڤꤹ롥ޤХåեɤ
ФƳΤ륷ƥȡ٥ʸϴؿѰ
롥

(b) ٤ƤΥ٥ϵǽѤƽϤ롥

ɬפʥϤ٤٥ϵǽѤƽϤ褦
syslog_setmask ξѥ᡼Ʊͤˤ롥ޤ٥
ʸϴؿѰդ롥

(c) ϥ˵Ͽǡƥ೰ˤϽϤʤ

ɬפʥϤ٤ƥХåեصϿ褦syslog_setmask 
2ѥ᡼ 0 ˤ롥ƥס

(d) ϵϿϤ⤷ʤ

Υ⵭ϿϤʤ褦syslog_setmask ξѥ
᡼Ȥ 0 ˤ롥


ƥॵӥ

ǤϡJSPͥ뤬ɸŪư륷ƥॿӥɥ饤
ФȡѤ뤿Υ󥿥եˤĤ롥
ƤϡŪʻͤǤꡤѹǽ롥

5.1 ƥ९åɥ饤

ƥ९åɥ饤ФϡϡɥޤѤƼŪ˳ߤ
ȯisig_tim ƤӽФƥͥ˥ƥå򶡵뤹롥

ƥ९åɥ饤Фϡޤεư޳ߥϥɥ顤
ޤ߽λĤδؿǹ롥ޤεưϡͥ
롼ȤϿ롥޳ߥϥɥϡʸ̤ꡤ
˳ߥϥɥȤϿ롥

ޤ߽ϡСǤϤޤȤ߹ˡǤʤ
ͥФƽλ롼ϿˡѰդ٤⤷ʤ

(1) void timer_initialize(VP_INT exinf)

ޤεưޤŪʥ޳׵ȯ
롥exinf ̵뤹롥

(2) void timer_handler(void)

޳ߥϥɥ顥޳׵򥯥ꥢ塤isig_tim Ƥ
Фƥƥå򶡵뤹롥

(3) void timer_terminate(void)

ޤ߽Ūʥ޳׵ߤ롥

5.2 ꥢ륤󥿥եɥ饤

ꥢ륤󥿥եɥ饤ФϡꥢI/OݡȤ򰷤Υɥ饤
ФǤ롥

ꥢ륤󥿥եɥ饤ФϡߥϥɥȡޤĤ
ӥǹ롥ϡͥ˽롼Ȥ
Ͽ롥ߥϥɥϡͥ˳ߥϥɥȤϿ٤
ΤǤ롥

ɸC饤֥٥ϥ롼򡤥ꥢ륤󥿥եɥ
ФƤӽФΤˤ뤳ȤǡɸϤ򥷥ꥢ륤󥿥ե
ɥ饤зͳڤؤ뤳ȤǤ롥ŪˡϡѤɸC
֥˰¸롥

5.2.1 ꥢ륤󥿥եɥ饤Фν

(1) void serial_initialize(VP_INT portid)

portid Ǽ륷ꥢݡȤФơꥢ륤󥿥եɥ饤
Фư롥ŪˤϡҤ serial_open ƤӽФƤ롥

5.2.2 ꥢ륤󥿥եɥ饤Фγߥϥɥ

ꥢ륤󥿥եǥХμˤäơߤȼߤ
̡γߥϥɥ餬ưΤȡƱߥϥɥ餬ư
Τ롥ꥢ륤󥿥եɥ饤ФǤϡSEPARATE_SIO_INT 
뤫ɤǡΰ㤤ۼƤ̡γߥϥɥ餬ư
ˡ

(1) void serial_in_handler(void)

SEPARATE_SIO_INT Ρߥϥɥ顥

(2) void serial_out_handler(void)

SEPARATE_SIO_INT Ρߥϥɥ顥

(3) void serial_handler(void)

SEPARATE_SIO_INT ʤΡꥢ륤󥿥եߥϥ
ɥ顥

5.2.3 ꥢ륤󥿥եɥ饤ФΥӥ

ꥢ륤󥿥եɥ饤ФƤӽФӥλͤϲ
Ǥ롥ǡꥢݡȤIDֹportidˤβϥå
¸Ȥʤ롥ʤΥӥ󥿥ƥȤ
ӽФȤϤǤʤޤserial_read  serial_write ϡǥѥ
α֤ǸƤӽФȤϤǤʤ⡤ƤӽФˤϡ
E_CTX顼Ȥʤ롥

(1) ER serial_open(ID portid)

portid Ǽ륷ꥢݡȤ򥪡ץ󤷡ɤ߹ߡ񤭽Фǽ
ʾ֤ˤ롥

(2) ER serial_close(ID portid, BOOL flush)

portid Ǽ륷ꥢݡȤΥåȥ򤹤롥flush  0 
ʳξϡХåեƤˤʤޤǥ롼פԤġ

(3) ER_INT serial_read(ID portid, char *buf, UINT len)

portid Ǽ륷ꥢݡȤ顤 lenХȤʸɤ߹ߡ
buf ΰ롥ºݤɤ߹ʸ֤ޤ 0ˡ
portid  0 ꤹȡǥեȤΥꥢݡȤꤷȤˤ
롥

(4) ER_INT serial_write(ID portid, char *buf, UINT len)

portid Ǽ륷ꥢݡȤˡbuf  lenХȤʸ
Фºݤ˽񤭽Фʸ֤ޤ 0ˡportid  0 ꤹ
ȡǥեȤΥꥢݡȤꤷȤˤʤ롥

(5) ER serial_ioctl(ID portid, UINT ioctl)

portid Ǽ륷ꥢݡȤioctl Ǽͤ
롥portid  0 ꤹȡǥեȤΥꥢݡȤꤷ
Ȥˤʤ롥

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

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

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

    IOCTL_RAW1ʸñ̤Ǽ
	ʸɤ߽Ф1ʸñ̤ǹԤΥ⡼ɤǤϡserial_read 
	 len ѥ᡼̵ͤ뤷1ʸɤ߽Фȡserial_read 
	꥿󤹤롥

    IOCTL_CANONICAL1ñ̤Ǽ
	ʸɤ߽Ф1ʸñ̤ǹԤΥ⡼ɤǤϡserial_read 
	 LF ɤ߽Ф len ǻꤷʸɤ߹ǥ꥿
	󤹤롥

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

    IOCTL_IXANYեǤդʸƳ
	IOCTL_IXON ꤷƤˡ˼Ǥդʸ
	Ƴ롥

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

ʤץľΥǥեȤͤ (IOCTL_ECHO | IOCTL_CRLF |
IOCTL_CANONICAL | IOCTL_IXON | IOCTL_IXOFF) Ǥ롥

5.3 ƥ

ƥϡͥΥХåեФ
åȤΩơꥢ륤󥿥եɥ饤ФѤƥꥢ
ȤФ륿Ǥ롥


ݡȥ饤֥

ݡȥ饤֥ϡץꥱ䥷ƥॵӥ뤿
ѤǤ饤֥ؿǤ롥СǤϡƥॵӥ
䥵ץץǻȤ¤δؿѰդƤʤ

(1) const char *itron_strerror(ER ercd)

ercd Ǽᥤ󥨥顼ɤб륨顼ɤʸ֤
֤줿ʸ񤭴ƤϤʤʤ

(2) void jsp_perror(const char *file, int line, const char *expr, ER ercd)
    
顼å򥷥ƥӥ˽Ϥ롥assertޥʤɤ
Ѥ뤳ȤꤷƤ롥


ȯĶ󥹥ȡ롦ݡƥ

7.1 ǥ쥯ȥꡦե빽

եΥǥ쥯ȥ깽ϼ̤ꡥ

    include/    ̥إåե
    kernel/     ͥ륽ե
    systask/    ƥॵӥե
    libjsp/     ݡȥ饤֥꥽ե
    config/     åȰ¸
        m68k/           M68040 ץå¸ե
            dve68k/             DVE-68K/40 ƥ¸ե
        sh3/            SH3 ץå¸ե
            card_e09a/          SH-CARD CARD-E09A ƥ¸ե
            rsh3/               PowerMedusa RSH3 ƥ¸ե
            dvesh7700/          DVE-SH7700 ƥ¸ե
            ms7709ase01/        MS7709ASE01 ƥ¸ե
            kz_sh4/             CQ RISCɾå/SH-4 ƥ¸ե
        sh1/            SH1 ץå¸ե
            kz_sh1/             KZ-SH1-01 ƥ¸ե
            tokiwa_sh1/         SH1/CPUB ƥ¸ե
        h8/             H8 ץå¸ե
            akih8_3048f/        AKI-H8/3048F ƥ¸ե
        arm7tdmi/       ARM7TDMI ץå¸ե
            evaluator_7t/       Evaluator-7T ƥ¸ե
        v850/           V850 ץå¸ե
            upd703000/          PD703000 ƥ¸եʻ
        linux/          LinuxΥߥ졼Ķ¸ե
        windows/        WindowsΥߥ졼Ķ¸ե
    cfg/        ͥ륳ե졼
    utils/      桼ƥƥ
    sample/     ץץ Makefile
    doc/        ɥ

    windev/     Windows ݡȥ⥸塼
    WINDOWS/    WindowsΥץץ

åΩʥͥ륳ե졼Ͻˤγƥեγ
ϼ̤ꡥ

    README		TOPPERS/JSPͥδñʾҲ
    configure		ե졼󥹥ץ

    include/
	itron.h		ITRONͶ̵˴Ϣ
	kernel.h	ITRON4.0ͤ˴Ϣ
	jsp_stddef.h	JSPδĶѤ붦Ū
	jsp_services.h	ץꥱ ɸ।󥯥롼ɥե
	timer.h		ƥ९åɥ饤дϢ
	syslog.h	ƥӥϢ
	serial.h	ꥢ륤󥿥եɥ饤дϢ
	logtask.h	ƥϢ
	linux_sigio.h	Linux Υ֥åI/Oݡ

    kernel/
	jsp_kernel.h	JSPͥ ɸ।󥯥롼ɥե
	jsp_rename.h	ͥ̾Υ͡
	check.h		顼åѥޥ
	queue.h		֥󥯥塼ι¤
	startup.c	ͥν
	banner.c	ͥεưåν
	task.h		롼Ϣ
	task.c		롼
	wait.h		Ԥ롼Ϣ
	wait.c		Ԥ롼
	time_event.h	।٥ȴϢ
	time_event.c	।٥ȴ
	syslog.c	ƥǽ
	task_manage.c	ǽ
	task_sync.c	°Ʊǽ
	task_except.c	㳰ǽ
	semaphore.h	ޥեǽϢ
	semaphore.c	ޥեǽ
	eventflag.h	٥ȥե饰ǽϢ
	eventflag.c	٥ȥե饰ǽ
	dataqueue.h	ǡ塼ǽϢ
	dataqueue.c	ǡ塼ǽ
	mailbox.h	᡼ܥåǽϢ
	mailbox.c	᡼ܥåǽ
	mempfix.h	ĹסϢ
	mempfix.c	Ĺס
	time_manage.c	ƥǽ
	cyclic.h	ϥɥ鵡ǽϢ
	cyclic.c	ϥɥ鵡ǽ
	sys_manage.c	ƥǽ
	interrupt.h	ߴǽϢ
	interrupt.c	ߴǽ
	exception.h	CPU㳰ǽϢ
	exception.c	CPU㳰ǽ

    systask/
	timer.c		ƥ९åɥ饤
	timer.cfg	ƥ९åɥ饤Ф국
	serial.c	ꥢ륤󥿥եɥ饤
	serial.cfg	ꥢ륤󥿥եɥ饤Ф국
	logtask.c	ƥ
	logtask.cfg	ƥ국
	linux_sigio.c		Linux Υ֥åI/Oݡ
	linux_sigio.cfg		Linux Υ֥åI/OݡȤ국
	linux_serial.c		Linux ꥢɥ饤
	linux_serial.cfg	Linux ꥢɥ饤Ф국

    libjsp/
	jsp_perror.c	jsp_perrorؿ
	strerror.c	itron_strerrorؿ
	vasyslog.c	syslogؿ

    utils/
	makedep		¸ط
	genoffset	offset.h ץ

    sample/
	Makefile	ץ Makefile
	Makefile.linux	ץ MakefileLinuxѡ
	sample1.cfg	ץץ(1)국
	sample1.h	ץץ(1)˴ؤ
	sample1.c	ץץ(1)

    doc/
	user.txt	TOPPERS/JSPͥ 桼ޥ˥奢
	gnu_install.txt	GNUȯĶۥޥ˥奢
	m68k.txt	M68040 åȰ¸ޥ˥奢
	sh3.txt		SH3 åȰ¸ޥ˥奢
	sh1.txt		SH1 åȰ¸ޥ˥奢
	h8.txt		H8 åȰ¸ޥ˥奢
	arm7tdmi.txt	ARM7TDMI åȰ¸ޥ˥奢
	v850.txt	V850 åȰ¸ޥ˥奢
	linux.txt	Linux ߥ졼Ķ¸ޥ˥奢
	windows.txt	Windows ߥ졼Ķ¸ޥ˥奢
	config.txt	JSPͥ åȰ¸ 󥿥ե
	configurator.txt JSPͥ ե졼
	design.txt	JSPͥ ߷ץ

7.2 ȯĶ

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

    ۥȴĶѤΥġ
        ɸ൬ʤ˽򤷤Cѥ顤C饤֥
        ɸ൬ʤ˽򤷤C++ѥ顤C++饤֥ꡤSTL
        perlưǧ 5.005
        GNU Makeưǧ 3.77

    ĶѤΥġ
        GNUȯĶ
            BINUTILSʥ֥顤󥫤ʤɡ
            GCC ޤ GCC-CORECѥ
            GDBʥǥХå
        NEWLIBɸC饤֥

ۥȴĶѤCѥC饤֥ϡĶѤΥġΥ
ȡɬפˤʤ롥ޤC++ѥ顤C++饤֥ STLStandard
Template Libraryˤϡͥ륳ե졼ΥѥɬפǤ
롥

ĶѤɸC饤֥ϡץꥱɸC饤֥
ѤʤˤϡɬܤǤϤʤGNUȯĶΥ󥹥ȡˡˤĤ
GNUȯĶۥޥ˥奢ưǧСˤĤƤϥå
Υޥ˥奢򻲾Ȥ뤳ȡ

ʲǤϡUNIXޥưǧ Linux˾ǹۼ롥ޤ
Ǥϡmakeޥɤ GNU Make ǤΤȤJSPͥ 
Makefile ϡGNU Make γĥǽѤƤˡ

7.3 ץץι

ǽˡץץۤˡ롥

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

   % mkdir OBJ
   % cd OBJ
   % ../configure -C m68k -S dve68k -P /usr/local

ǡm68k ϥåȥץå̾dve68k ϥåȥƥ̾
/usr/local ϳȯĶ򥤥󥹥ȡ뤷ǥ쥯ȥ̾Ǥ롥
ե졼󥹥ץȤΥץˤĤƤϡ򻲾Ȥ
ȡ

ե졼󥹥ץȤμ¹Ԥˤꡤȥǥ쥯ȥˤϡ
ץץۤ뤿 MakefileץץѤΥ
ե졼եsample1.cfgˡץץ
sample1.h  sample1.cˤ롥ޤ cfg ǥ쥯ȥˤϡ
ե졼뤿 Makefile ȡե졼
ӥѥ᡼åץब롥

ʤѥ᡼åץϡGNUγȯĶ˴ޤޤBFD饤
ѤƤ롥Τᡤե졼󥹥ץȤ¹Ԥ
ˡɬפʥ󥯥롼ɥեbfd.hlibiberty.hansidecl.hˤȥ
֥libbfd.alibiberty.aˤ򡤻ꤵ줿˥ԡƤɬ
פ롥ŪˡˤĤƤϡGNUȯĶۥޥ˥奢
BINUTILS Υ󥹥ȡפι򻲾Ȥ뤳ȡ

ե졼󥹥ץȤμ¹Ը塤ɬפǤ Makefile 
롥Makefile νˤĤƤϡ7.5 Makefile νפ򻲾ȤΤȡ

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

    % make depend
    % make

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

7.4 ե졼󥹥ץȤλȤ

ե졼󥹥ץȤϡJSPͥ뤪ӥץꥱ
ץۤ뤿ɬפʴŪʥե졼Ԥ
ΥץǤ롥JSPͥѤƥץꥱ
ˤϡޤ֥ȥե֤ǥ쥯ȥΥǥ
ȥǥե졼󥹥ץȤ¹Ԥ롥֥ȥե
֤ǥ쥯ȥξ̾ΤϡǤդ˷Ƥ褤

ե졼󥹥ץȤФ륪ץϼ̤ꡥ

    -C <ץå̾>
	åȥץå̾ޤϥߥ졼Ķ̾config 
	ǥ쥯ȥβΥǥ쥯ȥ̾Τǻꤹɬܡˡ

    -S <ƥ̾>
	åȥƥ̾config βΥץåΥǥ쥯ȥ
	βΥǥ쥯ȥ̾Τǻꤹ롥ߥ졼Ķξ
	ϡꤹɬפʤ

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

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

    -P <ǥ쥯ȥ̾>
	ȯĶ򥤥󥹥ȡ뤷ǥ쥯ȥ̾GNUȯĶۤ
	ݤ <PREFIX>ˤꤹ롥άˤϡ/usr/local Ȥ
	롥

    -m
	ե졼 make ԤʤʥǥեȤϹԤˡ
	ե졼뤿 Makefile ϡΥץ
	ˤ餺Ԥ

    -d
	ͥ make depend ԤʥǥեȤϹԤʤˡ

ե졼󥹥ץȤԤϼ̤ꡥ

(1) Makefile 

sample ǥ쥯ȥ꤫Ŭڤ Makefile 򤷡ɬפʲս񤭴
ơMakefile 롥

(2) ץץ

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

(3) ե졼

cfg ǥ쥯ȥβˡե졼뤿 Makefile 
Ȥäƥե졼ӥѥ᡼åץ
롥

 Makefile ̾ΤϡMakefile.<ץå̾>-<ƥ̾>ʥ
ƥ̾ʤϡMakefile.<ץå̾>ˤȤʤ롥ե졼
С󥢥åפʤɤͳǥե졼κƥѥ뤬
ɬפʾˤϡcfg ǥ쥯ȥ make -f <Makefile̾> ¹ԤФ


ʤ륳ե졼ϥåȤˤϰ¸̾Τ 
cfg Ȥʤ롥Фơѥ᡼åץϳȯĶ˰¸
̾Τ <åȴĶ̾>-chk Ȥʤ롥

(4) ¸طե-d ץĤΤߡ

֥ȥե֤ǥ쥯ȥ make depend ¹Ԥ¸
ե Makefile.depend 롥եʤɡ
¸طեκɬפʾˤϡmake depend ¹ԤФ褤

7.5 Makefile ν

JSPͥμ¹ԴĶˤäƤϡե졼󥹥ץȤ
 Makefile 뤳Ȥɬפˤʤ롥ǤϡMakefile ǡ
ɬפȤʤǽι⤤սˤĤ롥

ʤMakefile ˥ե졼󥹥ץȤ¹Ԥ
ȡ Makefile 񤭤ƤޤΤդ뤳ȡ

(A) å̾

CPU ϥåȥץå̾SYS ϥåȥƥ̾롥
ϡե졼󥹥ץȤԤ

(B) Cygwinǥѥ뤹뤫ɤ

CygwinĶǥѥ뤹ˤϡCYGWIN  true 롥ϡ
CygwinĶǤϡ֥ȥץ˳ĥ "exe" ղäΤ
б뤿ΤΤǤ롥

(C) ¹ԴĶʥåȰ¸

åȤ˰¸ơGNU Stub  PARTNER-J μ¹ԴĶбƤ롥
GDB Stub Ѥˤ GNU_STUB  true ˡPARTNER-J Ѥ
ˤ PARTNER_J  true 롥ɤѤʤROM˥
䤹٤ROMˤˤϡɤʤ

ɤΥåȤɤμ¹ԴĶбƤ뤫ϡåΥޥ˥奢
򻲾Ȥ뤳ȡ

(D) ̥ѥ륪ץ

Τ˶̤륳ѥ륪ץɲäɬפʾˤϡѿ
ѹ롥Υѥ륪ץ󤬡ΥåȤǾɬפ
ˤϡåȰ¸줿 Makefile.config ٤
롥ɲäβǽΤ륳ѥ륪ץˤĤƤϡ7.6 ѥ
륪ץפ򻲾ȤΤȡ

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

(E) ץꥱץ˴ؤ

ץꥱץबĤCե*.cˤΤߤǹ
ƤˤϡUTASK ˤΥե̾Ф褤ץꥱ
ץबʣΥեǹˤϡUTASK ˤΥ
ץꥱ֥̾ȥե̾ UTASK_ASMOBJS 
 UTASK_COBJS 󤹤롥ξˤ⡤ե졼ե
ϡUTASK ̾˳ĥ "cfg" ղä̾Ȥ롥

ե򥳥ѥ뤹ΤȤ̤Υǥ쥯ȥ֤ˤϡ
UTASK_DIRS ˤΥǥ쥯ȥɲä롥ޤץꥱΥ
ѥɬפʥѥ륪ץ䡤ץꥱ󤬥饤֥ɬ
פȤˤϡUTASK_CFLAGS  UTASK_LIBS 롥

(F) åȥե

ɥ⥸塼ηꤹ롥ŪˤϡELFλ $(JSPOBJ) 
ޤ jsp.outPARTNER_JĶλˡХʥλ jsp.bin
 Sλ jsp.S ꤹ롥$(JSPOBJ) ϡCygwinĶλˤ 
jsp.exeǤʤˤ jsp Ȥʤ롥

(G) ͥΥե졼ե

եȥʤΥե졼ɲäˤϡε§
뤳ȤɬפǤ롥

7.6 ѥ륪ץ

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

7.7 ե졼ġλȤ

JSPͥΥե졼ġϡե졼cfg
ˤȥѥ᡼åץchkץˤ鹽
롥Υץˤ륳ե졼ˤĤƤϡ
2.10 ŪAPIȥե졼פ򻲾ȤΤȡ

cfgץϡƥॳե졼եCΥץ
åǽΡˤɸϤɤ߹ࡥ

cfgץФ륪ץϼ̤ꡥ

    -c, --checkerfile
	ŪAPIΥѥ᡼åѤե kernel_chk.c 
	ʥǥեȤǤʤˡ

    -le
	åѸǽϤʥǥեȡˡ

    -lj
	åܸǽϤ롥

chkץϡͥΥɥ⥸塼̾ȥåե̾
᡼ˤȤ롥ǥåեȤϡcfgץब 
kernel_chk.c 򥳥ѥ餪 utils/gencheck ˤùե
ΤȤǤ롥åե̾Ͼά뤳ȤǤ뤬ξˤϡ
ĤΥåԤʤ

chkץФ륪ץϼ̤ꡥ

    -le
	åѸǽϤʥǥեȡˡ

    -lj
	åܸǽϤ롥

7.8 󥫥ץȤȥΰ

JSPͥΥˡϡåȰ¸Υ󥫥ץȡ*.ldˤ
ҤƤ롥ץץ Makefile ǤϡåȰ¸
줿 Makefile.config  LDSCRIPT ȡ̾
Υե󥫥ץȤѤ롥

JSPͥưˤϡʲΥΰ褬ɬפˤʤ롥

(a) ΰ

ͥ뤪ӥץꥱΥץपǡ֤
补ROM֤ȤǽǤ롥Ƭɥ쥹򡤥ͥ󥯤
ݤ -Ttext ץǻꤹ롥ץץ Makefile Ǥϡ
åȰ¸줿 Makefile.config  TEXT_START_ADDRESS 
ȡ󥯻 -Ttext ץղä롥

(b) ǡΰ

ͥ뤪ӥץꥱλѤǡΰ补Ūʥǡΰ
ȡsbrkؿˤäƼҡΰ褫ʤ롥ͥϥҡΰ
ѤʤƬɥ쥹򡤥ͥ󥯤ݤ -Tdata ץ
ǻꤹ롥ץץ Makefile ǤϡåȰ¸
줿 Makefile.config  DATA_START_ADDRESS ȡ
 -Tdata ץղä롥

(c) 󥿥ƥѤΥåΰ

ߥϥɥʤɤ󥿥ƥȤѤ륹åΰ补ΰ
ˡϥåȰ¸Ǥ뤬̾ϡåȥƥ¸Υ
롼ɥեsys_config.hˤǥåνͤå
ץå¸Υȥåץ⥸塼start.Sǽ롥

7.9 ¾ΥåȤؤΥݡƥ

JSPͥ¾ΥåȤإݡƥ󥰤뤿ɬפʺȤϡ礭
ͥ뼫ȤΥݡƥ󥰡ƥॵӥΥݡƥ󥰡ȯ
ιۤɸγȯĶȤκۤεۼʤ롥

ͥ뼫ȤΥݡƥ󥰤ˤĤƤϡΥޥ˥奢Ȥ̤ˡͥ
ΥåȰ¸Υ󥿥եͤ˴ؤɥȤѰդƤ
Τǡ򻲾Ȥ줿ܤȤˤĤƤϡ̤줿


¾

8.1 ֥

TOPPERSץȤJSPͥΤΥ֥Ȥ򡤰ʲURL
ѰդƤ롥

	http://www.ertl.jp/TOPPERS/

եåȤκǿǤϡΥ֥Ȥɤ뤳ȤǤ롥
ޤҤΥ᡼󥰥ꥹȤΥ֤ʤɤ⡤Υ֥ȤǱ
뤳ȤǤ롥

8.2 Ѿ

JSPͥѾϡƥեƬƤʤΥɥ
ȤƬˤĤƤˡϡƥեƬɽƤ
ԤͭƤ롥

Ѿ (2)  (b) ˤơѤη֤Ԥ𤹤ˡȤ
ƤϡJSPͥѤʤμ̤̾ΡѤJSPͥι
ʤɤΥåȰ¸Ѥˤ򡤼Υɥ쥹إ᡼Ϣ
ˡɸȤ롥JSPͥʰʳѤˤϡ˽स
𤹤ΤȤ롥

	toppers-report@ertl.jp

ޤκݤˡJSPͥѤƤΥȤ䤴ո⤤ȹ
Ǥ롥ˡǤ񤷤ˤϡ̤줿

8.3 ݾڡݡȡŬ

JSP̵ͥݾڤ󶡤ƤΤǤ롥ȯԤϡŬѲǽ
ޤơʤݾڤԤʤޤݡȤ«⤷Ƥʤ
䤬ϡҤΥ᡼󥰥ꥹȤѤƤȹǤ
롥

JSPͥϸ桦Ѥ뤳ȤŪŪȤƳȯƤ
뤿ᡤˤäƤϡ¹ǽݼŻ뤷Ƥ
롥Τᡤ᡼ƱΥեȥ٤ơǽŪˤ
⤷ʤޤʲƤ ITRONOS ٤ȡƥȤ
ԽʬǤ롥

8.4 ᡼󥰥ꥹ

JSPͥΥ桼Ф󶡤ӥ桼ߴ֤ξ򴹤ư
ˤ뤿ˡTOPPERS桼᡼󥰥ꥹȤѰդƤ롥Υ᡼
󥰥ꥹȤˤϡïǤ⼫ͳ˥᡼դ뤳ȤǤ롥ޤ
줿᡼ϡ֥ȤɤळȤǤ롥JSPͥ˥Х
ȯˤϡΥ᡼󥰥ꥹȤ𤷤ߤ

᡼󥰥ꥹȤؤΥ᡼ϼ̤ꡥ

	toppers-users@ertl.jp

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

    åȤ˴ؤ
	åȥץåμ
	åȥܡɤμ

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

Υ᡼󥰥ꥹȤؤϿ˾ϡޤ
toppers-users-ctl@ertl.jp Ƥˡʸ

	subscribe ʤ̾
	: subscribe Hiroaki Takada

Ƚ񤤤᡼դʾ嵭ΥޥˤȾѱʸΤߤȤȡˡ
ޤ֤ϿǧΤΥ᡼뤬ƤΤǡλؼ˽ä
Ͽ롥

8.5 ITRON Club

Żٶ̣鷺 ITRONͤ ITRONץȤ˶̣
ͤΤξ򴹡ξȤơITRON Club ᡼󥰥ꥹȤѰ
Ƥ롥Υ᡼󥰥ꥹȤˤϡITRON ˶̣äƤͤʤï
⻲äǤ롥ä˾ϡ
itron-club-request@tron.um.u-tokyo.ac.jp ޤϢ줿

ʤΥ᡼󥰥ꥹȤ줿᡼ϡ夫᡼󥰥ꥹȤ
äͤˤɤ褦ˤƤ롥ޤ᡼󥰥ꥹȤΥХꥹ
Ȥϡ᡼󥰥ꥹǸΤǡ餫ᤴλ򤤤

8.6 TOPPERSץȤؤι׸

TOPPERSץȤǤϡŪޤ϶ŪʻٱƤ롥ܤ
Ȥϡ̤ȹǤ롥


ե

9.1 ӥ

(1) ǽ

	ER ercd = act_tsk(ID tskid);
	ER ercd = iact_tsk(ID tskid);
 ER_UINT actcnt = can_act(ID tskid);
	     void 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);

(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 = frsm_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 state = sns_tex(void);

(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 = 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 = snd_dtq(ID dtqid, VP_INT data);
	ER ercd = psnd_dtq(ID dtqid, VP_INT data);
	ER ercd = ipsnd_dtq(ID dtqid, VP_INT data);
	ER ercd = tsnd_dtq(ID dtqid, VP_INT data, TMO tmout);
	ER ercd = fsnd_dtq(ID dtqid, VP_INT data);
	ER ercd = ifsnd_dtq(ID dtqid, VP_INT data);
	ER ercd = rcv_dtq(ID dtqid, VP_INT *p_data);
	ER ercd = prcv_dtq(ID dtqid, VP_INT *p_data);
	ER ercd = trcv_dtq(ID dtqid, VP_INT *p_data, TMO tmout);

	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);

(5) סǽ

	ER ercd = get_mpf(ID mpfid, VP *p_blk);
	ER ercd = pget_mpf(ID mpfid, VP *p_blk);
	ER ercd = tget_mpf(ID mpfid, VP *p_blk, TMO tmout);
	ER ercd = rel_mpf(ID mpfid, VP blk);

(6) ִǽ

	ER ercd = set_tim(SYSTIM *p_systim);
	ER ercd = get_tim(SYSTIM *p_systim);
	ER ercd = isig_tim(void);

	ER ercd = sta_cyc(ID cycid);
	ER ercd = stp_cyc(ID cycid);

(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 state = sns_ctx(void);
     BOOL state = sns_loc(void);
     BOOL state = sns_dsp(void);
     BOOL state = sns_dpn(void);

(8) ߴǽ

	ER ercd = dis_int(INTNO intno);
	ER ercd = ena_int(INTNO intno);
	ER ercd = chg_ixx(IXXXX ixxxx);
	ER ercd = get_ixx(IXXXX *p_ixxxx);
	 xxxxxxXXXX ϥå롥

(9) CPU㳰ȯΥƥֻ

     BOOL state = vxsns_ctx(VP p_excinf);
     BOOL state = vxsns_loc(VP p_excinf);
     BOOL state = vxsns_dsp(VP p_excinf);
     BOOL state = vxsns_dpn(VP p_excinf);
     BOOL state = vxsns_tex(VP p_excinf);

(10) ǽɾѥƥﻲȵǽ

	ER ercd = vxget_tim(SYSUTIM *p_sysutim);

9.2 ŪAPI

    CRE_TSK(tskid, { ATR tskatr, VP_INT exinf, FP task,
				PRI itskpri, SIZE stksz, VP stk });
    DEF_TEX(ID tskid, { ATR texatr, FP texrtn });
    CRE_SEM(ID semid, { ATR sematr, UINT isemcnt, UINT maxsem });
    CRE_FLG(ID flgid, { ATR flgatr, FLGPTN iflgptn });
    CRE_DTQ(ID dtqid, { ATR dtqatr, UINT dtqcnt, VP dtq });
    CRE_MBX(ID mbxid, { ATR mbxatr, PRI maxmpri, VP mprihd });
    CRE_MPF (ID mpfid, { ATR mpfatr, UINT blkcnt, UINT blksz, VP mpf } ) ;
    CRE_CYC (ID cycid, { ATR cycatr, VP_INT exinf, FP cychdr,
				RELTIM cyctim, RELTIM cycphs } ) ;
    DEF_INH(INHNO inhno, { ATR inhatr, FP inthdr });
    DEF_EXC(EXCNO excno, { ATR excatr, FP exchdr });
    ATT_INI({ ATR iniatr, VP_INT exinf, FP inirtn });

9.3 ᥤ󥨥顼ɰJSPͥ뤬֤ΤΤߡ

    E_PAR	-17		ѥ᥿顼
    E_ID	-18		IDֹ
    E_CTX	-25		ƥȥ顼
    E_ILUSE	-28		ӥ
    E_OBJ	-41		֥Ⱦ֥顼
    E_QOVR	-43		塼󥰥Сե
    E_RLWAI	-49		Ԥ֤ζ
    E_TMOUT	-50		ݡ󥰼Ԥޤϥॢ

9.4 С

    2000ǯ1115	Release 1.0		ǽΥ꡼
    2000ǯ1124	Release 1.0 (PL=1)	ν
    2001ǯ224	Release 1.1		V850ɲäʤ
    2001ǯ59	Release 1.1 (PL=1)	SH1ɲäʤ
    2001ǯ1115	Release 1.2		SH4H8ARM7TDMIɲäʤ

ʾ
