
              TOPPERS/JSPͥ 桼ޥ˥奢 
                  Microblaze åȰ¸

             Release 1.4.2бǽ: 27-Jul-2005
            Embedded Development KitEDK7.1б

------------------------------------------------------------------------ 
 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: microblaze.txt,v 1.14 2005/07/27 11:28:44 honda Exp $
------------------------------------------------------------------------


Microblaze åȰ¸γ

1.1 åȥƥ

Microblaze ץåΥåȥƥȤƤϡMicroblaze ݡ
Ƥ FPGA ܤƥ򥵥ݡȤƤ롥ʤJSPͥư
ˤϡ64Kbyte٤Υ꤬ɬפǤ롥ƥ¸Ȥưʲ
Υܡɤ򥵥ݡȤƤ롥

YDKƥΥ MIREFFPGA:XCV400E-QFP240
YDKƥΥ MIREF-MULTIFPGA:XC2V3000-FF1152
 Xilinx Xilinx MultiMedia BoardFPGA:XC2V2000-FF896


1.2 ȯĶ

ȯĶˤϡEDK˴ޤޤƤGCC ʤɤ GNUȯĶѤ֥
ȥեեޥåȤ ELF ɸȤ롥

PCǤϡEDK򥤥ȡ뤹ȡGNUγȯĶư뤿 xygwin 
󥹥ȡ뤵롥JSPͥιۤˤϡperlg++(ۥȴĶ)ҤĤ
ʤᡤCygwin 򥤥󥹥ȡ뤹ɬפ롥ƱΥޥCygwin 
󥹥ȡ뤷塤xygwin 򥤥󥹥ȡ뤹 Cygwin Υץꥱ
ưʤᡤxygwin Υ󥹥ȡˡCygwin 򥤥󥹥ȡ
뤹뤳Ȥ侩롥

EDK˴ޤޤGNUγȯĶϡxygwinư뤳˺Ƥ뤿
ᡤCygwin make ƤӽФ票顼ɽʤȤä
롥ΤᡤXilinx  Web ȡ
http://www.xilinx.com/guest_resources/gnu/index.htmˤGNUΥ
ɤ Cygwin Ѥ˹ۤ롥


1.2 ƥ๽

̾ΥåȤξϡ./config ʲ

   ʥץå/ʥåȥܡ1
                 /ʥåȥܡ2

Ȥǥǥ쥯ȥ꤬Ƥꡤʥץåˤϥץå
ץåѥåIC˥ѥå줿Τ򼨤ץ
¸ȸƤ֡ʥåȥܡɡˤϤICܤܡɰ¸εǽ
ˤĤƤΥɤ֤ƤǥåȰ¸ȸƤ֡
Microblaze ϡƥ๽ͳѹǤ뤿ᡤΤ褦Τ
ʬϤǤʤǡJSPͥư뤿ɬ׺Ǿ¤ι
ץå¸Ȥơʥץåˤ֤ץå¸Ȥ
ΡJSPͥư뤿κǾʲ˼

 INTCʳߥȥ
   쥸 IVRSIECIE쥸ɬ
 TIMUARTLITE
   INTC³ʳߤͭˤ

ʳεǽΥɤϥåȰ¸Ȥơʥåȥܡɡ˰
Υǥ쥯ȥ֤롥

ۥѥå˴ޤޤƤ륿åȰ¸ʲ˼줾ΰ¸
Ͼ嵭ΥǥХΥɥ쥹䥳ѥ륪ץ󤬰ۤʤǥɤ
ۤ

  ./miref
   ʳYDKǥΥ MIREF ܡ

  ./miref_multi
   ʳYDKǥΥ MIREF-MULTI ܡ

  ./multimedia 
    Xilinx Xilinx MultiMedia Board 



