
             TOPPERS/JSPͥ 桼ޥ˥奢 

            Release 1.4.3бǽ: 23-Apr-2007

 Υ桼ޥ˥奢ϡ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
 Copyright (C) 2004-2007 by Embedded and Real-Time Systems Laboratory
             Graduate School of Information Science, Nagoya Univ., 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.90 2007/05/28 02:06:45 honda 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ͥϡǡʲΥåȥץååȥ
򥵥ݡȤƤ롥

    ǥ쥯ȥ̾          ȯĶ
        ץåʷ֡      ƥʥ᡼̾

    m68k                    GNUȯĶ
        M68040MC68LC040     DVE-68K/40Ż

    sh1                     GNUȯĶ
        SH1SH7032           KZ-SH1-01ʵԥޥԥ塼
                                 RISCɾåSH-1CQǡˤǤư
        SH1SH7034           ITRONSH1CPUܡɡ()
        

    sh2                     GNUȯĶ
        SH2(SH7145)             AP_SH2F_6Aʥեץȡ
        SH2(SH7615)             HSB7615IT Żҡ

    sh3                     GNUȯĶ
        SH3SH7709A          MS7709ASE01 ΩĶLSIƥॺ
        SH3SH7729R          MS7729RSE01 ΩĶLSIƥॺ
        SH3SH7727           MS7727CP01  ΩĶLSIƥॺ
        SH4SH7750           MS7750SE01  ΩĶLSIƥॺ

    sh3-ghs                 GHSȯĶ
        SH3SH7709A          MS7709ASE01 ΩĶLSIƥॺ
        SH3SH7727           MS7727CP01  ΩĶLSIƥॺ

    h8                      GNUȯĶ
        H8H8/3052F          AKI-H8/3052FʽŻ̾
        H8H8/3069F          AKI-H8/3069FʽŻ̾

    h8-renesas              RenesasҤγȯĶ
        H8(HSB8F3048BF25)       H8/3048F-ONEå(()Ż)

    h8s-renesas              RenesasҤγȯĶ
        H8S(H8S/2339F)          MiNET-H8S/2339Fʳҥߥ

    armv4                   GNUȯĶ
        ARM9ARM922T         Integrator/AP+CM922TARM
        ARM9ARM926EJ-S      AZ9360MBYDK

    armv4-ghs               GHSȯĶ
        ARM9 ARM920T        Integrator/AP+CM920TARM
        ARM9EARM966E-S      Integrator/AP+CM966E-SARM

    m32r                    GNUȯĶ
        M32RM32102S6FP      M3A-2131G50ʻɩŵ
        M32RM32102S6FP      M3A-ZA36   ʻɩŵ

    m32c-renesas            RenesasҤγȯĶ
        M32C                    OAKS32ʥŻҡ

    microblaze              GNUȯĶ
        MicroBlaze              MIREFYDK
        MicroBlaze              MIRE_MULTI3000YDK
        MicroBlaze              MultiMedia BoardXilinx
        MicroBlaze              Suzaku(åȥޡƥ)

    tms320c54x              TIҤγȯĶ
        TMS320C54xTSM320C5402TMS320VC5402 DSKTI

    xstormy16               GNUȯĶ
        Xstormy16               Υޥȯġʻŵ

    m16c-renesas            RenesasҤγȯĶ
        M16CM30620FCAFP-CPU OASKS16ʥŻҡ
        M16CM30262F8FG-CPU  OAKS16-MINIʥŻҡ

    s1c33                   GNUȯĶ
        SC33                    DMT33209EPSON
        SC33                    LUXUN2EPSON

    s1c33-gnu33             GNU33ȯĶ
        SC33                    DMT33209EPSON
        SC33                    LUXUN2EPSON

    nios2                   GNUȯĶ
        Nios2                   NiosII Development Boardʥƥ

    v850                    GNUȯĶ
        V850                    TK-850/KJ1+ (Application Corp.)
        V850                    TK-850/SG2  (Application Corp.)

    tlcs900                 ǥߥγȯĶ
        TMP91CY22-CPU           Zup-F16ĥܡ(ޥǥ󹩶ȳ)

