		TOPPERS/ASPͥ
		APSH2A(GCC)åȰ¸ 桼ޥ˥奢

		бС: Release 1.7.1
		ǽ: 2011ǯ 8 9

ΥɥȤϡTOPPERS/ASPͥAPSH2A(GCC)åȰ¸
Ѥ뤿ɬפʻΤǤ롥
SH12Aƥ㶦̤λϡasp/arch/sh12a_gcc/prc_user.txt˵
ƤΤǡ⻲ȤΤȡ

----------------------------------------------------------------------
 TOPPERS/ASP Kernel
     Toyohashi Open Platform for Embedded Real-Time Systems/
     Advanced Standard Profile Kernel

 Copyright (C) 2008 by Embedded and Real-Time Systems Laboratory
             Graduate School of Information Science, Nagoya Univ., JAPAN
 Copyright (C) 2007-2011 by Industrial Technology Institute,
                                    Miyagi Prefectural Government, JAPAN
 
 嵭Ԥϡʲ(1)(4)ξ˸¤ꡤܥեȥ
 ܥեȥѤΤޤࡥʲƱˤѡʣ
 ѡۡʰʲѤȸƤ֡ˤ뤳Ȥ̵ǵ롥
 (1) ܥեȥ򥽡ɤηѤˤϡ嵭
     ɽѾ浪Ӳ̵ݾڵ꤬Τޤޤηǥ
     ˴ޤޤƤ뤳ȡ
 (2) ܥեȥ򡤥饤֥ʤɡ¾Υեȥȯ˻
     ѤǤǺۤˤϡۤȼɥȡ
     ԥޥ˥奢ʤɡˤˡ嵭ɽѾ浪Ӳ
     ̵ݾڵǺܤ뤳ȡ
 (3) ܥեȥ򡤵Ȥ߹ʤɡ¾Υեȥȯ˻
     ѤǤʤǺۤˤϡΤ줫ξ
     ȡ
   (a) ۤȼɥȡѼԥޥ˥奢ʤɡˤˡ嵭
       ɽѾ浪Ӳ̵ݾڵǺܤ뤳ȡ
   (b) ۤη֤̤ˡˤäơTOPPERSץȤ
       𤹤뤳ȡ
 (4) ܥեȥѤˤľŪޤϴŪ뤤ʤ»
     ⡤嵭ԤTOPPERSץȤդ뤳ȡ
     ޤܥեȥΥ桼ޤϥɥ桼Τʤ
     ͳ˴Ťᤫ⡤嵭ԤTOPPERSץȤ
     դ뤳ȡ
 
 ܥեȥϡ̵ݾڤ󶡤ƤΤǤ롥嵭Ԥ
 TOPPERSץȤϡܥեȥ˴ؤơλŪ
 ФŬޤơʤݾڤԤʤޤܥեȥ
 ѤˤľŪޤϴŪʤ»˴ؤƤ⡤
 Ǥʤ
 
----------------------------------------------------------------------


(1) бƤ륿åȥƥμࡦ
    åȥϡɥʥܡˤ̾ΤбƤ빽
    ܡɡAP-SH2A-0Aʥեץ
    ץåSH2ASH7211
    åά
    åάΡapsh2a_gcc
	ƥάΡapsh2a
	ȯĶάΡgcc
	å¸ΥСֹ
	С1.7.0
	ץååסȯĶ¸ιȥСֹ
		arch/
			sh12a_gcc/		SH12A(GCC)ƥ¸
			С1.7.1
			gcc/			GCCȯĶ¸
			logtrace/		ȥ졼ϿΥץ륳
    ѤPDIC
		pdic/
			sh/				SH꡼SCIFɥ饤
			С1.7.1
