
	     TOPPERS/JSPͥ 桼ޥ˥奢 
		    ColdFire Version 2 åȰ¸

             Release 1.4.1бǽ: 6-Oct-2004

------------------------------------------------------------------------ 
 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) 2004-2006 by Embedded and Real-Time Systems Laboratory
            Graduate School of Information Science, Nagoya Univ., JAPAN
 Copyright (C) 2007 by KURUSUGAWA Electronics Industry Inc, JAPAN
 Copyright (C) 2008 by Takahisa Yokota

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

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

 @(#) $Id: m68k.txt,v 1.13 2004/10/06 06:51:51 honda Exp $
------------------------------------------------------------------------


ColdFire V2 åȰ¸γ

1.1 åȥƥ

ColdFire V2ץåΥåȥƥȤƤϡե꡼롦ߥ
ҤCPUܡM52235EVB(MCF52235ˤΤߤ򥵥ݡȤƤ롥

1.2 ȯĶȼ¹ԴĶ

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

¹ԴĶȤơROMľܵưˡGDB֤Ѥˡ򥵥ݡ
Ƥ롥GDB֤ѤˤϡMakefileǡDBGENVGDB_STUB
ʥǥեȡˡROM˥ѤˤϡDBGENVʤ

()RAM˥֤ͥM52235EVBǤϥޤʤᡢGDB_STUB
ϸѤʤ

1.3 ݡȤ뵡ǽγ

ColdFire V2¸εǽȤơߥޥѹȡchg_ixxget_ixxˤ
ݡȤƤ롥ޤM52235EVBܡɰ¸εǽȤơǽɾѥƥ
ﻲȵǽvxget_timˤ򥵥ݡȤƤ롥ߤζػߤ
ġdis_intena_intˤϥݡȤƤʤ


ColdFireץå¸εǽ

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

2.1 ǡ

signed intunsigned intsize_tΥϡ32ӥåȤǤ
롥

2.2 ߴǽȳߥϥɥ

ͥγߤNMIΤߤǤ롥äơCPUå֤롼
ǤϡNMIʳγߤϤ٤ƶػߤƤ롥ŪˤϡIPM
Interrupt Priority Maskˤ7ꤵ롥

DEF_INHǻꤹߥϥɥֹinhnoˤϡMCF52235Ǥ㳰٥
ɽΥǡINHNOˤunsigned intƤ롥
DEF_INHǡ㳰٥ֹȤͭǤʤͤ䡤ߤбʤ
ֹꤷưݾڤʤ

MCF52235¸εǽȤơSRStatus RegisterIPMInterrupt
Priority Maskˤͤѹ뤿Υӥchg_ipmȡȤ뤿
Υӥget_ipm򥵥ݡȤƤ롥ʤIPMͤɽǡ
IPMϡunsigned intƤ롥

ΥӥϡƥȤCPUå֤ξ
ˤΤ߸ƤӽФȤǤ롥chg_ipmˤIPM0ʳʤʤ餫
γߤػߤƤ֡ˤˤǤ⡤ǥѥå϶ػߤ줺
chg_ipmˤѹIPMͤϡǥѥåΥ˰Ѥ롥
㤨С륿IPM1ѹ塤餫γߤˤ̤Υ
ڤؤȡڤؤäΥǤIPM1ˤʤ롥IPM0 
ʳꤷƤƤ⡤¹ԤǤ륿ʤʤäˤIPMϰŪ
0ˤʤ롥ϡCOLDFIRE̿᥻åȤ餯»Ǥʲ
ʤ櫓ǤϤʤˡ

chg_ipm򥵥ݡȤ뤿ˡߥϥɥνʤɤ˥Хإ
ɤƤ롥ǡSUPPORT_CHG_IPMȤޥˤꡤΥ
ӥ򥵥ݡȤ뤫ɤڤؤ褦ˤƤ롥
SUPPORT_CHG_IPMϡcpu_config.hǥޥƤ롥

ColdFire V2¸γߥޥѹȤΤΥӥλͤϼ
̤ꡥ

(1) chg_ipm			ߥޥѹ

CAPI
	ER ercd = chg_ipm(IPM ipm);

ڥѥ᡼
	IPM	ipm		ꤹ٤ IPM 

ڥ꥿ѥ᡼
	ER	ercd		顼

ڥ顼ɡ
	E_CTX		ƥȥ顼
	E_PAR		ѥ᡼顼ipm 

ڵǽ

IPMInterrupt Priority Maskˤ ipm ǻꤵ줿ͤꤹ롥ꤷ
ͤ 06 ʳξ硤E_PAR顼Ȥʤ롥IPM  16 ꤷ
Ǥ⡤ǥѥå϶ػߤʤޤꤷ IPM ͤϡǥѥ
Ѥ롥ǥѥåػߤˤϡdis_dsp ʻѤ
Ф褤

ʤΥӥѤơIPM  7 ʤ٤Ƥγߤػߡˤ
ꤹ뤳ȤϤǤʤIPM  7 ˤˤϡloc_cpu Ȥ٤
Ǥ롥

ΥӥϡƥȤ CPUå֤λΤ߸
ӽФȤǤ롥󥿥ƥȤ CPUå֤ǸƤӽФ
ˤϡE_CTX顼Ȥʤ롥

(2) get_ipm			ߥޥλ

CAPI
	ER ercd = get_ipm(IPM *p_ipm);

ڥѥ᡼
	ʤ

ڥ꥿ѥ᡼
	ER	ercd		顼
	IPM	ipm		ߤ IPM 

ڥ顼ɡ
	E_CTX		ƥȥ顼

ڵǽ

ߤ IPMInterrupt Priority Maskˤͤɤ߽Фipm ֤

ΥӥϡƥȤ CPUå֤λΤ߸
ӽФȤǤ롥󥿥ƥȤ CPUå֤ǸƤӽФ
ˤϡE_CTX顼Ȥʤ롥

2.3 CPU㳰ǽCPU㳰ϥɥ

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

2.4 ȥåץ⥸塼

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

(A) ϡɥν

ǽSRAMFlashROM֥ɥ쥹ꤹ롣

(B) ץå⡼ɤνȥåݥ󥿤ν

ץåΥ⡼ɤ򡤥ѥХ⡼ɡߥ⡼ɤꤷNMI ʳ
Τ٤Ƥγߤػߤ롥ȥåץ⥸塼ϡѥХ⡼
ǵưʤФʤʤΤǡǥѥХ⡼ɤꤹΤϡ
ϥǤ롥

ˡߥåݥ󥿡SPIˤ STACKTOP ꤹ롥ǳ
ߥåݥ󥿤ꤵ줿åΰϡͥ뵯ư󥿥
ƥѤΥåΰȤƻȤ롥STACKTOP ϡsys_config.h 
뤳ȤꤷƤ롥ޤե졼ݥ󥿤 0 ˽
롥

(B) hardware_init_hook θƽФ

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

(C) bss dataν

bss򥼥ꥢ롥ޤdata롥

(D) software_init_hook θƽФ

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

(E) ͥεư

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


M52235EVB ƥ¸εǽ

   äˤʤ

ȯĶι

ȯĶιˡˤĤƤϡGNUȯĶۥޥ˥奢򻲾Ȥ뤳ȡ

4.1 ȯĶΥС

ưǧġΥСϰʲ̤Ǥ롥

    BINUTILS : 2.18
    GCC-CORE : 3.6.3

GCC 3.3Ѥ硤ѥ餬ɸC饤֥ؿƤӽФɤ
뤿ᡤNEWLIBɬפˤʤ롥NEWLIBɸC饤֥󥯤
ˡMakefileLIBS˰ʲΤ褦 -lc ɲäɬפ롥

    LIBS := $(LIBS) $(CXXLIBS) -lc -lgcc


¾

5.1 ǥ쥯ȥꡦե빽

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

    config/cfv2/
	Makefile.config	MakefileColdFire V2¸
	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	ͥ̾Υ͡
	m52235.h		MCF52235
	makeoffset.c	offset.hݡȥץ
	mcfpit.h		MCF52235¡PITޡɥ饤
	mcfuart.c		MCF52235¡UARTѥꥢɥ饤
	mcfuart.h		MCF52235¡UARTѥꥢɥ饤
	start.S		ȥåץ⥸塼
	tinet_cpu_config.h	TINETѥإå
	tinet_cpu_defs.h	TINETѥإå
	tool_config.h	ȯĶ¸ιGNUȯĶѡ
	tool_defs.h	ȯĶ¸ΥץꥱGNUȯĶѡ
	util.h
	vector_table.c

    config/cfv2/m52235evb/
	Makefile.config	MakefileM52235EVB¸
	Makefile.tinet
	cfv2.h		ColdFireV2
	cfv2elf.ld	󥫥ץ
	cfv2elf.stub.ld	󥫥ץ(stub)
	hw_serial.cfg	SIOɥ饤ФΥե졼ե
	hw_serial.h	SIOɥ饤
	hw_timer.h	롼
	m52235evb.h	M52235EVBܡɤΥϡɥ񸻤
	sys_config.c	ƥ¸δؿ
	sys_config.h	ƥ¸ι
	sys_defs.h	ƥ¸Υץꥱ
	sys_rename.def	ͥ̾Υ͡
	sys_rename.h	ͥ̾Υ͡
	sys_support.S	ƥ¸Υ֥롼
	sys_unrename.h	ͥ̾Υ͡
	tinet_sys_config.c	TINETѥƥ¸δؿ
	tinet_sys_config.h	TINETѥƥ¸ι
	user_config.h	桼

5.2 åȤؤΥɤȼ¹

åȤؤΥɤȼ¹ԼˤĤƤϡGNUȯĶۥޥ˥
Ƥ뤬ʲǤϡColdFire V2 M52235EVBܡɤξ
ͭλˤĤ롥

ROMľܵưˡ

  CF FlasherBDMͳǽ񤭹ळȤˤROM鵯ưǤ롣


ʾ
