
              TOPPERS/FDMPͥ 桼ޥ˥奢 
                     ARM åȰ¸

             Release 1.1 бǽ: 19-Sep-2006

----------------------------------------------------------------------
 TOPPERS/FDMP Kernel
    Toyohashi Open Platform for Embedded Real-Time Systems/
     Function Distributed Multiprocessor Kernel 

 Copyright (C) 2004-2006 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: arm.txt,v 1.2 2007/07/26 02:02:33 honda Exp $
----------------------------------------------------------------------

1. ARM åȰ¸γ

1.1 åȥƥ

ARM ץåΥåȥƥȤƤϡARM11 MPCoreܤ
Versatile 򥵥ݡȤƤ롥

1.2 ȯĶȼ¹ԴĶ

ȯĶˤϡCodeSourcery ƤGCCѤƤ롥ưǧ
Сϡ3.4.4Ǥ롥¹ԴĶϡRealView ICE  RealView 
Debugger ѤƤ롥

1.3 ݡȤ뵡ǽγ

ARM ¸εǽȤơǽɾѥƥﻲȵǽvxget_timˤ
ݡȤƤ롥ߤζػߡ(dis_int, ena_int)򥵥ݡȤ롥
ޤߥޥѹ(chg_ixxget_ixx)ϥݡȤƤʤ


2ARM ץå¸εǽ

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

2.1 ǡ

signed int unsigned intΥ 32ӥåȤǤ롥

2.2 ߴǽȳߥϥɥ

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

2.4 ȥåץ⥸塼

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

(A)ץåȽ

ʬȤΥץåֹ CPU ID Ƚꤹ롥

(C) åݥ󥿤νȥե졼ݥ󥿤

åݥ󥿤STACKTOPꤷ˥ե졼Хݥ)
롥

(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 ǽɾѥƥﻲȵǽ

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

2.6 ꥢ륤󥿥եɥ饤

ARM ¸Υꥢ륤󥿥եɥ饤ФϡUART 򥵥ݡȤƤ롥


3¾

3.1 ǥ쥯ȥꡦե빽

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

	config/arm/
		Makefile.config    Makefile  ARM¸
		armelf.ld          ARMѥ󥫥ץ
		cpu_config.c       ץå¸δؿ
		cpu_config.h       ץå¸ι
		cpu_context.h      ƥ
		cpu_defs.h         ץå¸Υץꥱ
		cpu_insn.h         ٥Υץå롼
		cpu_rename.def     ͥ̾Υ͡
		cpu_rename.h       ͥ̾Υ͡	
		cpu_support.S      ץå¸Υ֥롼
		cpu_unrename.h     ͥ̾Υ͡
		makeoffset.c       offset.h ݡȥץ
		mp_config.c        ޥץåѤΥץå¸δؿ
		mp_config.h        ޥץåѤΥץå¸      
		start.S            ȥåץ⥸塼
		tool_config.h      ȯĶ¸ιGNUȯĶѡ
		tool_defs.h        ȯĶ¸ΥץꥱGNUȯĶѡ
	config/arm/ct11mpcore_eb
		Makefile.config    MPCore ΰ¸
		ct11mpcore_eb.c    CT11MPCoreΥ    
		ct11mpcore_eb.h    CT11MPCore
		hw_serial.cfg      UARTɥ饤ФΥե졼ե
		hw_serial.h        UARTɥ饤
		sys_config.c       ƥ¸δؿ
		sys_config.h       ƥ¸ι
		sys_defs.h         ƥ¸Υץꥱ
		sys_rename.def     ͥ̾Υ͡
		sys_rename.h       ͥ̾Υ͡
		sys_support.S      ƥ¸Υ֥롼
		sys_unrename.h     ͥ̾Υ͡


3.2 ݡ

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

  honda@ertl.jp