ޤʲΥåȤϡΥС(1.4.1)Υɤ饢åץ
ȤƤ餺ưǧԤäƤʤᡤ1.4.2ʹߤǤϡͼ
Ȥ롥

    h8                      GNUȯĶ
        H8H8/3048F          AKI-H8/3048FʽŻ̾
        H8 (H8/3069F)           NKEV-010H8   (̿ӥ)

    h8s                     GNUȯĶ
        H8S2350             H8S/2350 ɾܡ(ߥ)

    powerpc32               GNUȯĶ
        PowerPC32MPC860T    TB6102SʥХå

    mips3                   GNUȯĶ
        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˥ܥå󥯤Žˡ侩롥

ʤjsp_kernel.hϡͥץΥեǥ
󥯥롼ɤ٤ɸ।󥯥롼ɥեǤꡤͥư
ץΥե뤫̾ϥ󥯥롼ɤʤ

2.12 ƥཪλȽλ롼

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


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

2.13 ¾

JSPͥǤϡt_stddef.h ǡΥޥƤ롥

(1) assert(exp)

JSPͥǤϡassertޥȼƤ롥ȯĶɸ
assertޥϻȤʤ

(2) throw()

CEC++Ǥϡthrow() ˤʤ褦Ƥ롥C++줫
ƤӽФǽΤCǵҤ줿ؿΥץȥˡthrow() 
Ĥ뤳ȤꤷƤ롥

ޤt_services.h ǡΥޥƤ롥

(3) syscall(s)

ӥ s ƤӽФͤ顼ǤС顼å
Ϥ롥

(4) _syscall(s)

ӥ s ƤӽФͤ顼ǤС顼å
Ϥͥ۾ｪλ롥


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_EMERG٥ˡΤޤ޼¹Ԥ³뤬ư
ݾڤʤ

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 ꤵ줿εǽʼ
ϥɥ򥢥֥ǵҤˤ⥵ݡȤƤʤ

cycatr  TA_STA ꤷcycphs  0 ꤷ硤ϥɥ
εưϡƥ൯ưκǽΥƥåǹԤ롥ʤ
cycphs  1 ꤷƱ񤤤Ȥʤ롥θȤʤ뤿ᡤ
cycphs  0 ꤹ뤳ȤϿ侩ʤ