1.4 ƥॳե졼

    ʥƥJSPͥưϡŬʥåȰ¸
    Υե١˥ƥ๽ˤ碌ƽ񤭴Ф褤
    ƥԽɬפܤʲ˼

      ./sys_defs.h
        STACKTOP    : åɥ쥹
        TIMER_CLOCK : ޡå
        TIC_NUME    : ƥåʬ
        TIC_DENO    : ƥåʬ
        INTC_BASE   : INTCΥ١ɥ쥹
        TIMER_BASE  : TIMERΥ١ɥ쥹
        UART_BASE   : UART١ɥ쥹
        TIMINTLVL   : TIMERγֹ
        UARTINTLVL  : UARTγֹ

      ./Makefile.config
        COPTS              : ѥ륪ץ
        LIBS               : 饤֥
        LDFLAGS            : 󥫥ץ
        TEXT_START_ADDRESS : TEXTΥȥɥ쥹
        DATA_START_ADDRESS : DATAΥȥɥ쥹
        


     ǥեȤȤΥ󥫥ץȤȤƤϡ./microblaze/mbelf.l 
     ѰդƤ롥Υ󥫥ץȤǤϡɥ쥹text,data
     2Ĥꤹ뤳ȤǽǤ롥ʣʥޥåԥ󥰤Ԥ
     ϡ󥫥ץȤ򿷤˺ 嵭 LDSCRIPT ˻ꤹ
     Ф褤


1.3 ݡȤ뵡ǽγ

Microblaze ¸εǽȤơǽɾѥƥﻲȵǽvxget_tim
򥵥ݡȤƤ롥ߥޥѹ(chg_ixxget_ixx)ȡ
ߤζػߤȵġdis_intena_intˤϥݡȤƤʤ


1.4 »
 CPU㳰ǽCPU㳰ϥɥ
   Microblaze ˤCPU㳰Υ٥Ϥ뤬ȯװʤΤᡤ
   CPU㳰ǽCPU㳰ϥɥϥݡȤʤ



Microblaze ץå¸εǽ

Ǥϡͥ뤪ӥƥॵӥεǽǡMicroblaze 
¸ʬˤĤƲ⤹롥

2.1 ǡ

signed int unsigned intΥ 32ӥåȤǤ롥

2.2 ߴǽȳߥϥɥ

DEF_INH ǻꤹߥϥɥֹinhnoˤϡMHSեǥǥХ
˻ꤷͥ٤ɽΥǡINHNOˤ unsigned int
Ƥ롥DEF_INH ǡͥ٤ȤͭǤʤͤ䡤ºݤγ
ͥ٤Ȥϰۤʤֹꤷưݾڤʤ


2.4 ȥåץ⥸塼

Microblaze ¸Υȥåץ⥸塼start.SˤǤϡν
Ԥ

(A) MSRν

åȿǤMSR롥MDMѤƤʤɤϡ
BIPӥåȤ'1'ȤʤäƤ礬뤿ᡤrtbd̿ˤꥯꥢ롥

(B) ⡼ǡ󥫡ȥåݥ󥿤ν

ǽˡRead-only small data area anchorR2ˤRead-write small data
area anchorR13ˤ

ˡߥåݥ󥿡R1ˤ STACKTOP - 4 ꤹ롥-4 
Τϡȥåץ롼ΥѤǤ롥


(C) 㳰/ߥ٥ؤΥϥɥϿ

0x0C-0x10 㳰٥㳰ϥɥexception_entryˤ0x10-0x14
ߥ٥˳ߥϥɥinterrupt_entryˤϿ롥


(D) hardware_init_hook θƽФ

hardware_init_hook  0 Ǥʤˤϡhardware_init_hook ƤӽФ
hardware_init_hook ϡͥ뤬ư˹Ԥɬפ륿
Ȱ¸νԤѰդƤ롥hardware_init_hook ɤǤ
Ƥʤ硤󥫤ǤΥܥ 0 ʥ󥫥
ץ˵Ҥˡ

(E) bssν

bss򥼥ꥢ롥ʤdataˤĤƤϡRAMλ
̤򸺤餹ŪǡROMбϹԤäƤʤ

(F) software_init_hook θƽФ

software_init_hook  0 Ǥʤˤϡsoftware_init_hook ƤӽФ
software_init_hook ϡͥ뤬ư˹Ԥɬפ륽եȥ
ĶʶŪˤϡ饤֥˰¸νԤѰդƤ롥
software_init_hook ɤǤƤʤ硤󥫤ǤΥ
 0 ʥ󥫥ץ˵Ҥˡ

(G) ͥεư

kernel_start ʬͥư롥kernel_start ꥿
Ƥ뤳ȤꤷƤʤ


2.5 ǽɾѥƥﻲȵǽ

