
            TOPPERS/JSPͥ 桼ޥ˥奢 
               (M32R åȰ¸)

           Release 1.4.3 бǽ: 29-Mar-2007

------------------------------------------------------------------------ 
 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) 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: m32r.txt,v 1.10 2007/05/30 03:57:10 honda Exp $
------------------------------------------------------------------------


ΥɥȤǤϡTOPPERS/JSP M32RǤˤĤƲ⤹롥

 M32R åȰ¸γ

1.1 åȥƥȳȯĶ

M32RץåΥåȥƥȤƤϡʲΤΤ򥵥ݡȤƤ
롥

	ͥƥΥ M3A-ZA36 (M32102)
	ͥƥΥ M3A-2131 (M32102)

ȯĶˤϡGCCʤɤGNUȯĶѤ֥ȥեեޥ
ȤELFɸȤ롥

TOPPERS/JSP M32Rγȯ δĶǹԤƤ롥

	GNU gcc-4.1.2
	GNU binutils-2.17
	GNU gdb-6.6

1.2 ݡȤ뵡ǽγ

    ¿ų

	  M32RĶǤϳߥϥɥ鵯ư¿ųߤĤ롥

    chg_ipm 

	  M32RĶǤϡchg_ipm(ߥޥ٥ѹ)򥵥ݡȤ롥
      chg_ipmѤƥޥ٥ѹ硤¹Ԥ
      ǤΤѹͭȤʤ (ǥѥå˳ߥޥ
      /ѹ)

1.3 TOPPERS/JSP M32RĶ»

    vxget_tim

	  M32RĶǤvxget_tim򥵥ݡȤʤ

    ena_int, dis_int
	
      M32RĶǤϥ桼ˤߵġػߤϹԤʤΤȤƤ롥
      ena_int/dis_intϡloc_cpu/unl_cpu̾Ȥ¸ߤ롥

    ޥƥå1ms

      TOPPERS/JSP M32RǤϡ1ms٤ǥͥ륿ޤư롥


. M32RĶ˰¸ǽ

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

2.1 ǡ

int  unsigned intΥ32ӥåȤǤ롥ͥ٤ɽ
뷿 IPR ʤ8ӥåǤ롥


. ƥ˰¸ǽ

3.1 ޥå

M3A-2131

  0x00000000 - 0x0000020f : ٥ơ֥, EITϥɥΰ (FLASH ROM)
  0x00000210 -            : ̤ (FLASH ROM)
  0x00f00000 - 0x00f0ffff : ץ + ƥॹå (¢RAM)
  0x01000000 - 0x017fffff : ǡ (SDRAM 8MB)

M3A-2131¸ǤϡǥեȤ¢RAM˥ץ֤褦
ʤäƤ롥¢RAM˥ץ֤뤿ˤϡ٥ơ֥
(0x00000000-0x0000020f)ΰ0xFF3C0000 (BRA PC+0x00F00000)
ɬפ롥

åΰϡ¢RAMΰ饢ɥ쥹ͤؿʤࡥ
ǡΰϽΰ褫饢ɥ쥹ͤäسݤ롥

M3A-2131¸Ǥϡƥॹå٤ƤΥǡSDRAM 
֤뤳ȤǥեȤȤƤ롥֤Ѥ뤿ˤϡM3A-2131ѥ
󥫥ץȥե(jsp/config/m32r/m3a2131/m32relf.ld)
Ф褤

M3A-ZA36

  0x00f00000 - 0x00f0ffff : ץ + ƥॹå¢SRAM
  0x04000000 - 0x047fffff : ǡʳSDRAM 64MB

M3A-ZA36¸Ǥϡ¢SRAM˥ƥȥ֤ȤɸȤ
Ƥ롥åΰϡSDRAMΰ0x04100000Ϥ饢ɥ쥹ͤ
ؿʤࡥ

ǡΰϡSDRAMƬ0x04000000饢ɥ쥹ͤä
ݤ롥ΤᡤͥɤݤˤϡͽǥХå
SDRAMƤɬפ롥

֤Ѥ뤿ˤϡM3A-ZA36ѥ󥫥ץȥե
(jsp/config/m32r/m3a_za36/m32relf.ld)Ф褤


3.2 ¾Υƥ/åפؤΥݡƥ

ݡƥ󥰺ȤϼΥƥåפʤ롥
	ޥåץɥ쥸Υɥ쥹
    ޡͤ
    RAMϤ
    ˥륹åݥ󥿤

3.2.1 ޥåץɥ쥸Υɥ쥹

TOPPERS/JSP M32RĶǤϤĤ쥸򻲾ȤƤ롥
ƥƥ¸ѥǥ쥯ȥsys_defs.hƤ롥ѼԤ
ɬפ˱Ƥͤ뤳ȡ

3.2.2 ޡͤ

TOPPERS/JSP M32RĶǤɸ1msȤ˳ߤȯƤ롥

ߤȯޤǤλ֤ϡޥڥ쥸ͤޥ˥奢
ˤäơTIMER_CLKCNTĴ뤳ȤѹǤ롥

m3a2131

config/m32r/m3a2131/sys_config.h

/* M3A-2131 66MHz  115.2kbps */
#define TIMER_CLKCNT	(16667*2)
#define TIMER_PORT		5

m3a_za36