(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 ֤

ΥӥϡƥȤΤ߸ƤӽФȤǤ롥
󥿥ƥȤƤӽФˤϡE_CTX顼Ȥʤ롥

ƥȤǤСCPUå֤ǤäƤƤӽФ뤬CPU
֤Ĺַ³ȡ޳ߤʤ˥ƥ郎
줺Υӥǽɾѥƥ֤ʤ
롥¬֤ûƤϡ¬ΤCPUå
ȤΤŬڤǤϤʤ


ƥǽ

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

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    signed intȤߤʤ10ʿɽ
    %u    unsigned intȤߤʤ10ʿɽ
    %x    unsigned intȤߤʤ16ʿʱʸϾʸˤɽ
    %X    unsigned intȤߤʤ16ʿʱʸʸˤɽ
    %p    ݥ󥿤Ȥߤʤ16ʿʱʸϾʸˤɽ
    %c    ʸɤȤߤʤʸɽ
    %s    ʸ򼨤ݥ󥿤Ȥߤʤʸɽ
    %%    '%' ɽʰϼʤ

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

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

    %ld   signed longȤߤʤ10ʿɽ
    %lu   unsigned longȤߤʤ10ʿɽ
    %lx   unsigned longȤߤʤ16ʿʱʸϾʸˤɽ
    %lX   unsigned longȤߤʤ16ʿʱʸʸˤɽ

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(const 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򥤥󥯥롼ɤ뤳ȤǡƥȤ߹ळȤǤ롥

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򥤥󥯥롼ɤ뤳ȤǡƥȤ߹ळȤ
Ǥ롥

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

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

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

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

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

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

(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 ƥ¸ե
        sh1/            SH1 ץå¸ե
            kz_sh1/             KZ-SH1-01 ƥ¸ե
            zunda_sh1/          ZUNDA/SH1 ƥ¸ե
        sh2/            SH2 ץå¸ե 
            apsh2f6a/           APSH2F6A ƥ¸ե
            hsb7616it/          HSB7616IT ƥ¸ե
        sh3/            SH3 ץå¸ե
            ms7727cp01/         MS7727CP01 ƥ¸ե
            solution_engine/    Solution Engine ƥ¸ե
        sh3-ghs/        SH3 ץå¸եGHSȯĶ
            ms7727cp01/         MS7727CP01 ƥ¸ե
            solution_engine/    Solution Engine ƥ¸ե
        h8/             H8 ץå¸ե
            akih8_3048f/        AKI-H8/3048F ƥ¸ե
            akih8_3052f/        AKI-H8/3052F ƥ¸ե
            akih8_3069f/        AKI-H8/3069F ƥ¸ե
            nkev_010h8/         NKEV-010H8 ƥ¸ե
        h8-renesas/     H8 ץå¸ե(RenesasȯĶ)
            hsb8f3048bf25/      H8_3048F ƥ¸ե
        h8s/            H8S ץå¸ե
            h8s2350/            H8S_2350 ƥ¸ե
            h8s2351/            H8S_2351 ƥ¸ե
        armv4/          ARMV4 ץå¸ե
            integrator/         Integrator ƥ¸ե
            az9360mb/           AZ9360MB ƥ¸ե
        armv4-ghs/      ARMV4 ץå¸եGHSȯĶ
            integrator/         Integrator ƥ¸ե
        microblaze/     MicroBlaze ץå¸ե
            miref/              MIREF ƥ¸ե
            mire_multi/         MIRE_MULTI3000 ƥ¸ե
            mutlimedia/         MultiMedia Board ƥ¸ե
            suzaku/             Suzaku ƥ¸ե
        tms320c54x/     TMS320C54x ץå¸ե
            c5402dsk/           TMS320VC5402 DSK ƥ¸ե
        xstormy16/      Xstormy16 ץå¸ե
           simulator/           ΥޥȯġĶ ¸ե
        mips3/          MIPS3 ץå¸ե
            vr4131/             VR4131 ƥ¸ե
            vr5500/             VR5500 ƥ¸ե
        m16c-renesas/   M16C ץå¸ե(RenesasȯĶ)
            oaks16/             OAKS16 ƥ¸ե
            oaks16_mini/        OAKS16_MINI ƥ¸ե
        m32c-renesas/   M32C ץå¸ե(RenesasȯĶ)
            oaks32/             OAKS32 ƥ¸ե
        m32r/           M32R ץå¸ե
            m3a2131g50/         M3A-2131G50 ƥ¸ե
            m3a_za36/           M3A-ZA36 ƥ¸ե
        s1c33/          S1C33 ץå¸ե
            dmt33209/           DMT33209 ƥ¸ե
            dmt33401/           DMT33401 ƥ¸ե
            luxun2/             LUXUN2 ƥ¸ե
            luxun4/             LUXUN4 ƥ¸ե
        s1c33-gnu33/    S1C33 ץå¸ե(GNU33ȯĶ)
            dmt33209/           DMT33209 ƥ¸ե
            dmt33401/           DMT33401 ƥ¸ե
            luxun2/             LUXUN2 ƥ¸ե
            luxun4/             LUXUN4 ƥ¸ե
        powerpc32/      POWERPC32 ץå¸ե
            ibm_ppc_emb_sample/ The IBM PowerPC Embedded Environment ƥ¸ե
            mpc860t/            MPC860T ƥ¸ե
        nios2/          NIOS2 ץå¸ե
            altera_dev_board/   ALTERA_DEV ƥ¸ե
        v850/           V850 ץå¸ե
            tk850_kj1/          TK-850ES ƥ¸ե        
            tk850_sg2/          TK-850SG2 ƥ¸ե        
        tlcs900-toshiba/ TLCS900 ץå¸ե
            zup_f16_ex/         Zup-F16ĥܡ ƥ¸ե
        linux/          LinuxΥߥ졼Ķ¸ե
        windows/        WindowsΥߥ졼Ķ¸ե
    tools/      ȯĶ¸ǥ쥯ȥ
        WINDOWS/        WindowsΥץץȥץȥե
        GHS/            GHSGreen Hills Software˳ȯĶѤΥե
        C5402DSK/       TMS320VC5402 DSKѤΥץȥե
        H8-RENESAS/     H8-RENESASѤΥץȥǥ쥯ȥ
        M16C-RENESAS/   M16C-RENESASѤΥץȥǥ쥯ȥ
        M32C-RENESAS/   M32C-RENESASѤΥץȥǥ쥯ȥ
    pdic/       PDICʥǥХɥ饤ФOS¸ʬ
        simple_sio/     ʰSIOɥ饤Сʥꥢɥ饤ФѤΡ
    cfg/        ͥ륳ե졼
    utils/      桼ƥƥ
        h8/             H8ѥ٥ơ֥桼ƥƥ
        h8-renesas/     H8-RENESASѥ٥ơ֥桼ƥƥ
        m16c-renesas/   M16C-RENESASѥ٥ơ֥桼ƥƥ 
    sample/     ץץ Makefile
    doc/        ɥ
    windev/     WindowsǥХޥ͡

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

    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 ꥢɥ饤Ф국
        cxxrt.c          C++б󥿥
        cxxrt.cfg        C++б󥿥ѥ֥
        newlibrt.c       NEWLIBб󥿥

    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.mware  ץ Makefileʥߥɥ륦ȤȤ߹碌ѡ
        sample1.cfg     ץץ(1)국
        sample1.h       ץץ(1)˴ؤ
        sample1.c       ץץ(1)
        cxx_sample1.cfg C++ѥץץ(1)국
        cxx_sample1.h   C++ѥץץ(1)˴ؤ
        cxx_sample1.c   C++ѥץץ(1)
        cxx_sample2.cfg C++ѥץץ(1)국
        cxx_sample2.h   C++ѥץץ(1)˴ؤ
        cxx_sample2.c   C++ѥץץ(1)

    doc/
        user.txt        TOPPERS/JSPͥ 桼ޥ˥奢
        gnu_install.txt GNUȯĶۥޥ˥奢
        m68k.txt        M68040 åȰ¸ޥ˥奢
        sh1.txt         SH1 åȰ¸ޥ˥奢
        sh2.txt         SH2 åȰ¸ޥ˥奢
        sh3.txt         SH3 åȰ¸ޥ˥奢
        h8.txt          H8 åȰ¸ޥ˥奢
        h8-renesas.txt  H8-RENESAS åȰ¸ޥ˥奢
        h8s.txt         H8S åȰ¸ޥ˥奢
        armv4.txt       ARMV4 åȰ¸ޥ˥奢
        microblaze.txt  MicroBlaze åȰ¸ޥ˥奢
        tsm320c54x.txt  TMS320C54x åȰ¸ޥ˥奢
        xstormy16.txt   Xstormy16 åȰ¸ޥ˥奢
        mips3.txt       MIPS3 åȰ¸ޥ˥奢
        m16c.txt        M16C åȰ¸ޥ˥奢
        m32c.txt        M32C åȰ¸ޥ˥奢
        m32r.txt        M32R åȰ¸ޥ˥奢
        nios2.txt       Nios2 åȰ¸ޥ˥奢
        powerpc32.txt   POWERPC32 åȰ¸ޥ˥奢
        s1c33.txt       S1C33 åȰ¸ޥ˥奢
        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
                ưǧ: 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_libȤ̾Τ
ǥ쥯ȥˤˤϡΥޥɤ¹Ԥʥǥ쥯ȥξ
̾ΤǤդ˷Ƥ褤ˡ

    % mkdir kernel_lib
    % cd kernel_lib
    % 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_lib

-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
        __EMTPY_LABELޥλѤ޻ߤ롥

    -ao=xxx
        IDγսꤹ롥xxx˻ǤƤϼ̤ꡥ

        alphabetic          ̾ΤξA˶ᤤΤۤɾ͡
        fcfs                ξ (Τۤɾ)
        alphabetic,reverse  ̾Τι߽
        fcfs,reverse        ι߽

    -id=<ե̾>
        ưIDդ̥إåեkernel_id.hˤ̾Τѹ롥

    -cfg=<ե̾>
        ͥ빽ե(kernel_cfg.c)̾Τѹ롥

    -oproto
        ϥɥ䥿ΤʤɤδؿΥץȥ򥫡ͥ빽
        եkernel_cfg.cˤ˽Ϥ롥

    -il
        ͥϢΥإå򥤥󥯥롼ɤݤˡ"ե̾" ǤϤʤ
        <ե̾> Ѥ롥

    -1.3
        TOPPERS/JSPͥ Release 1.3ߴη롥
        : -1.3ե1.4ʹߤǤϻѤǤʤ

    -iapi
        ͥ륳ե졼ǤʤŪAPI̵뤹롥

    -t
        ͥ륳ե졼ǤʤŪAPIɸϤ˽
        롥

    -ext
        ɸ೰γĥǽλѤĤ롥

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ͥѤʤ̾Τȱʬʲ
̾ȶȼξ򡤰ʲURLΥڡ𤹤ΤȤ롥

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

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

8.3 ݾڡݡȡŬ

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

8.4 ᡼󥰥ꥹ

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


᡼󥰥ꥹȤؤΥ᡼ϼ̤ꡥ

        users@toppers.jp

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

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

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

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

        subscribe ʤ̾
        : subscribe Hiroaki Takada

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

8.5 TOPPERSץȤؤλ

TOPPERSץȤǤϡηǥץȤ˹׸줿
Ȥǳȯեȥ򤪻ȤץȤ˶̣򤪻
λäƤ롥TOPPERSץȤؤλˡˤĤƤϡ
TOPPERSץȤΥ֥Ȥ򻲾Ȥ뤳ȡ

8.6 ߥɥ륦Ѥ Makefile

ץǥ쥯ȥˤ Makefilew.mware JSPͥ˥ߥɥ륦
Ȥ߹碌ƥѥ뤹뤿 Makefile Ǥ롥 Makefile 
󥯥롼ɤߥɥ륦Ѥ Makefile Ǥϡʲѿ뤳
ȡ

(1) MTASK_CFG
ߥɥ륦Υե졼եʥˤɲä롥

(2) MTASK_KERNEL_CFG
ߥɥ륦Υե졼Ϥ졤JSPͥ Υƥॳ
ե졼ե˥󥯥롼ɤեɲä롥

(3) MTASK_DIR
ߥɥ륦Υǥ쥯ȥɲä롥

(4) MTASK_LCSRCS
ߥɥ륦饤֥경륽եɲä롥

(5) MTASK_ASMOBJS
ߥɥ륦Υ֥Υ֥ȥեɲä롥

(6) MTASK_CXXOBJS
ߥɥ륦 C++ Υ֥ȥեɲä롥

(7) MTASK_COBJS
ߥɥ륦 C Υ֥ȥեɲä롥

(8) MTASK_CFLAGS
ߥɥ륦򥳥ѥ뤹ȤΥץꤹ롥

(9) MTASK_LIBS
ߥɥ륦Υ饤֥ɲä롥

(10) MAKE_MTASK
饤֥경ߥɥ륦ꤹ롥

ե

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(const 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ǯ1225      Release 1.4             ¿β
    2004ǯ1014      Release 1.4 (PL=1)      SH2M16CSC33PowerPC32
                                                Nios2ɲäʤ
    2005ǯ1128      Release 1.4 (PL=2)      M32C-Renesas, H8-Renesas,
                                                H8S-Renesas, V850
    2007ǯ61        Release 1.4 (PL=3)      νTLCS900ɲäʤ

ʾ