¸Ƥ̥ѥåΥСֹ
		APSH2A(GCC)åȰ¸ʥС 1.7.1ˤθ̥ѥå
		¸Ƥ̥ѥåȡưǧԤäСϼ
		̤ꡥ

	̥ѥå̾	С	̥ѥåե̾
	------------------------------------------------------------------
	å¸		1.7.0		asp-1.7.0.tar.gz
	ե졼	1.7.0		cfg-1.7.0.tar.gz
ɮԤδĶǤϡե졼CygwinѥХʥѥå
cfg-cygwin-1_7_0.tar.gzǤưWindowsѥѥå
cfg-mingw-static-1_7_0.zipѤưǧ

(2) Ѥ볫ȯĶưڤʥС󡤥ץ
ۥȴĶ
WindowsXP Pro SP3
Cygwin
CYGWIN_NT-5.1 D5H546BX 1.7.7(0.230/5/3) 2010-08-31 09:58

    ϡʥѥ顤֥顤
GCC 4.3.2ưǧԤäưǧ GCC 4.3.2ϡʲ
ȤХʥѥåɤѤ

        http://www.superh-tkernel.org/jpn/download/tools/index.html

ǥХåĶ
ưǧǥХåϡʳ˥եץ
Xross Finder Ǥ롥ʤJTAGǥХåϡRAM˥ͥ
ɤ֤ᡤRAMνɬפȤʤ롥
RAMν˴ؤƤϡAP-SH2A-0A°Ƥ
Xross Finder ΥץȥեXrossFinder_sh2a_0a.xfcˤ
Ѥ

		ܡɤ
			ܥͥư AP-SH2A-0A Υǥåץå
			ʲ̤Ǥ롥

			   SW1-1    : ON
			   SW1-2    : OFF
			   SW1-(3,4): MODE2
			   SW1-3ON
			   SW1-4OFF
			   SW1-5    : ONFlashROM߶ػߡ
			   SW1-6    : ǥХå⡼
			   ǥХåON
			   ROMOFF

			ջࡧ
			ǥХåˡFlashROMߵĤĥǥХå⡼ɡ
			SW1-5OFFSW1-6ONˤˤ,FRQCRͤȤʤꡢ
			ưåưʤΤա
			SH7211Τ»

(3) åε

(3-1) ǡ˴ؤ뵬

åȰ¸ΥǡΥϼ̤ꡥ
	int_t			32ӥå
	long_t			32ӥå
	char_t			8ӥå
	int_least8_t	8ӥå
	void *			32ӥå
	intptr_t		32ӥå

åȰ¸Υǡ̵ͭϼ̤ꡥ

	int8_tuint8_t			
	int64_tuint64_t		
	int128_tuint128_t		ʤ
	float32_t				
	double64_t				

(3-2) ߽˴ؤ뵬
    ߥϥɥֹȳֹγơξԤб
    ץåΥ٥ֹ򤽤ΤޤѤ롣

    ͥ٤ʳTMIN_INTPRI͡ˡˡ
    ǥեȤǤϡTMIN_INTPRI=-15ȤƤ롣prc_kernel.h
    ѹϡtarget_kernel.hǥޥTMIN_INTPRI롣

    dis_intena_intΥݡȤ̵ͭ»
    ݡȤ
    »ˤĤƤϡƥ¸prc_user.txt򻲾ȡ
    
    CFG_INT»ȳĥʥåǻѤǤ°
    ĥʤ
    »ˤĤƤϡƥ¸prc_user.txt򻲾ȡ
    
	TOPPERSɸ߽ǥ뤫Τ¾ΰæ
    ߥϥɥɬפIRC i_begin_int()
    åȥꥬξΤߡ׵򥯥ꥢΤ§
    뤬ȥꥬ̡ʥåȥꥬ٥ȥꥬˤȽ̤
    ԤȥСإåɤ礭Τǡɤξ⥯ꥢ
    Ƥ롣
    ǤϡSH2AΤ߼Ƥͭ»Ǥ롣