config/m32r/m3a_za36/sys_config.h

#define TIMER_CLKCNT		1250		/* 10MHz  57600bps */
#define TIMER_PORT			4

ޤƥåΤϡsys_defs.hTIC_NUME
TIC_DENO롥줾ϼ˽

ƥå(ms) = TIC_NUME(ms) / TIC_DENO(ms)

3.2.3 RAMϤ

m32relf.ldMEMORYƤ뤳ȤǡΥӰ֤
ѹǤ롥ޤƥˤ"> iram""> eram"ѹ
Ȥǡ֤֤ѹǤ롥

3.2.4 ˥륹åݥ󥿤

ưꤵåݥ(ߥåݥ)Ϥ
m32relf.ld__stack˵ҤƤ롥__ stackˤ4Хȥ饤
줿ͤǼ롥

M3A-ZA36νåݥ󥿤ϡʲΤ褦ꤵƤ롥

PROVIDE(__stack = 0x04100000);

åϥץǥȥåǤ뤿ᡤ__stackǼ줿ɥ
ˤϲǼʤȤդ줿

3.2.5 ¾

    Ѥ륿ޥ˥åȤֹ
        config/m32r/(sys)/sys_config.h: TIMER_PORT
            Ѥ륿ޥ˥åֹ롣ǥեȤ5ɸξ
            ֤Ǥϡǡֹ쥸ɥ
            ʤɤ⽤롣

    󥽡˻ѤUART˥åȤID
        config/m32r/(sys)/sys_config.h: CONSOLE_PORTID
            󥽡ȤƻѤUART˥åIDꤹ롣UART˥
            ID1Ϥޤ뤳ȤաǥեȤ1

    װκ
        config/m32r/(sys)/sys_config.h: NUM_INTERRUPT
            ߥ٥ơ֥뤿γװκ
            롣ǥեȤ64 (0-63)


ȯĶι

ȯĶιˡˤĤƤϡGNUȯĶۥޥ˥奢򻲾Ȥ뤳ȡ
CPṲ뤿Υå̾ m32r-elf Ǥ롥

¾

5.1 ǥ쥯ȥꡦե빽

[jsp]
  +- [doc]
  |   +- m32r.txt  : Υե
  +- [config]
      +- [m32r]
          +- cpu_config.c    : ץå¸⥸塼
          +- cpu_config.h    : ץå¸⥸塼
          +- cpu_context.h   : ƥ롼
          +- cpu_defs.h      : CPU¸(/㳰ֹʤ) ե
          +- cpu_support.S   : CPU¸֥쥳ǥ
          +- m32rasm.inc     : ֥ѥ󥯥롼ɥե
          +- m32r.h			 : 쥸ޥå (M32R )
          +- Makefile.config : CPU¸Makefile
          +- makeoffset.c    : ¤ΥեåȰּ
          +- start.S         : ȥå / ߥϥɥ
          +- cpu_rename.h    : ܥ̾Ͳإå
          +- cpu_unrename.h  :  Ʊ
          +- cpu_rename.def  : Ͳоݥܥե
          +- tool_defs.h     : ϰ¸
          +- tool_config.h   : ȥ졼ǽե (б)
          +- [m3a_2131]
              +- hw_serial.h     : ꥢ (M32R¢ƱSIO)
              +- hw_serial.c     :  Ʊ
              +- hw_timer.h      :    (M32R¢)
              +- m32relf.ld      : M3A-2131ѥ󥫥ץ
              +- Makefile.config : ƥ¸Makefile
              +- sys_config.h    : ƥ¸⥸塼
              +- sys_config.c    : ƥ¸⥸塼
              +- sys_defs.h      : ƥ¸ե
              +- sys_support.S   : ƥ¸֥
              +- sys_rename.h    : ܥ̾Ͳإå
              +- sys_unrename.h  :  Ʊ
              +- sys_rename.def  : Ͳоݥܥե
          +- [m3a_za36]
			  +- ...


С

    2007ǯ0528  Release 1.4.3
        cpu_support.SΥ㳰ưȽ
        m3a-2131g50Υǥ쥯ȥ̾m3a_2131ѹ
        m3a-2131SDRAM
        M32R̤Υ쥸ޥåפm32r.hȤƥץå¸֤
    2007ǯ0422  Release 1.4.2
        cpu_support.SenadspǤƤʤM3A-ZA36 
          ΥݡȤɲá
    2003ǯ0617  Release 1.4
        ĤѹˤʤäΤǡ˹碌
    2003ǯ0421  Release 1.4
        TOPPERS/JSP rel 1.4ˤ碌ȤԤ
    2002ǯ0809  Release 1.2
        VDECߥʡٶ̤ȿǡ32ӥåȥܥɤ
          shigh/low̿ѹ
    2002ǯ0806  Release 1.1
        lock_cpu/unlock_cpuΥ饤󥢥֥국˲
          쥸ΥꥹȤ񤯤Τ˺ƤΤ
        ֥Υ٥դǥեȥѥ
          륪ץ-O0-O2
        ɤΰ "V850" εҤäΤ
    2002ǯ0415  Release 1.0
        M32R¸ ꡼
    2002ǯ0310  Release 0.2
        å66MHzˡѥޤ0->5ء
        ɥ
    2002ǯ0301  Release 0.1
        ǽΥ꡼
