
	     TOPPERS/JSPͥ 桼ޥ˥奢 
    Windows ߥ졼Ķݥåбǥ

	    Release 1.0бǽ: 14-Nov-2000

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

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

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

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

 @(#) $Id: windows.txt,v 1.1 2000/11/14 16:29:39 takayuki Exp $
------------------------------------------------------------------------


ΥɥȤǤϡTOPPERS/JSP Windowsߥ졼Ķʬˤ
Ʋ⤷ޤ

 Windowsߥ졼Ķ åȰ¸γ

1.1 åȥƥȳȯĶ

Windowsߥ졼Ķμ¹ԴĶȤƤϡΤΤꤷƤ롥

    Microsoft Windows 95/98/NT4/2000
        #εǽMicrosoft Windows NT4/2000Τߤб

ޤȯĶȤƼΤΤꤷƤ롥
	Microsoft Visual C++ 6.0
	cygwin 1.1.0 + gcc 2.95.2 (ܤϳ䰦)

­

TOPPERS/JSP Windowsߥ졼ĶγȯϼδĶǹԤƤ롥

    Microsoft Windows 2000 Professional
        + Microsoft Windows 2000 ServicePack1
    Microsoft Visual Studio 6.0 Enterprise
        + Microsoft Visual Studio 6.0 ServicePack4
        + Microsoft Visual C++ Processor Pack


1.2 ݡȤ뵡ǽγ
Windowsߥ졼Ķ˰¸ǽȤơߥޥѹ(ch
g_ixx, get_ixx)ȳߤζػߡ(dis_int, ena_int)򥵥ݡȤƤ롥
ޤǽɾѥƥﻲȵǽ(vxget_tim)򥵥ݡȤƤ롥


1.3 TOPPERS/JSP Windowsߥ졼Ķ»

    ʬǽ100ms
        Windowsߥ졼ĶǤϥޥƥå100msȤʤäƤ롥
        ñ̤msΤޤޤǤꡤ50msdly_tskȯԤ 100msø
        Ԥ뤳Ȥˤʤ롥

    å󥿥ƥѥåϼư
        ƥƥȤɬפʥåWindows뤿ᡤե
        졼ɸ륹åѤʤޤåΰ褬
        ­硤WindowsưŪΰƳƤ롥


Windowsߥ졼Ķ˰¸ǽ

Ǥϡͥ뤪ӥƥॵӥεǽǡWindowsߥ졼Ķ¸ʬˤĤƲ⤹롥

2.1 ǡ
int  unsigned intΥ32ӥåȤǤ롥

2.2 ߴǽȳߥϥɥ

Windowsߥ졼ĶǤm68kγߤ򥨥ߥ졼󤷤Ƥ롥
NMI򥵥ݡȤʤᡤƤγߤϥͥδȯ롥
CPUå֤롼Ǥϳߥޥ7ꤵ졤Ƥγ
ػߤ롥

ǥեȤγװ7ĤǤꡤ7ͥ٤Ȥ롥װο
cpu_defs.h:15INT_NUMINTERRUPTS뤳ȤǤդ䤹ȤǽǤ
 (װֹ1˸ꤵƤ)̾勵޳ߤװֹ4
 Ѥ롥ʳγߤϥ桼δؿѤǤդȯ뤳
 ȤǤ롥

	׵ȯ
		void HALInterruptRequest(unsigned int intno)
		װֹintno˳׵ȯ

DEF_INHǻꤹߥϥɥֹ(inhno)ϡ68000Ǥ㳰٥ֹɽΥǡ(INHNO)unsigned intƤ롥
DEF_INH̵㳰٥ֹꤷưݾڤʤ

Windowsߥ졼Ķ¸εǽȤơߥޥͤѹ뤿Υӥ chg_imsȡȤ뤿Υӥ get_ims 򥵥ݡȤƤ롥ʤߥޥͤɽǡunsigned intǤ롥

TOPPERS/JSP WindowsǤm68kγߤ򥨥ߥ졼ȤƤꡤ17ޤǤ7װ(7ǹ)ޤѲǽǤ


TOPPERS/JSP WindowsǤϼδؿ򥵥ݡȤƤ롥

BOOL def_int( unsigned int ims, void * rtn);    /* ϥɥ */

ER  ena_int(unsigned int ims);          /*  */
ER  dis_int(unsigned int ims);          /* ػ */
ER  chg_ims(unsigned int ims);          /* ߥ٥ */
ER  get_ims(unsigned int *p_ims);       /* ߥ٥μ */

def_int : ߥϥɥ
    ߥϥɥrtnװֹimsбŤ

ena_int : ߵ
    ׵Ĥޤ̵뤵졤ĤȤʤ

dis_int : ߶ػ
    ׵ػߤޤ̵뤵졤ػߤȤʤ

chg_ims : ߥ٥
    ׵ޥ٥ꤷͤ
    ʹߥޥ٥ʲγ׵϶ػߤȤʤ

get_ims : ߥ٥μ
    ׵ޥ٥Ǽ줿˳Ǽ


2.3 CPU㳰ǽCPU㳰ϥɥ

Windowsߥ졼ĶǤϼϤƤ뤬CPU㳰򥵥ݡ
ʤ

DEF_EXCǻꤹߥϥɥֹ(excno)Windows㳰װֹɽ
Υǡ(EXCNO)unsigned intƤ롥DEF_EXC ǡ㳰٥
ȤͭǤʤͤ䡤CPU㳰бʤֹꤷưݾڤ
ʤ

Windows㳰ȯ硤бդ줿CPU㳰ϥɥư塤¾
Windows㳰ϥɥؽϤǥХåʤɤưƤϥǥХå
ˤäƥϥɥ󥰤뤿ᡤƤξϥ顼ȤʤäƤξߤ
롥


Windowsߥ졼Ķ˸ͭʵǽ

3.1 ꥢ륨ߥ졼

TOPPERS/JSP WindowsǤϡ֥󥽡ס֥᡼ܥåס֥ѥספ3फ
򤷤Ѥ뤳ȤǤ롥֥󥽡פǤϥܡɤϤ
Υɥ˽Ϥ뤳ȤǤ롥֥᡼ܥåפǤWindowsΥ᡼
åǽѤꥢ륨ߥ졼󤬹Ԥ롥֥ѥספǤWindowsN
T̾ĤѥפѤꥢ륨ߥ졼󤬹Ԥ롥ǥХå
ξ˱ơ3Υꥢ륨ߥ졼ŬʤΤǽ
롥

        ᡼ܥå
             : \\.\mailslot\toppers\serial_in
             : \\.\mailslot\toppers\serial_out
        
        ̾դѥ
            \\.\pipe\toppersserial

3.2 ǥХå󥽡

TOPPERS/JSP Windowsߥ졼ĶǤϡǥХåʸϤ뤿
ѥ󥽡󶡤Ƥ롥ǥХå󥽡ǤϴñʵҤǥǥХåʸ
Ϥ뤳ȤǤ̾ΥꥢѤʤȤ̤ǥեΥǥ
åʤɤԤ롥
 #ItIs/WinܤƤͥɽ̥˥åȤȤʤä

ǥХå󥽡ͭˤˤDebug.h:6
 //#define DEBUG_ENABLE
ΥȤϤͭˤ뤳ȤѲǽȤʤ롥

TOPPERS/JSP Windowsߥ졼ĶǤϡΥǥХåѵǽ󶡤Ƥ
롥

OnDebug : ǥХåΤͭȤʤԤˤĤ
    ԤƬOnDebugĤ뤳ȤǡDEBUG_ENABLEˤΤͭȤʤԤñ
    뤳ȤǤ롥
    
    DEBUG_ENABLE   : #define OnDebug
    DEBUG_ENABLE : #define OnDebug //

    
        OnDebug wsprintf(buffer,"i = %d",i);

unsigned int DebugOut(LPCSTR text) : ǥХå󥽡ؤν
    DebugOutؿϥǥХå󥽡ʸϤ롥
    
    DEBUG_ENABLEˤϥȹԤˤʤ롥


3.3 ȥ쥤 (Notify Icon)

TOPPERS/JSP Windowsߥ졼ĶǤϡ̾ץϸʤ¸ߤ
ư롥ǤϥץνλǧʤʤʤäƤޤ
ȼΤWindowsߥ졼ĶǤϲ̱Υȥ쥤
˥ɽ졤ץब߼¹Ǥ뤫ɤǧǤ褦
ˤʤäƤ롥

ޤΥȥ쥤Υ򱦥å뤳Ȥǡץλ
ȤǽǤ롥

DEBUG_ENABLEˤTOPPERS/JSP Windowsߥ졼ΤȤʤ륦ɥ
Ūɽ褦ˤʤäƤ롥ξΤȤʤ륦ɥλ
Ȥǥץλ뤳ȤǤ롥

ȯĶι

4.1 ȯĶγ

ͥ¹ԤˤϡJSPͥۥåȤ˴ޤޤʳˡʲΥġ뤪ӥ饤֥꤬ɬפǤ롥

Microsoft Visual C ++ (6.0ˤƳǧ)
	ñΤˤưǽ

cygwin + gcc
	GNU Make (3.77ˤƳǧ)
	BINUTIL (ġ 2.10ˤƳǧ)
	GCC (Cѥ 2.95.2ˤƳǧ)
	NEWLIB (ɸC饤֥ 1.8.1ˤƳǧ)
	#ܺ٤ϳ䰦

ޤե졼롥
ե졼/cfg/VC_Project/ˤMicrosoft Visual C++ץ
ե򳫤Ȥˤꡤ򤻤Ȥ¨ӥɤǽʾ֤ˤʤ롥
ǤǤcfg.exeѥȤä ޤ ե졼ե
(ץξ/WINDOWS/)֤Ƥذư롥

TOPPERS/JSP Windowsߥ졼ĶιۤMicrosoft Visual C++Υץ
 ڡѤ롥/config/WINDOWS/VC_Projectˤץ
ȥե뤪ӥڡ򳫤Ȥǡۤɬפƽ
֤ǵư롥

 #ΥץȤǤϥץץब褦ˤʤäƤ

°ΥץץǤϤǤ꤬Ƥ뤬ץʳΥ
졼եѤ硤ե졼kernel_id.hker
nel_cfg.cɬפ롥

  (a) Visual C++ ˹Ԥ碌
      1.  оݤȤʤcfgե򤷡ƥȥ˥塼(å)
          򤹤롥
      2.  ̤־˥ӥɥƥåפѡפͭˤ
      3.  ӥɥ֤衤ޥ˼ΥޥɤǤ
            cd $(InputDir)
            cl /P /EP $(InputName).cfg
            cfg.exe < $(InputName).i
      4.  ˼ΥեǤ
            kernel_cfg.c
            kernel_id.h
  
  (b) ޥɥ饤󤫤ľǤľ
      1. ե졼եΤǥ쥯ȥ
         ΥޥɤϤ
           cl /E /EP <ե̾> | cfg.exe

kernel_id.hkernel_cfg.c줿顤ΥեץȤ
äVisual C++ӥɤԤХץब롥

°ΥץȥեǤϡ줾Ŭڤʥե˥ե뤬Ǽ
褦ˤʤäƤ롥桼ץSource FilesHeader Files˳Ǽ롥
ץʳΥץѤ硤2ĤΥե˳ǼƤ
ץȤƤ顤ץɲäɬפ롥


¾

5.1 ǥ쥯ȥꡦե빽

1.4 TOPPERS/JSP Windows-HAL ե

[jsp]
  +- [config]
  |   +- [WINDOWS]
  |       +- cpu_config.h : ץå¸⥸塼
  |       +- cpu_config.c : ץå¸⥸塼
  |       +- cpu_context.h : ƥ롼
  |       +- cpu_defs.h : m68käݤߥߥ졼
  |       +- cpu_defs.c : m68käݤߥߥ졼
  |       +- Debug.h : ǥХå󥽡ե
  |       +- Debug.c : ǥХå󥽡⥸塼
  |       +- hal_msg.h : ͥ륷ߥ졼 åե
  |       +- hal_resource.rc : TOPPERS/JSP Windows ꥽ե
  |       +- hw_timer.h : 
  |       +- serial_console.c : ꥢ(󥽡)
  |       +- serial_mailbox.c : ꥢ(᡼ܥå)
  |       +- serial_pipe.c : ꥢ(̾եѥ)
  |       +- start.c : ȥå
  |       +- sys_config.h : ƥ¸⥸塼
  |       +- sys_config.c : ƥ¸⥸塼
  |       +- sys_defs.h : ƥ¸ե
  |       +- vwindows.h : windows.hͲѥإåե
  |       +- icon1.ico : ե
  |       +- [VC_Project]
  |           +- Toppers.dsp : Visual C++ ץȥե
  |           +- Toppers.dsw : Visual C++ ڡ
  +- [WINDOWS]
      +- kernel_id.h : ưIDե
      +- kernel_cfg.c : ե졼ե
      +- sample1.h : ץץ إå
      +- sample1.c : ץץ


С

    2000ǯ1115	Release 1.0	ǽΥ꡼

ʾ