Microblaze ¸Ǥϡǽɾѥƥﻲȵǽvxget_timˤ
ݡȤƤ롥ǽɾѥƥ٤ϥޤ˶뤹륯å
ˤäƷޤ롥ʤSYSUTIM UD64ӥåȤ̵ˤ
Ƥ롥


2.6 ꥢ륤󥿥եɥ饤

Microblze ¸Υꥢ륤󥿥եɥ饤ФϡUART 򥵥ݡȤ
Ƥ롥ͥΥϤȤƻѤ UART  INTC³Ƴ
ͭˤơΥɥ쥹./sys_config.h  UART_BASE Ȥ
Ф褤


2.7 å

åͭ/̵ϥƥεư齪λޤǰΧȤ桼
ѹƤ⤽ѹϤΥΤߤͭȤ롥åͭȤ
ˤϡƥ¸ sys_defs.h ǡD_CACHE_ENABLE  I_CACHE_ENABLE
 define Ф褤

¾

5.1 ǥ쥯ȥꡦե빽

Microblaze åȰ¸γƥեγפϼ̤ꡥ

    config/microblze/
        Makefile.config    Makefile  Microblaze¸
        cpu_defs.h         ץå¸Υץꥱ
        cpu_config.h       ץå¸ι
        cpu_config.c       ץå¸δؿ
        cpu_support.S      ץå¸Υ֥롼
        cpu_context.h      ƥ
        makeoffset.c       offset.h ݡȥץ
        cpu_insn.h         ٥Υץå롼
        start.S            ȥåץ⥸塼
        mbelf.ld           󥫥ץ
        cpu_rename.def     ͥ̾Υ͡
        cpu_rename.h       ͥ̾Υ͡
        cpu_unrename.h     ͥ̾Υ͡
        microblaze.h       Microblaze 
        microblaze.c       Microblaze ѥ
        microblaze_asm.inc Microblaze Υ֥ޥ
        hw_serial.h        SIOɥ饤
        hw_serial.cfg      SIOɥ饤ФΥե졼ե
        hw_timer.h         롼
        tool_defs.h        ȯĶ¸ΥץꥱGNUȯĶѡ
        tool_config.h      ȯĶ¸ιGNUȯĶѡ

    config/microblaze/miref
        Makefile.config    Makefile  MIREF ¸
        sys_defs.h         ƥ¸Υץꥱ
        sys_config.h       ƥ¸ι
        sys_config.c       ƥ¸δؿ
        sys_support.S      ƥ¸Υ֥롼
        sys_rename.def     ͥ̾Υ͡
        sys_rename.h       ͥ̾Υ͡
        sys_unrename.h     ͥ̾Υ͡

    config/microblaze/mire_multi
        Makefile.config    Makefile  MIRE_MULTI ¸
        sys_defs.h         ƥ¸Υץꥱ
        sys_config.h       ƥ¸ι
        sys_config.c       ƥ¸δؿ
        sys_support.S      ƥ¸Υ֥롼
        sys_rename.def     ͥ̾Υ͡
        sys_rename.h       ͥ̾Υ͡
        sys_unrename.h     ͥ̾Υ͡

    config/microblaze/multimedia
        Makefile.config    Makefile  MIRE_MULTI ¸
        sys_defs.h         ƥ¸Υץꥱ
        sys_config.h       ƥ¸ι
        sys_config.c       ƥ¸δؿ
        sys_support.S      ƥ¸Υ֥롼
        sys_rename.def     ͥ̾Υ͡
        sys_rename.h       ͥ̾Υ͡
        sys_unrename.h     ͥ̾Υ͡




5.2 åȤؤΥɤȼ¹

åȤؤΥɤȼ¹ԼˤĤƤϡGNUȯĶۥޥ˥
Ƥ롥JSPͥϥåȤ xmdstub Ȥ߹
֤ GDB ɤ¹Ԥ뤳ȤǤ롥



5.3 ݡ

Хȯ toppers-users  ML ⤷ϡMicroblaze 
¸γȯԤΰʲΥ᡼륢ɥ쥹Ϣĺ

  honda@ertl.jp


ޤʲΥڡǤ⥵ݡȤԤͽǤ롥

  http://www.ertl.jp/~honda/microblaze


ʾ


