
             TOPPERS/JSPͥ 桼ޥ˥奢 

             Release 1.4бǽ: 1-Jul-2003

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

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

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

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

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

 @(#) $Id: user.txt,v 1.3 2003/11/10 07:51:20 monaka Exp $
----------------------------------------------------------------------
 * ITRON4.0ͤϡȥ󶨲濴Ȥʤäƺꤵ줿ץʥꥢ
   륿५ͥͤǤITRON4.0ͤλͽϡȥ󶨲Υۡ
   ڡhttp://www.assoc.tron.org/ˤꤹ뤳ȤǤޤ
----------------------------------------------------------------------
 * 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ͤ˽򤷤ꥢ륿५ͥǤ롥
JSPJust Standard Profileˤ̤̾ꡤITRON4.0ͤΥ
ɥץե뵬˽äƼƤ롥

1.1 åȥץååȥƥ

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

    ץåʷ֡  ƥʥ᡼̾
    M68040MC68LC040 DVE-68K/40Ż
    SH3SH7709A      MS7709ASE01ΩĶLSIƥॺ
    SH3SH7729R      MS7729RSE01ΩĶLSIƥॺ
    SH3SH7727       MS7727CP01 ΩĶLSIƥॺ
    SH4SH7750       MS7750SE01 ΩĶLSIƥॺ        
    SH1SH7032       KZ-SH1-01ʵԥޥԥ塼
                         RISCɾåSH-1CQǡˤǤư
    SH1SH7032       SH1/CPUBʾ׾ԡ
    H8H8/3048F      AKI-H8/3048FʽŻ̾
    H8H8/3052F      AKI-H8/3052FʽŻ̾
    H8H8/3067F      AKI-H8/3067FʽŻ̾
    H8H8/3068F      AKI-H8/3068FʽŻ̾
    H8H8/3069F      AKI-H8/3069FʽŻ̾
    H8SH8S/2350     MISPO H8S/2350 EVAʥߥݡ
    ARM7TDMIKS32C50100      Evaluator-7TARM
    V850ʦPD703107          RTE-V850E/MA1-CBʥޥܡ
    M32RM32102S6FP          M3A-2131G50ʻɩŵ
    MicroBlaze                  Insight VirtexII V2MB1000MEMEC
    TMS320C54xTSM320C5402   TMS320VC5402 DSKTI
    i386                        PC/ATߴ

    Xstormy16           Υޥȯġ (ŵ)
    MIPS3VR4131      KZ-Vr4131PCI-01ʵԥޥԥ塼
    MIPS3VR5500      RTE-VR5500-CB(64)ʥޥܡ


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

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

1.2 ȯĶ

JSPͥϡGCCʤɤGNUȯĶɸΥեȥȯĶȤ
뤬¾μγȯĶѤǤ褦˹θƤ롥ѤǤ볫
ȯĶˤĤƤϡåޤϳȯĶΥޥ˥奢롥

å¸ϡʬɸŪCˤäƵҤƤ뤬
ǽȲξΩ뤿ˡǥ饤ؿѤƤ롥
饤ؿεǽʤȯĶξǤ⡤¤ʤбǽǤϤ
뤬Ψ̵̤ʥɤ뤪줬롥

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

1.3 ߥ졼Ķ

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

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

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   ǽɾѥƥλ

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

(3) λ롼ǽ

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

    VATT_TER    λ롼ɲáŪAPI

λ롼ˤĤƤϡ2.12 ƥཪλȽλ롼
򻲾ȤΤȡ

(4) ͥư֤λ

ͥư륿ƤӽФؿͥνλ
佪λϸˤƤӽФǽˤϡǥ
ΥӥƤӽФ뤫Ƚ̤뤳ȤɬפȤʤ롥JSP
ǤϡȽ̤ǽˤ뤿ˡΥӥɲäƤ롥

    vsns_ini    ͥư֤λ

1.5 Τ

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

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

1.6 ջ

CRE_DTQΥѥ᡼dtqcntϡITRON4.0ͤVer. 4.01.00Ǥϰ
ѥ᡼ȵꤵƤ뤬JSPͥǤVer. 4.02.00˽򤷤ơ
ץץåѥ᡼ȰäƤ롥


JSPͥεǽ

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

2.1 ˤȥǥ

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

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

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

2.2 ǡ

JSPͥǤϡʲ˥ꥹȥåפǡsigned int
unsigned intޤsize_tƤ롥ηΥϡ
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		ư⡼
	RELTIM		л
	TEXPTN		㳰װΥӥåȥѥ
	FLGPTN		٥ȥե饰Υӥåȥѥ

    size_tƤǡ
	SIZE		

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

SYSTIMϡ32ӥåȤ̵Ƥꡤ¤ΤȤ
ˡѤƤʤ

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

2.3 ֥ȤIDֹͥ

֥ȤIDֹˤϡ1Ϣ³ͤѤ롥֥Ȥ
IDֹȴ㤨СID=1ID=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㳰ϥɥ⤫
ƤӽФȤǤ롥CPU㳰CPUå֤ȯ
ϡ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_obj.dat롥ŪAPIʸˡ顼ʤӽΥ顼
ΰˤФСͥΥե졼顼𤹤롥

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

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

2.11 󥯥롼ɥե

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

t_services.hϡͥưץΥեǥ
롼ɤ٤ɸ।󥯥롼ɥեǤ롥ǡkernel.hʤ
ˤ顤t_stddef.hitron.htool_defs.hsys_defs.hcpu_defs.h
t_syslog.hˤserial.h򥤥󥯥롼ɤƤ롥ޤץꥱ
ͭפȻפ򤤤ĤޤǤ롥

s_services.hϡľܥϡɥ˥ǥХɥ饤ФΥ
եǥ󥯥롼ɤ٤ɸ।󥯥롼ɥեǤ롥ǡ
sil.hʤˤ顤t_stddef.hitron.htool_defs.hsys_defs.h
cpu_defs.ht_syslog.hˤt_config.hʤˤ顤sys_config.h
cpu_config.htool_config.hˤ򥤥󥯥롼ɤƤ롥ޤץꥱ
󤫤ƤФǥХɥ饤ФΥ󥯥롼ɥեǡ饤
ؿʤɤǥƥ।󥿥ե쥤ѤƤˤ⡤Υե
򥤥󥯥롼ɤ롥

2ĤΥե뤫饤󥯥롼ɤեʾ󤷤Ρˤϡ
ľܥ󥯥롼ɤʤΤ§Ǥ뤬3ĤΥ㳰Ǥ롥

(1) ͥ뤫ƤФǥХɥ饤ФΥ󥯥롼ɥեǡ
    饤ؿʤɤǥƥ।󥿥ե쥤ѤƤˤϡ
    sil.h򥤥󥯥롼ɤ롥

(2) ͥưץǡåȰ¸򻲾Ȥ
    ˤϡt_config.h򥤥󥯥롼ɤ롥

(3) ¾ITRONOS饽եȥݡƥ󥰤ʤɤˤϡ
    kernel.hľܥ󥯥롼ɤƤ褤

(4) ITRONͶ̵˽򤹤륽եȥʤΥ󥯥롼ɥե
    ϡitron.hľܥ󥯥롼ɤƤ褤

ʤJSPͥRelease 1.3ΥСǤϡt_services.h
jsp_services.hȤե̾ˤʤäƤС鷺ư
ץݤˤϡt_services.h򥤥󥯥롼ɤŤС
jsp_services.ht_services.h˥ܥå󥯤Žˡ侩롥

2.12 ƥཪλȽλ롼

ץꥱ󤫤 kernel_exitؿƤӽФȤǡͥλ
뤳ȤǤ롥kernel_exitؿƤӽФȡͥϡλ
롼μ¹ԡȯĶ¸νλatexit ˤäϿ줿ؿ
 C++ ˤǥȥ饯μ¹ԡˤԤä塤ͥνλ


λ롼ϡץꥱѰդVATT_TER Ȥäƥ
Ͽ롥VATT_TER ˤäɲä줿λ롼ϡͥ
δγߤ٤Ƥγߤػߤ֤ǡƥॳե
졼եǤ VATT_TER εҽȵդνǸƤӽФ롥
λ롼ǤϡӥƤӽФƤϤʤʤλ
롼ǥӥƤӽФ硤ƥưݾڤ
ʼºݤˤϡåȤˤäơƤӽФƤ⺹٤ʤӥ
뤬ˡ


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			᡼ܥåؤ

(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_mpf			Ĺ֥åγ
(3) pget_mpf			Ĺ֥åγʥݡ󥰡
(4) tget_mpf			Ĺ֥åγʥॢȤ

(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			ǥѥåα֤λ

(11) vsns_ini			ͥư֤λ

CAPI
	BOOL state = vsns_ini();

ڥѥ᡼
	ʤ

ڥ꥿ѥ᡼
	BOOL	state		ͥư

ڵǽ

ͥνλޤϽλϸ˸ƤӽФ줿 TRUE
ͥư˸ƤӽФ줿 FALSE ֤

Υӥ뤬 TRUE ֤ˤϡ¾ΥӥƤӽФ
ϤʤʤΥӥ뤬 TRUE ֤¾Υӥ
ӽФ硤ƥưݾڤʤ

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) VATT_TER			λ롼ɲáŪAPI

ŪAPI
	VATT_TER({ ATR teratr, VP_INT exinf, FP terrtn });

ڥѥ᡼
	ATR	teratr	λ롼°
	VP_INT	exinf	λ롼γĥ
	FP	terrtn	λ롼εư

ڵǽ

λ롼򡤻ꤵƥѥ᡼˴Ťɲä롥teratr 
Ͻλ롼°exinf Ͻλ롼ư˥ѥ
ȤϤĥterrtn Ͻλ롼εưϤǤ롥

VATT_TER ˤƤϡteratr ϥץץåѥ᡼Ǥ롥 
teratr ˤϡTA_HLNG λ꤬Ǥ롥TA_HLNGʡ0x00ˤꤵ줿
ˤϹѤΥ󥿥եǽλ롼ư롥

VATT_ATR ˤäɲä줿λ롼ϡƥཪλ˼
Ԥ롥ܤϡ2.12 ƥཪλȽλ롼פ򻲾
뤳ȡ

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顼Ȥʤ롥


ƥǽ

ƥǽϡͥȯ۾ݡʥμԡ
顼ɤ֤ʤ顼ˤ򡤥ƥγΤ뤿εǽ
롥ͥΥȥ졼ƥॵӥ䥢ץꥱȯ
۾ݤȥ졼ˤ⡤ƱǽѤ뤳ȤǤ롥

4.1 ƥǽΰդ

ͥȯ۾ݤ򥷥ƥγΤ뤿ˡȤơ
ꥢ륤󥿥ե˽Ϥ롤ǥ˽񤭽Фʤɤˡͤ
롥

ƥǽϡͥƤӽФȤϡ
ͥΰȹͤΤǤ롥ꥢ륤󥿥եǥ
˥뤿ΥӥʥǥХɥ饤Фʤɡˤϥͥư
뤿ᡤѤ륷ƥǽϡͥ˼줿
ƥॵӥȹͤǡ֤Ť̯Ǥ롥

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

4.2 ХåեؤεϿ٥

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

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

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

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

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

4.3 μ

JSPͥΥƥǽϡ˰ʲμ̤ߤƤ롥

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

μ̤ϡITRONǥХå󥰥󥿥եͤ򻲹ͤƤ롥
ITRONǥХå󥰥󥿥եͤˤȥ졼ϡ
RIMRTOS Interface ModuleˤǥХåġϤη᤿
ΤǤꡤͥ뤬ϤȰפƤɬפϤʤRIM Ѵ
Ф褤ˡºݡμ̤ǡLOG_TYPE_CYC  LOG_TYPE_ASSERT 
ϡǥХå󥰥󥿥եͤȰפƤʤ

μ̤ǡLOG_TYPE_COMMENT  LOG_TYPE_ASSERT ʳϥ
Υȥ졼ΤΤΤǡɤΤ褦Ѥ뤫ϥåȰ¸
ǤƤ4.5Ỳȡˡ

4.4 ν

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

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

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

ʤμԤϡLOG_EMERG ǽϤ롥ͥΥȥ졼
ϡLOG_DEBUG ǽϤΤɸȤʥåȰ¸ˡ

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

4.5 ȥ졼ǽ

JSPͥϡͥΥȥ졼뤿δŪʻȤߤ
äƤ뤬ȥ졼μºݤμˡϥåȰ¸Ȥʤ롥
ͥΥȥ졼μˡƥǽȤΤ1ĤǤ
롥ͥΥȥ졼򥷥ƥѤƼФ
ˡϹͤƤʤʥƥư뤳Ȥˤȥ졼
졤Ф¿Υǽ뤿ˡ

4.6 ƥǽγĥӥ

ƥǽ󶡤ĥӥϼ̤Ǥ롥

(1) ER vwri_log(UINT prio, SYSLOG *p_log)

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

(2) ER_UINT vrea_log(SYSLOG *p_log)

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

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

Хåե˵Ͽ٤ν٤Υӥåȥޥlogmaskˤȡ
٥ϵǽѤƽϤ٤ν٤Υӥåȥޥ
lowmaskˤꤹ롥

4.7 ƥǽΤΥ饤֥ؿȥޥ

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

(1) void _syslog_n(UINT prio, UINT type, VP_INT arg1, ..., VP_INT argn)
     n  06 Τ줫

̤ typeѥ᡼ arg1argn Υ򡤽 prio 
Ϥ뤿Υ饤֥ؿ

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

format ʸ󤪤Ӥ³륳ȡʥ̤ 
LOG_TYPE_COMMENT Υˤ򡤽 prio ǽϤ뤿Υޥ

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

format ΥեޥåȵҤϡΥޥäѲƤϤʤ
ʤʸϤȤꤷƤ롥

format ˻ȤեޥåȻϼ̤ꡥ

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

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

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

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

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

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

(4) UINT LOG_MASK(UINT prio)

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

(5) UINT LOG_UPTO(UINT prio)

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

(6) void syslog_printf(char *format, VP_INT *args, void (*putc)(char))
(7) void syslog_print(SYSLOG *p_sys, void (*putc)(char))
(8) void syslog_output(void (*putc)(char))

եޥåȽϤ뤿Υ饤֥ؿsyslog_printf 
줿եޥåʸȰsyslog_print Ϥ줿
syslog_output ϥХåե˳Ǽ줿եޥåȽϤ롥

ƥѤ뤳ȤꤷƤ뤿ᡤΥ饤֥ؿ
եϥݡȥ饤֥Υǥ쥯ȥ֤Ƥ롥
٥ϤԤˡƥǽǤѤƤ롥

4.8 ƥǽˡ

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

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

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

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

ɬפʥϤ٤٥ϵǽѤƽϤ褦
vmsk_log 1ѥ᡼ 0 ˤ롥ޤ٥ʸ
ؿѰդ롥ƥס

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

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

(d) ϵϿϤ⤷ʤ

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

̤ˡȤơOMIT_SYSLOG ƥѥ뤹뤳Ȥǡƥ
ǽ򥫡ͥ뤫곰ͥΥɥ򾮤뤳Ȥ
Ǥ롥ץꥱ󤫤 syslogsyslog_printfsyslog_print
syslog_output γƴؿƤӽФƤ硤δؿΥɤϳ
ʤޤͥ뤫ΥϵϿϤʤץꥱ
󤫤ΥϵϿϤˤϡͥΤ OMIT_SYSLOG 
ƥѥ뤹Ф褤ξ硤ƥǽνؿ
_kernel_syslog_initializeˤȽλؿ_kernel_syslog_teminate
ϡץꥱ󤫤ƤӽФɬפ롥

ʤ(b)(c) ˸ꤷƻѤˤ⡤ͥΰΥ
ɤפˤʤꡤɥ򾮤Ǥ;Ϥ뤬ʰפˡ
դƤʤ


ƥॵӥ

ǤϡJSPͥ뤬ݡȤƤ륷ƥ।󥿥ե쥤
SILˤȡJSPͥ뤬ɸŪưɥ饤Фӥƥॿ
ˤĤ롥

5.1 ƥ।󥿥ե쥤SIL

JSPͥϡITRONǥХɥ饤߷ץɥ饤ΰʬȤƸƤ
Ƥ륷ƥ।󥿥ե쥤SILˤǡʲ˵󤲤뵡ǽ
򥵥ݡȤƤ롥SILѤץफϡt_services.h夨ơ
s_services.h򥤥󥯥롼ɤ롥

ITRONǥХɥ饤߷ץɥ饤ǤϡǥХɥ饤ФǡSIL
̤ľܥǥХ˥⥸塼PDICˤȡͥεǽ
Ѥ⥸塼GDICˤʬΥ뤳ȤˤƤ롥ʤPDIC
SILѤ뤬ͥεǽѤGDICϥͥεǽѤ뤬SIL
ѤƤϤʤʤΤᡤs_services.hˤϡͥѤ뤿
ϴޤޤƤʤ

5.1.1 ߥå֤

ǥХ򰷤ץǤϡ٤ƤγߡNMIʲƱ
ػߤ礬롥ITRON4.0ͤCPUå֤ϡͥδ
γߡNMIʳ˥ͥδγߤ뤫ϡJSPͥ
ǤϥåȰ¸ˤػߤȤϸ¤餺Τ褦ʾѤΤŬ
ڤǤʤ

ǡ٤Ƥγߤػߤ֤ߥå֤ȸƤӡSILǤ
ߥå֤椹뤿ΰʲεǽѰդƤ롥

(1) SIL_PRE_LOC

ߥå֤ɬפѿޥ
Υޥ򵭽Ҥǡߤζػ߾֤Ͽ롥SIL_LOC_INT
SIL_UNL_INTѤؿʥ֥åˤƬѿ˵Ҥʤ
ʤʤ

(2) SIL_LOC_INT()

٤Ƥγߤػߤߥå֤˰ܹԤ롥

(3) SIL_UNL_INT()

SIL_PRE_LOC򵭽Ҥξ֤᤹

ߥå֤浡ǽλϼ̤ꡥ

	{
		SIL_PRE_LOC;

		SIL_LOC_INT();
		δ֤Ϥ٤Ƥγߤػߤ
		δ֤˥ӥƤӽФƤϤʤʤ
		SIL_UNL_INT();
	}

ʤJSPͥ뼫Ȥϳߥå֤ϴƤʤᡤ
֤ǤϥӥƤӽФƤϤʤʤʸƤӽФư
ݾڤʤˡ

5.1.2 Ԥ

ǥХ򥢥ݤˡʻԤʤФʤʤ礬
롥Τ褦ʾˡnop򤤤Ĥʤɤˡбȡ
ӥƥʤ롥SILǤϡʻԤԤεǽ
ѰդƤ롥

(1) void sil_dly_nse(UINT dlytim)

dlytimǻꤵ줿ʾλ֡ñ̤ϥʥáˡ롼פʤɤˤäԤġ
ꤷͤˤäƤϡꤷ֤⤫ʤĹԤľ礬Τ
դ뤳ȡ

5.1.3 ǥ

ץåΥǥΤ뤿ΥޥȤơʲΥޥ
Ƥ롥

(1) SIL_ENDIAN

ȥ륨ǥץåǤSIL_ENDIAN_LITTLEʡ0ˡӥåǥ
ץåǤSIL_ENDIAN_BIGʡ1ˤ˥ޥ롥

5.1.4 ֥ؿ

֤˥ޥåԥ󥰤줿ǥХ쥸䡤ǥХȤζͭ
򥢥뤿ˡʲδؿѰդƤ롥

(1) VB sil_reb_mem(VP mem)

memǻꤵ륢ɥ쥹顤8ӥåñ̤ɤ֤ͤ

(2) void sil_wrb_mem(VP mem, VB data)

memǻꤵ륢ɥ쥹ˡdataǻꤵͤ8ӥåñ̤ǽ񤭹ࡥ

(3) VH sil_reh_mem(VP mem)

memǻꤵ륢ɥ쥹顤16ӥåñ̤ɤ֤ͤ

(4) void sil_wrh_mem(VP mem, VH data)

memǻꤵ륢ɥ쥹ˡdataǻꤵͤ16ӥåñ̤ǽ񤭹ࡥ

(5) VH sil_reh_lem(VP mem)

memǻꤵ륢ɥ쥹顤16ӥåñ̤ǥȥ륨ǥɤ
֤ͤȥ륨ǥץåǤϡsil_reh_memȰפ롥

(6) void sil_wrh_lem(VP mem, VH data)

memǻꤵ륢ɥ쥹ˡdataǻꤵͤ16ӥåñ̤ǥȥ륨
ǥǽ񤭹ࡥȥ륨ǥץåǤϡsil_wrh_mem
פ롥

(7) VH sil_reh_bem(VP mem)

memǻꤵ륢ɥ쥹顤16ӥåñ̤ǥӥåǥɤ
֤ͤӥåǥץåǤϡsil_reh_memȰפ롥

(8) void sil_wrh_bem(VP mem, VH data)

memǻꤵ륢ɥ쥹ˡdataǻꤵͤ16ӥåñ̤ǥӥå
ǥǽ񤭹ࡥӥåǥץåǤϡsil_wrh_mem
פ롥

(9) VW sil_rew_mem(VP mem)

memǻꤵ륢ɥ쥹顤32ӥåñ̤ɤ֤ͤ

(10) void sil_wrw_mem(VP mem, VW data)

memǻꤵ륢ɥ쥹ˡdataǻꤵͤ32ӥåñ̤ǽ񤭹ࡥ

(11) VW sil_rew_lem(VP mem)

memǻꤵ륢ɥ쥹顤32ӥåñ̤ǥȥ륨ǥɤ
֤ͤȥ륨ǥץåǤϡsil_rew_memȰפ롥

(12) void sil_wrw_lem(VP mem, VW data)

memǻꤵ륢ɥ쥹ˡdataǻꤵͤ32ӥåñ̤ǥȥ륨
ǥǽ񤭹ࡥȥ륨ǥץåǤϡsil_wrw_mem
פ롥

(13) VW sil_rew_bem(VP mem)

memǻꤵ륢ɥ쥹顤32ӥåñ̤ǥӥåǥɤ
֤ͤӥåǥץåǤϡsil_rew_memȰפ롥

(14) void sil_wrw_bem(VP mem, VW data)

memǻꤵ륢ɥ쥹ˡdataǻꤵͤ32ӥåñ̤ǥӥå
ǥǽ񤭹ࡥӥåǥץåǤϡsil_wrw_mem
פ롥

ʤJSPͥΥå¸ǤϡI/O֤˥뤿
ؿѰդƤʤåȰ¸ǥݡȤ뤳ȤϲǽǤ롥
ܤϡåΥޥ˥奢򻲾Ȥ뤳ȡ

5.2 ƥ९åɥ饤

ƥ९åɥ饤ФϡϡɥޤѤƼŪ˳ߤ
ȯisig_timƤӽФƥͥ˥ƥå򶡵뤹롥
ƥ९åɥ饤Фϡƥॳե졼ե
timer.cfg򥤥󥯥롼ɤ뤳ȤǡƥȤ߹ळȤǤ롥

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

5.2.1 ƥ९åɥ饤Ф

ƥ९åɥ饤Фϡޤεư޳ߥϥɥ顤
ޤ߽ǹ롥

(1) void timer_initialize(VP_INT exinf)

ޤεưޤŪʥ޳׵ȯ
롥ͥ˽롼ȤϿ롥exinf̵뤹롥

(2) void timer_handler()

޳ߥϥɥ顥޳׵򥯥ꥢ塤isig_timƤӽ
ƥƥå򶡵뤹롥ͥ˳ߥϥɥȤϿ롥

(3) void timer_terminate(VP_INT exinf)

ޤ߽Ūʥ޳׵ߤ롥ͥ˽λ
롼ȤϿ롥exinf ̵뤹롥

5.3 ꥢ륤󥿥եɥ饤

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

5.3.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_INT serial_rea_dat(ID portid, char *buf, UINT len)

portidǼ륷ꥢݡȤ顤lenХȤʸbuf
ΰ롥ʸޤϥ顼ɤ֤

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

portidǼ륷ꥢݡȤˡbuflenХȤʸ롥
ʸޤϥ顼ɤ֤

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

portidǼ륷ꥢݡȤioctlǼͤꤹ
롥

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

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

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

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

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

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

ʤץľΥǥեȤͤ(IOCTL_ECHO | IOCTL_CRLF |
IOCTL_FCOUT | IOCTL_FCIN)Ǥ롥

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

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

5.3.2 ꥢ륤󥿥եɥ饤Ф

ꥢ륤󥿥եɥ饤ФϡΥӥ˲äơ
ȳߥϥɥǹ롥ϡͥ˽롼
ȤϿ롥ߥϥɥϡͥ˳ߥϥɥȤϿ
롥Ͽserial.cfg˴ޤޤ롥

(1) void serial_initialize(VP_INT exinf)

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

(2) ߥϥɥ

륢I/OǥХμˤäơߥϥɥμϰۤʤ롥
Ūˤϡߤȼߤ̤ƤΤ̤ƤʤΤ䡤
ݡȤʣĥꥢI/OǥХǥݡ˳ߥϥɥ餬̤
Τ̤ƤʤΤ롥ꥢ륤󥿥եɥ饤Фγ
ߥϥɥϡͥ˳ߥϥɥȤϿ롥

5.4 ƥ

ƥϡͥΥХåեФ
ǥХ˥륵ӥѤƳ˽Ϥ륿Ǥ롥

JSPͥɸۥåȤ˴ޤޤ륷ƥϡꥢ륤
󥿥ե˥ʸηǽϤΤǡƥ
ΰȤդ󶡤Ƥ롥Υƥϡƥ
ե졼եlogtask.cfg򥤥󥯥롼ɤ뤳Ȥǡ
ƥȤ߹ळȤǤ롥


ݡȥ饤֥

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

(1) const char *itron_strerror(ER ercd)

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

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


ȯĶ󥹥ȡ롦ݡƥ

7.1 ǥ쥯ȥꡦե빽

եΥǥ쥯ȥ깽ϼ̤ꡥ

    include/    ̥إåե
    kernel/     ͥ륽ե
    systask/    ƥॵӥե
    library/     ݡȥ饤֥꥽ե
    config/     åȰ¸
        m68k/           M68040 ץå¸ե
            dve68k/             DVE-68K/40 ƥ¸ե
        sh3/            SH3 ץå¸ե
            ms7727cp01/          MS7727CP01 ƥ¸ե
            solution_engine/     Solution Engine ƥ¸ե
        sh1/            SH1 ץå¸ե
            kz_sh1/             KZ-SH1-01 ƥ¸ե
            tokiwa_sh1/         SH1/CPUB ƥ¸ե
        h8/             H8 ץå¸ե
            akih8_3048f/        AKI-H8/3048F ƥ¸ե
            akih8_3067f/        AKI-H8/3067F ƥ¸ե
        h8s/            H8S ץå¸ե
            mispo_h8s/          MISPO H8S/2350 EVA ƥ¸ե
        arm7tdmi/       ARM7TDMI ץå¸ե
            evaluator_7t/       Evaluator-7T ƥ¸ե
        v850/           V850 ץå¸ե
            rtev850ema1cb/      RTE-V850E/MA1-CB ƥ¸ե
        m32r/           M32R ץå¸ե
            m3a2131g50/         M3A-2131G50 ƥ¸ե
        microblaze/     MicroBlaze ץå¸ե
            template/           ¤Υƥ๽ǤΥƥ¸ե
            insight_v2mb/       Insight VirtexII V2MB1000 ƥ¸ե
        tms320c54x/     TMS320C54x ץå¸ե
            c5402dsk/           TMS320VC5402 DSK ƥ¸ե
        i386/           i386 ץå¸ե
            pcat/               PC/ATߴ ƥ¸ե
        mips3/          MIPS3 ץå¸ե
            vr4131/             VR4131 ƥ¸ե
            vr5500/             VR5500 ƥ¸ե
        linux/          LinuxΥߥ졼Ķ¸ե
        windows/        WindowsΥߥ졼Ķ¸ե
    pdic/       PDICʥǥХɥ饤ФOS¸ʬ
        simple_sio/     ʰSIOɥ饤Сʥꥢɥ饤ФѤΡ
    cfg/        ͥ륳ե졼
    utils/      桼ƥƥ
    sample/     ץץ Makefile
    doc/        ɥ

    windev/     Windows ݡȥ⥸塼
    WINDOWS/    WindowsΥץץȥץȥե
    C5402DSK/	TMS320VC5402 DSKѤΥץץȥץȥե

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

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

    include/
	itron.h		ITRONͶ̵˴Ϣ
	kernel.h	ITRON4.0ͤ˴Ϣ
	kernel_debug.h	ITRON4.0 ǥХåѥ󥯥롼ɥե
	sil.h		ƥ।󥿥ե쥤SIL
	t_stddef.h	ͥ롦ץꥱ ̥󥯥롼ɥե
	t_config.h	åȰ¸
	t_syslog.h	ƥӥϢ
	t_services.h	ץꥱ ɸ।󥯥롼ɥե
	s_services.h	ǥХɥ饤 ɸ।󥯥롼ɥե
	kernel_cfg.h	kernel_cfg.cѤΥ󥯥롼ɥե
	timer.h		ƥ९åɥ饤дϢ
	serial.h	ꥢ륤󥿥եɥ饤дϢ
	logtask.h	ƥϢ
	linux_sigio.h	Linux Υ֥åI/Oݡ

    kernel/
	Makefile.kernel	ͥΥե빽
	jsp_kernel.h	JSPͥ ɸ।󥯥롼ɥե
	jsp_rename.def	ͥ̾Υ͡
	jsp_rename.h	ͥ̾Υ͡
	jsp_unrename.h	ͥ̾Υ͡
	check.h		顼åѥޥ
	queue.h		֥󥯥塼ι¤
	startup.c	ͥν
	banner.c	ͥεưåν
	task.h		롼Ϣ
	task.c		롼
	wait.h		Ԥ롼Ϣ
	wait.c		Ԥ롼
	time_event.h	।٥ȴϢ
	time_event.c	।٥ȴ
	syslog.h	ƥǽϢ
	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 ꥢɥ饤Ф국

    library/
	log_output.c	ƥǽѥ饤֥ؿsyslog_outputʤɡ
	strerror.c	itron_strerrorؿ
	t_perror.c	t_perrorؿ
	vasyslog.c	syslogؿ

    utils/
	makedep		¸ط
	genoffset	offset.h ץ
	gencheck	ѥ᡼åѥե
	genrename	ܥ͡
	rename		ܥΥ͡

    sample/
	Makefile	ץ Makefile
	Makefile.linux	ץ MakefileLinuxѡ
	Makefile.h8s	ץ MakefileH8Sѡ
	Makefile.microblaze	ץ MakefileMicroBlazeѡ
	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 åȰ¸ޥ˥奢
	h8s.txt		H8S åȰ¸ޥ˥奢
	arm7tdmi.txt	ARM7TDMI åȰ¸ޥ˥奢
	v850.txt	V850 åȰ¸ޥ˥奢
	m32r.txt	M32R åȰ¸ޥ˥奢
	microblaze.txt	MicroBlaze åȰ¸ޥ˥奢
	tsm320c54x.txt	TMS320C54x åȰ¸ޥ˥奢
	i386.txt	i386 åȰ¸ޥ˥奢
	mips3.txt	MIPS3 åȰ¸ޥ˥奢
	linux.txt	Linux ߥ졼Ķ¸ޥ˥奢
	windows.txt	Windows ߥ졼Ķ¸ޥ˥奢
	config.txt	JSPͥ åȰ¸ ݡƥ󥰥
	configurator.txt JSPͥ ե졼
	design.txt	JSPͥ ߷ץ

7.2 ȯĶ

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

    ۥȴĶѤΥġ
        ɸ൬ʤ˽򤷤Cѥ顤C饤֥
        C++ѥ顤C++饤֥ꡤSTL
		ưǧ: GNU C++ 2.95.33.23.3LinuxĶ
			  GNU C++ 3.2CygwinĶ
			  Visual C++ 6.0.NET
        perlưǧ 5.6.1
        GNU Makeưǧ 3.79.1

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

GNUȯĶ򥤥󥹥ȡˡˤĤƤϡGNUȯĶۥޥ˥奢
ѰդƤΤǡ򻲾ȤȤ褤ޤưǧСˤ
ƤϡåΥޥ˥奢򻲾Ȥ뤳ȡ

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

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

ʲǤϡΥġ뤬ѰդǤƤ뤳ȤˡUNIXޥư
ǧ Linux˾ǹۼ롥ޤʲǤϡmakeޥ
 GNU Make ǤΤȤJSPͥ Makefile ϡGNU Make γ
ĥǽѤƤˡ

7.3 ե졼ġι

ͥۤˡޤե졼ġ򥳥ѥ
ɬפʥե졼ġХʥꤷ
ϡΥƥåפɬפʤˡ

JSPͥΥե졼ġϡե졼cfg
ˤȥѥ᡼åץchkץˤ鹽
롥ե졼ġλȤˤĤƤϡ7.9 ե
졼ġλȤפ򻲾Ȥ뤳ȡ

ե졼ġcfgץchkץˤϡcfgǥ
쥯ȥ˰ưmake dependǰ¸طեMakefile.dependˤ
塤makeޥɤˤ롥

    % cd cfg
    % make depend
    % make

7.4 ץץι

ˡץץۤˡ롥

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

    % mkdir OBJ
    % cd OBJ
    % perl ../configure -C m68k -S dve68k

ǡm68kϥåȥץå̾dve68kϥåȥƥ̾Ǥ
롥Υե졼󥹥ץȤΥץˤĤƤϡ
롥

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

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

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

    % make depend
    % make

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

7.5 ץꥱȥ̡ͥ˹ۤˡ

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

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

    % mkdir KERNEL
    % cd KERNEL
    % perl ../configure -C m68k -S dve68k

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

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

    % make depend
    % make libkernel.a

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

   % cd ..
   % mkdir APL
   % cd APL
   % perl ../configure -C m68k -S dve68k -L ../KERNEL

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

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

    % make depend
    % make

μǤϡץꥱۻˤϥͥκƹۤɬפ
ʤᡤͥΥɤˤϡͥ
ǥ쥯ȥmake libkernel.aƼ¹Ԥɬפ롥ޤץ
ۻ˥ͥ饤֥꤬줿åʤᡤ
ץꥱۤǥ쥯ȥǡɥ⥸塼
makeƼ¹Ԥɬפ롥

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

    % mkdir OBJ
    % cd OBJ
    % perl ../configure -C m68k -S dve68k -L .
    % make depend
    % make libkernel.a
    % make cleankernel
    % make

ǡmake cleankernelϡͥ饤֥뤿֥ե
ΤǤ롥μǤϡmake dependˤꥫͥ饤
֥˴ؤ¸طʤᡤͥΥɤ
ˤϡɬmake cleankernelʤޤϡmake cleanˤƤ顤make
libkernel.aɬפΤդ뤳ȡˡɥ⥸塼
makeƼ¹ԤɬפΤϡξƱͤǤ롥

7.6 ե졼󥹥ץȤλȤ

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

ե졼󥹥ץȤФ륪ץϼ̤ꡥ

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

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

    -T <ȯĶ̾>
	ȯĶ̾configβΥǥ쥯ȥ̾ΤθȾ̾Τǻꤹ
	롥GNUȯĶѤˤϡꤹɬפʤ

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

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

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

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

ե졼󥹥ץȤԤϼ̤Ǥ롥

(1) Makefile

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

(2) ץץ

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

7.7 Makefileν

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

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

(A) å̾

CPUϥåȥץå̾SYSϥåȥƥ̾TOOLϳȯĶ
̾롥ϡե졼󥹥ץȤԤ

(B) ֥ȥեγĥҤ

CygwinĶǥѥ뤹ˤϡOBJEXT"exe"ɬפ롥
ϡCygwinĶǤϡ֥ȥץ˳ĥ"exe"ղä
Τб뤿ΤΤǤ롥CygwinĶǤ뤳ȤȽǤС
ե졼󥹥ץȤԤ

(C) ¹ԴĶʥåȰ¸

åȤˤäƤϡ¹ԴĶбƥåȰ¸Υɤ򺹤
礬롥ǽˤ뤿ˡ¹ԴĶ̾ΤDBGENV
Ƥ롥ɸǤϡGDB֤Ѥ뤳ȤꤷơGNU_STUB
Ƥ뤬åȰ¸줿Makefile.configǾ񤭤
⤢롥ɤΥåȤɤμ¹ԴĶбƤ뤫ϡ
Υޥ˥奢򻲾Ȥ뤳ȡ

(D) ͥ饤֥Υǥ쥯ȥ̾

KERNEL_LIBˤϡͥ饤֥֤줿ǥ쥯ȥ̾롥
ϡ̾ϥե졼󥹥ץȤԤ
KERNEL_LIBѹƤ⤫ޤʤ

(E) ̥ѥ륪ץ

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

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

(F) ץꥱץ˴ؤ

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

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

(G) ֥ȥե̾

֥ȥե̾OBJNAME롥ǥեȤjspǤ롥

(H) åȥե

ɥ⥸塼ηꤹ롥ŪˤϡELFλ$(OBJFILE) 
ޤ$(OBJNAME).outPARTNER-JĶλˡХʥλ
$(OBJNAME).binȥ Sλ$(OBJNAME).srecꤹ롥
$(OBJFILE) ϡCygwinĶOBJEXT"exe"ˤ$(OBJNAME).exe
Ǥʤˤ$(OBJNAME)Ȥʤ롥

(I) ͥΥե졼ե

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

7.8 ѥ륪ץ

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

ޤƥǽ곰OMIT_SYSLOGѰդƤ롥ܤ
ϡ4.8 ƥǽˡפ򻲾Ȥ뤳ȡ

7.9 ե졼ġλȤ

ʲǤϡcfgץchkץΥץˤĤ롥
Υץˤ륳ե졼ˤĤƤϡ2.10 
ŪAPIȥե졼פ򻲾Ȥ뤳ȡ

cfgץchkץ˶̤Υץϼ̤ꡥ

    -cpu <ץå̾>
	åȥץå̾ꤹ롥

    -system <ƥ̾>
	åȥƥ̾ꤹ롥

    -h, --help
	إץåɽ롥

    -v
	̤ɽ롥

    -le, --english
	åѸɽʥǥեȡˡ

    -lj, --japanese
	åܸɽ롥

cfgץФ륪ץϼ̤ꡥ

    -s, --source <ե̾>
	<ե̾>ǻꤵ줿ƥॳե졼ե
	CΥץץåǽΡˤɤ߹ࡥ<ե̾>
	άϡƥॳե졼եɸ
	Ϥɤ߹ʥץ󼫿ȤάƤϤʤʤˡ

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

    -obj, --dump-object <ե̾>
	ŪAPIβƤޤ४֥ե<ե̾>
	ǻꤵ줿ե롥<ե̾>άϡ
	kernel_obj.dat롥

    -z, --nonzero
	_ZEROޥ޻ߤ롥

chkץФ륪ץϼ̤ꡥ

    -m, --module <⥸塼뵭>
	åɥ⥸塼ꤹ롥ɸchkץϡ
	ɥ⥸塼ΥܥեGNU BINUTILSnmϤ
	ˤȥȥS쥳ɥեɤ߹ǥѥ᡼
	Ԥʤξ硤<⥸塼뵭>ˤϡܥե
	S쥳ɥե2Ĥ","Ƕڤäƻꤹ롥

    -cs, --script <ե̾>
	<ե̾>ǻꤵ줿åեѤƥå롥
	åեȤϡcfgץबkernel_chk.c
	ѥ餪 utils/gencheck ˤùեΤȤ
	롥Υץά硤ĤΥåԤ
	ʤʤ롥ץꤷˤϡ<ե̾>ϾάǤ
	ʤ

    -obj, --load-object <ե̾>
	ŪAPIβƤޤ४֥ե<ե̾>
	ǻꤵ줿ե뤫ɤ߹ࡥ<ե̾>άϡ
	kernel_obj.datɤ߹ࡥ

    -cl <顼٥>
	顼Х٥ѹ롥٥LAZYʽʥ顼Τ߸
	СˡSTANDARDITRONͤϰϤΤߤǸСˡTOPPERSJSP
	ͥ°ȿޤǸСˡRESTRICTEDʤ٤ƤΥ顼򸡽Сˤ
	4Τ򤹤ʥǥեȤRESTRICTEDˡ

7.10 󥫥ץȤȥΰ

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.11 ¾ΥåȤؤΥݡƥ

JSPͥ¾ΥåȤإݡƥ󥰤뤿ɬפʺȤϡ
ͥ뼫ȤΥݡƥ󥰡ƥॵӥΥݡƥ󥰡ȯĶι
ɸγȯĶȤκۤεۼʤɤʤ롥ܤϡJSPͥ 
åȰ¸ ݡƥ󥰥ɡסconfig.txtˤ򻲾Ȥ뤳ȡ

7.12 ̻ͥҤΥ͡

ITRON4.0ͤϡ̻ͥҤ_kernel_ޤ_KERNEL_ǻϤ
Ȥ׵ᤷƤ롥ȤͥΥľܤΤ褦
̻ҤѤȡ̻ҤĹĹʤꡤ»ʤJSP
ͥǤϡxxxxxȤ̻ͥҤ_kernel_xxxxx˥͡ह
ȤߤƤ롥

ȤλȤߤˤꡤǥХåȤΨˤʤ륱ͤ
롥Ūˤϡμ̻Ҥ֥ȥμ̻Ҥ
פʤˡѿꤷƤͤɤꡤؿ
ꤷƤ˥֥졼ݥȤ֤ȤäȤǤʤ

褹뤿ˡJSPͥǤϡɬפʼ
Ҥ͡ह뤿Υ桼ƥƥutils/renameˤѰդƤ롥
rename桼ƥƥˡ͡եxxx_rename.defˤΥץ
եåxxxʬˤȡ͡षեꥹȤͿȡ
͡Ԥʤ㤨Сkernelǥ쥯ȥΤ٤ƤΥեФ
ơͥ̾͡हˤϡΥޥɤѤФ褤

    % cd kernel
    % ../utils/rename jsp *


¾

8.1 ֥

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

	http://www.toppers.jp/

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

8.2 Ѿ

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

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

	report@toppers.jp

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

8.3 ݾڡݡȡŬ

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

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

8.4 ᡼󥰥ꥹ

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


᡼󥰥ꥹȤؤΥ᡼ϼ̤ꡥ

	users@toppers.jp

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

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

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

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

	subscribe ʤ̾
	: subscribe Hiroaki Takada

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

8.5 ITRON Club

Żٶ̣鷺 ITRONͤ ITRONץȤ˶̣
ͤΤξ򴹡ξȤơITRON Club ᡼󥰥ꥹȤѰ
Ƥ롥Υ᡼󥰥ꥹȤˤϡITRON ˶̣äƤͤʤï
⻲äǤ롥ޤΥ᡼󥰥ꥹȤդ줿᡼ϡïǤ⼫
ͳ˥֥ȤɤळȤǤ롥

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

	subscribe ʤ̾
	: subscribe Hiroaki Takada

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

8.6 TOPPERSץȤؤλ

TOPPERSץȤǤϡեȥȯ˻á׸Ƥ
Ƥ롥Ūʹ׸Ūʹ׸Ȥ˴ޤ롥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();
	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();
	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();
	ER ercd = ena_tex();
     BOOL state = sns_tex();

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

	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();
	ER ercd = iloc_cpu();
	ER ercd = unl_cpu();
	ER ercd = iunl_cpu();
	ER ercd = dis_dsp();
	ER ercd = ena_dsp();
     BOOL state = sns_ctx();
     BOOL state = sns_loc();
     BOOL state = sns_dsp();
     BOOL state = sns_dpn();
     BOOL state = vsns_ini();

(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 });
    VATT_TER({ ATR teratr, VP_INT exinf, FP terrtn });

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ɲäʤ
    2002ǯ415	Release 1.3		M32RMicroBlazeTMS320C54x
						i386H8Sɲäʤ
    2003ǯxxx	Release 1.4		

ʾ