(3-3) ͥγߤ˴ؤ뵬
	TMIN_INTPRIϸ꤫Ǥ뤫ˡ
    ǥեȤǤϡTMIN_INTPRI=-15ȤƤ롣prc_kernel.h
    ѹϡtarget_kernel.hǥޥTMIN_INTPRI롣

	NMIʳ˥ͥγߤߤ뤫ߤ褦ˤ뤫
    ݡȤ
    ܺ٤ϥƥ¸prc_user.txt򻲾ȡ

	ͥγߤˡ
    ƥ¸prc_user.txt򻲾ȡ

	ͥγߤФDEF_INHCFG_INT򥵥ݡȤ뤫
    ݡȤ
    ܺ٤ϥƥ¸prc_user.txt򻲾ȡ

	ͥγߥϥɥ餬¹ԳϤΥƥ֤
	ƥ
    ƥ¸prc_user.txt򻲾ȡ

	ߥϥɥνλ˹Ԥ
    ƥ¸prc_user.txt򻲾ȡ

	ͥγߥϥɥεˡ
    ƥ¸prc_user.txt򻲾ȡ

	ͥγ߽ǵǽΤCPU㳰
    CPUɥ쥹顼

	ͥγߤ˴ؤ»
    ƥ¸prc_user.txt򻲾ȡ

(3-4) CPU㳰˴ؤ뵬
    CPU㳰ϥɥֹγ
    ץåΥ٥ֹ򤽤ΤޤѤ롣
    ߤ⡤桼֥졼H-UDICPU㳰Ȥư

	ͥ٥ޥTMIN_INTPRIƱ⤤ͤꤷ
	֤ȯCPU㳰򡤥ͥCPU㳰Ȱ
    ̤

	ͥCPU㳰ǵǽΤCPU㳰
    CPUɥ쥹顼

(3-5) ǽɾѥƥλȤ˴ؤ뵬
	get_utmΥݡȤ̵ͭ»
    ݡȤ

(3-6) ĥѥå˴ؤ뵬
	ƳĥѥåΥݡȤ̵ͭ
		- ߥ塼ƥåǽĥѥå
    ݡȤʤ
		- Хϥɥ鵡ǽĥѥå
    ݡȤʤ
		- ͥٳĥѥå
    ݡȤʤ
		- 󥿥ĥѥå
    ݡȤʤ
		- ưŪǽĥѥå
    ݡȤʤ
	Хϥɥ鵡ǽĥѥå򥵥ݡȤˡץ
	֤˻Ǥͤκ͡TMAX_OVRTIM͡
	ưŪǽĥѥå򥵥ݡȤˡưŪ
	ˡ

(3-7) ¾
    ¾»
ROMκݤdataΥɥ쥹ޥåԥ󥰤ˤʤ

dataΥ0ξ硢bss
textľ֤Ƥޤ
ʽϤԶ硩
ǥߡѿѰդơdataΥ0
ʤʤ褦ˤƲ򤷤Ƥ롣
ߡѿѥκŬǺΤɤᡢ
֥饽եtarget_support.S˥ߡ
ѿ_dummy򵭽ҤƤ롣

    ¾γĥǽ

(4) ͥεưλ˴ؤ
	ѰդƤ륹ȥåץ⥸塼ν
	
	ȥåץ⥸塼뤫hardware_init_hookƤӽФƤ
	ˤϡhardware_init_hook򥢥ץꥱѰդκ
	ˡ»ʤ
	Хơȥȥ餬ꤵƤʤᡢΤޤޤǤ
	åꥢ˥ƤϤʤ
	
	ͥλο
ext_ker ƤӽФ쥫ͥ뽪λˤϡapsh2a.h ˤ 
apsh2a_exit()¹Ԥ롥ǥեȤǤϡ̵¥롼פ񤫤
Ƥ롥ȼνɲäϡapsh2a_exit() Ƥ
񤭴뤳ȡ

(5) ޥå
    ǥեȤΥޥåסѹˡ

