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

             Release 1.3бǽ: 11-Apr-2001
            Microblaze Development KitMDK2.1б

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

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

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

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

 @(#) $Id: microblaze.txt,v 1.5 2002/04/14 14:12:24 honda Exp $
------------------------------------------------------------------------


Microblaze åȰ¸γ

1.1 åȥƥ

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

å ѥʳ Virtex II MicroBlaze KitFPGA:XC2V1000-FG456


1.2 ȯĶ

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

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

MDK˴ޤޤGNUγȯĶϡxygwinư뤳˺Ƥ
ᡤCygwin make ƤӽФ票顼ɽʤȤä
󤬤롥ΤᡤXilinx  Web 
http://www.xilinx.com/guest_resources/gnu/index.htmˤGNUΥ
ɤ Cygwin Ѥ˹ۤΤǤͭˡǤ뤬
ǥɲǽʥɤϡgcc ΥѥǤʤ
ΤᡤMDKΥġѤ롥ʤ顤gnu_install.txt ˤ
褦ˡե졼ιۤ binutils δĤΥե뤬ɬפ
ᡤ gnu_install.txt   1.2  5ˤ˽ä binutils ۤɬ
פ롥ʤbinutils 򥽡ɤ鹽ۤ뤵ˤϥå
̾ "microblaze"ˤʤФʤʤФMDK°GNUĶ
ġ̾ "mb-XX" Ǥ뤿ᡤե졼ɬפʥե
ԡ <TARGET> "mb"ˤɬפ롥

塤Cygwin ɬפȤʤѥåͽǤ롥


1.2 ƥ๽

̾ΥåȤξϡ./config ʲ

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

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

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

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

ۥѥå˴ޤޤƤ륿åȰ¸ʲ˼

  ./insight_v2mb
    å ѥʳ Virtex II MicroBlaze Kit  P160
    Communications Modules ³LCDȥ椹MEMCON
    GPIO7SEG³

  ./template
    ץå¸ȤƤƤ륷ƥΤߤư뤿
    Υɡ嵭κǾǥƥ򵭽Ҥ˻Ѥ롥ޤ
    ƥĥϡԽȤ褤


1.4 ƥॳե졼

    ʥƥJSPͥưϡǽҤ٤褦
    ./temple ١ˤȤ褤./temple ʲǥƥԽ
    йܤʲ˼

      ./sys_config.h
        STACKTOP    : åɥ쥹
        TIMER_CLOCK : ޡå
        INTC_BASE   : INTCΥ١ɥ쥹
        TIMER_BASE  : TIMERΥ١ɥ쥹
        UART_BASE   : UART١ɥ쥹
        TIMINTLVL   : TIMERγֹ
        UARTINTLVL  : UARTγֹ

      ./Makefile.config
        TEXT_START_ADDRESS : TEXTΥȥɥ쥹
        DATA_START_ADDRESS : DATAΥȥɥ쥹
        LDSCRIPT           : 󥫥ץ
        LIBC               : libc.a ξ

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


1.3 ݡȤ뵡ǽγ

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


1.4 »
 ¿ų
   MDK2.1 Simple Interrupt ControllerINTCˤϡι¤¿ų
   ߤ¸뤳ȤԲǽǤ뤿ᡤJSPͥ¿ųߤ򥵥ݡ
   ȤƤʤΤᡤߥϥɥ¹ԻˤƤγߤػ
   Ƥ롥¿ųߤΥݡȤ INTC ¿ųߤǽʹ¤
   줿бͽǤ롥

 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) ⡼ǡ󥫡ȥåݥ󥿤ν

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

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


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

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


(C) hardware_init_hook θƽФ

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

(D) bssν

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

(E) software_init_hook θƽФ

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

(E) ͥεư

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


2.5 ǽɾѥƥﻲȵǽ

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


2.6 ꥢ륤󥿥եɥ饤

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


Insight VirtexII ƥ¸εǽ

3.1 LCDɥ饤

P160 Communications Modules ³줿 LCD  MEMCOM 𤷤椹
ɥ饤С



¾

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           󥫥ץ
        microblaze.h       Microblaze 
        microblaze_asm.inc Microblaze Υ֥ޥ
        hw_serial.h        ꥢ륤󥿥եǥХ롼
        hw_timer.h         롼

    config/microblaze/insight_v2mb 
        Makefile.config	   Makefile  Insight VirtexII ¸
        sys_defs.h         ƥ¸Υץꥱ
        sys_config.h       ƥ¸ι
        sys_config.c       ƥ¸δؿ
        sys_support.S      ƥ¸Υ֥롼
        insight_v2mb.h     Insight VirtexII ץ륷ƥ

    config/microblaze/templete
        Makefile.config	Makefile  Insight VirtexII ¸
        sys_defs.h         ƥ¸Υץꥱ
        sys_config.h       ƥ¸ι
        sys_config.c       ƥ¸δؿ
        sys_support.S      ƥ¸Υ֥롼
        insight_virtexii.h Insight VirtexII ץ륷ƥ


5.2 åȤؤΥɤȼ¹

åȤؤΥɤȼ¹ԼˤĤƤϡGNUȯĶۥޥ˥
Ƥ롥JSPͥϥåȤ xmdstub Ȥ߹
֤ GDB ɤ¹Ԥ뤳ȤǤ롥ʤ GDBˤǥХ
ϲǽǤ뤬xmdstub ȥͥˤĤƤϸĴǤ롥



5.3 ݡ

JSPͥ Microblaze ¸ϳȯ줿ޤʤᡤХ䥵ݡ
ȤƤʤǽ롥ޤȯĶˤĤƤޤԽʬ
롥ޤMDKΥС󥢥åˤɽɬפ롥Τᡤ
ȯ toppers-users  ML ⤷ϡMicroblaze 
¸γȯԤΰʲΥ᡼륢ɥ쥹Ϣĺ

  honda@ertl.jp


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

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


ʾ