(a) ROM
0x0000,0000 - 0x0008,0000 ¢FlashROM 512KB
vector
text
vector_entry
0x0c00,0000 - 0x0cff,ffff SRAM 16MB
data
bss
0xfff8,0000 - 0xfff8,7fff ¢RAM 32KB
󥿥ƥѥå

(b) ǥХå
0x0c00,0000 - 0x0cff,ffff SRAM 16MB
vector
text
vector_entry
data
bss
0xfff8,0000 - 0xfff8,7fff ¢RAM 32KB
󥿥ƥѥå

 ܥͥROM򥵥ݡȤƤ롥ͥեå˽
ǡ¹Ԥˤ Makefile.target ˤ ROM_BOOT  true 
Ф褤

ޥåפ˴ؤMakefile.target 

ROM_BOOT
  ROMtrue

TEXT_START_ADDRESS/DATA_START_ADDRESS
  ƥȥ󡤥ǡγϥɥ쥹

(6) ޥɥ饤дϢξ
    ƥåμѹˡ
    ǥեȤǤϡ1[msec]Ƥ롣
	ѹˤϡޥTIC_NUMETIC_DENOѹ뤳ȡ
	ꡧtarget_kernel.h
    
    Ѥ꥽ʥޡ
    CMT0ѤƤ롣

	޳ߤγͥ٤ѹˡ
	ޥINTPRI_TIMERѹ롣
	ǥեȤǤINTPRI_TIMER=-6ȤƤ롣
	ꡧasp/arch/sh12a_gcc/prc_cmt.h
	
	Х󥿥޳ߤγͥ٤ѹˡ
	ݡȤʤ

(7) ꥢ륤󥿥եɥ饤Фξ
    Ѥ꥽SIOȥ
		󥽡ϤˤϡSCIFΥͥ1Ѥ롥AP-SH2A-0A Ǥ
		SCIFΥͥ1ϡCN5³Ƥ롥

  ݡȿޥTNUM_PORTTNUM_SIOPȤƤ롣
 ʥǥեȤǤ2
	ꡧtarget_syssvc.h

	̿ѥ᡼
	ʥܡ졼ȡӥåȿѥƥ̵ͭȥåץӥåȡ
	ܡ졼ȡ38400bps
	ꡧtarget_syssvc.hΥޥBPS_SETTING
	ӥåȿ8ӥå
	ѥƥ̵ͭʤ
	ȥåץӥåȡ1

(8) ƥǽξ
    ƥ٥Ϥμ¸ˡ
 	ǥեȤǤϡSCIF1ǥݡ󥰽ϤԤäƤ롣
	̿ѥ᡼ʥܡ졼ȡӥåȿѥƥ̵ͭȥåץӥåȡ
	(6) ꥢ륤󥿥եɥ饤Фξפ򻲾ȡ

(9) ¾ѹˡ

ĤΥѥ᡼ѹǽˤʤäƤ롥եǽ
ϼΤ褦ˤʤäƤ롥
Makefile.targetԽϡmake realcleanmake depend١
¹Ԥ뤳ȡ

Makefile.target 
ޥåפ˴ؤܤϡ(5) ޥåספ򻲾ȡ

GCC_TARGET
  GCC suffix 

INCLUDES
  󥯥롼ɻ

COPTS
  CѥؤΥץ

LDFLAGS
  󥫤ؤΥץ

HEW_SIMULATOR
ѿtrueꤹȥޥTOPPERS_HEW_SIMULATOR졢
ꥢɥ饤ФHEWI/Oߥ졼бɤ֤
롣ʥꥢϤ٤ƥݡ󥰤ˤʤ롣
ܺ٤ϡƥ¸prc_user.txt
TOPPERS_HEW_SIMULATORޥפ򻲾

target_config.h 

DEFAULT_ISTKSZ
  ǥեȤ󥿥ƥѤΥå

DEFAULT_ISTK_BOTTOM
  ǥեȤ󥿥ƥѤΥåνλ
  󥿥ƥѥåݥ󥿤ν͡

SIL_DLY_TIM1/2
  ԤΤ

STBCR2_VALUESTBCR4_VALUE
STBCR24쥸ν͡ʳ1Хȡ
ƥ⥸塼ؤŸϡΥޥ롣


(10) ƥ๽ۼ
 doc/user.txtΡ֣åȥɡפ򻲾ȡ

(11) åȥƥͭջ
    ƥȤ˴ޤޤ쥸ޤޤʤ쥸
 	ƥ¸prc_user.txt򻲾

(12) ΥåȤ˥ݡƥ󥰤볫ȯԸλ;

APSH2AåȰ¸ǻѤ륿ޤ䥷ꥢϡSH7211¢ǽ
ߤѤ뤿ᡤSH7211ᤤSH2AѤĶˤưפ˥ݡƥ
󥰤ǽǤ롥ݡƥ󥰤˴ؤƤϡʲν롼˥
åνɲäФ褤

  target_initialize() : target_config.c
    åȰ¸νC
  _hardware_init_hook : target_support.S
    ٥ΥåȰ¸ν
    ȥåץ⥸塼ǡν˸ƤӽФ

(13) ǥ쥯ȥ깽ե빽
 	target/apsh2a_gcc/
		Makefile.target			MakefileΥåȰ¸
		target_stddef.h			t_stddef.hΥåȰ¸
		target_sil.h			sil.hΥåȰ¸
		target_kernel.h			kernel.hΥåȰ¸
		target_config.h			ͥΥåȰ¸
		target_config.c			ͥΥåȰ¸Ϣ
								
		target_support.S		ͥΥåȰ¸Ϣ
								ʥ֥
		target_rename.def		åȰ¸̾Υ͡
								
		target_rename.h			åȰ¸̾Υ͡
		target_unrename.h		åȰ¸̾Υ͡
								
		target_timer.cfg		ޥɥ饤ФΥե졼
								ե
		target_timer.h			ޥɥ饤ФѤ뤿
		apsh2a.h				åȤΥϡɥ񸻤
		target.tf				kernel.tfΥåȰ¸
		target_check.tf			kernel_check.tfΥåȰ¸
		target_cfg1_out.h		cfg1_out.cΥ󥯤ɬפʥ֤
		target_syssvc.h			ƥॵӥΥåȰ¸
		target_serial.cfg		serial.cfgΥåȰ¸
		target_serial.h			serial.hΥåȰ¸
		target_serial.c			serial.cΥåȰ¸
		target_test.h			ƥȥץΥåȰ¸
		target_user.txt			åȰ¸Υ桼ޥ˥奢
		MANIFEST				̥ѥåΥեꥹ
		E_PACKAGE				ʰץѥåΥեꥹ

(14) С

'11/08/09 Release1.7.1
ƥѥޥRAISE_CPU_EXCEPTIONμ
ʥå򤵤PCͤ³̿˱ƶ뤿

'11/07/19 
ͥγߤ򥵥ݡ

'11/06/24 
ꥢɥ饤Фѹ
  ꥢݡȤνԤ֤λޥ
  SIO_INIT_DLYˤѹ
  ֹȥݡIDбطPDIC饿åȰ¸
  ˰ư
  IRCˤ߶ػߡĤ⥿åȰ¸ǹԤ

'11/05/10 Release1.7.0
¸Release1.7.0б

'11/01/12 
쥸Υɥ쥹ޥ̾˥ɽեå
_b1Хȡ,_h2Хȡ,_w4Хȡˤɲ

'11/01/07 
Makefile.target
kernel_cfg.timestampshxxxx.tfΰ¸ط
Makefile.targetMakefile.sh2a˰ư
ѿCHIPɲ

'10/12/20 
Makefile.target
ѿPRCDIRPRCѿذư

'10/12/16 
Makefile.target
kernel_cfg.timestampsh7211.tfΰ¸طˤĤɵ
ƥ¸ؤΥѥѿPRCDIRɲ

'10/09/22 Release 1.6.0
Сֹ򹹿

'10/09/17 
ɥȤι¸Release 1.6.0Υݡƥ󥰥ɤ
9.1 ɥȡפ˽

'10/09/15 
prc_terminateprc_exit˥͡
.globl.global

'10/09/09
¸Release1.6.0б

'10/07/05 
ƥ¸prc_timer.h/c/cfgprc_cmt.h/c/cfg˥͡
ʥåפˤꡢ¢ޤμबۤʤ뤿

'10/07/02 
pdic/sh/sh_scif.c
sh_scif_pol_putc()ꥨȥȤ˽
target_fput_log()ꥨȥȤ
бgccΥС4.3.2ѹ
ߤĤldc̿ΰ
ʲΥޥ
LDC_NOP_DISPATCHER
LDC_NOP_SET_SR
LDC_NOP_SIL_SET_IIPM

'10/07/01 
̥ѥåpdic/shޤޤƤʤԶ

'10/06/07 
ꥢɥ饤ФHEWI/Oߥ졼б

'10/01/20 Release 1.4.2
ROMưʤԶ
ƥ⥸塼ؤŸޥSTBCR2_VALUESTBCR4_VALUE
Ǥ褦ѹ

'09/11/24 
󥿥ƥѤΥåΰνλϡ
Makefile.targettarget_config.h˰ư
̾ΤDEFAULT_STK_TOPDEFAULT_ISTK_BOTTOMѹ

'09/11/17 Release 1.4.1
Сֹ򹹿
test_log.txt

'09/11/05 
SIL_DLY_TIM1SIL_DLY_TIM2ͤĴ

'09/07/13 
target_support.S
ǡλľ
PCܻȤʤ٤ڥɤˤ褦
ƥॳȥ쥸ꤹ
	SYSCRn쥸ؤΥ饤̿ľ˥꡼֤̿롣

'09/05/07 Release 1.4.0
¸Release 1.4.0б

'09/04/03 
_hardware_init_hook
ϥ⡼ɤtarget_initialize()˰ư
ʥ֥쵭Ҥ顢C쵭Ҥء

'09/04/02 
target_support.S
쥸Υɥ쥹򥢡ƥ¸˰ư

'09/03/27 
target_timer.cfg
prc_timer.cfgؤΥѥasp/archХѥ˽
ԡ饤Ȥɲ

'09/03/24 
ץå¸Makefile.prcθƤӽФ򥳥¸Makefile.sh2a
ѹ

'08/05/19 
prc_initialize, prc_terminateΥܥ͡
ƥ¸ǹԤ褦ѹ

'08/05/13 Release1.3.1
ꥢݡȤγֹΥޥ̾sh3,sh4ȹ碌
SCIFx_RXI_INTNO, SCIFx_TXI_INTNO (x=0, 1, 2, 3)

'08/05/12 Release1.3.0
¸ѹƤб
Ŭк̵¥롼פvolatileѿѤƤΤ򸵤ᤷ
while(i)while(1)ѹ
target_config.ctarget_exit(void)
apsh2a.hapsh2a_exit(void)
target_stddef.hTOPPERS_assert_abort(void)

'08/03/13 Release1.1.2
HEWǤƱ
target_support.S
Хơȥȥθ
target_config.h
SIL_DLY_TIM1SIL_DLY_TIM2ͤθľ
test_log.txtߡasp/test/test_dlynse.cμ¹Է̤Ͽ

'08/02/05 Release1.1.1
ROMκݤdataΥɥ쥹ޥåԥ󥰤ˤʤб
ꥢɥ饤
ݡֹ˸̤˳߶ػߡĤ褦˽
target_config.c
target_exit()
while(1)̵¥롼פŬˤǽΤǡ
volatileѿ˥褦˽
