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

            Release 1.4.4бǽ: 19-May-2011

------------------------------------------------------------------------ 
 TOPPERS/JSP Kernel

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

 Copyright (C) 2006-2010 by Witz Corporation, JAPAN

 The above copyright holders grant permission gratis to use,
 duplicate, modify, or redistribute (hereafter called use) this
 software (including the one made by modifying this software),
 provided that the following four conditions (1) through (4) are
 satisfied.

 (1) When this software is used in the form of source code, the above
     copyright notice, this use conditions, and the disclaimer shown
     below must be retained in the source code without modification.

 (2) When this software is redistributed in the forms usable for the
     development of other software, such as in library form, the above
     copyright notice, this use conditions, and the disclaimer shown
     below must be shown without modification in the document provided
     with the redistributed software, such as the user manual.

 (3) When this software is redistributed in the forms unusable for the
     development of other software, such as the case when the software
     is embedded in a piece of equipment, either of the following two
     conditions must be satisfied:

   (a) The above copyright notice, this use conditions, and the
          disclaimer shown below must be shown without modification in
       the document provided with the redistributed software, such as
       the user manual.

   (b) How the software is to be redistributed must be reported to the
       TOPPERS Project according to the procedure described
       separately.

 (4) The above copyright holders and the TOPPERS Project are exempt
     from responsibility for any type of damage directly or indirectly
     caused from the use of this software and are indemnified by any
     users or end users of this software from any and all causes of
     action whatsoever.

 THIS SOFTWARE IS PROVIDED "AS IS." THE ABOVE COPYRIGHT HOLDERS AND
 THE TOPPERS PROJECT DISCLAIM ANY EXPRESS OR IMPLIED WARRANTIES,
 INCLUDING, BUT NOT LIMITED TO, ITS APPLICABILITY TO A PARTICULAR
 PURPOSE. IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS AND THE
 TOPPERS PROJECT BE LIABLE FOR ANY TYPE OF DAMAGE DIRECTLY OR
 INDIRECTLY CAUSED FROM THE USE OF THIS SOFTWARE.

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

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

 @(#) $Id: tlcs900.txt,v 1.3 2007/05/21 01:21:47 honda Exp $
------------------------------------------------------------------------

1  TLCS900 åȰ¸γ

1.1  åȥƥȳȯĶ

TLCS900ץåΥåȥƥϡޥǥ󹩶ȳҤZup-F16
ĥܡɤȤ򥵥ݡȤƤ롥Zup-F16ĥܡɤTMP91CY22-CPU
Ƥ롥

1.2  ȯĶȼ¹ԴĶ

Zup-F16ĥܡɥåȤƱƤCD-ROMǥߥ
γȯĶ(TOSHIBA IDE)ѤƳȯԤ
JSP1.4.4Windows(ʸSJIS ԥCRLF)¹Ԥǽǥꥢ
ݡȤĥѥ󤬤Сۡܡɾ¹ԤǽǤ롥

1.3  ݡȤ뵡ǽγ

ߥޥѹ (chg_ixx get_ixx)ϥݡȤƤ뤬ǽ
ɾѥƥﻲȵǽ (vxget_tim) ߤζػߤȵ
(dis_intena_int) ϥݡȤƤʤ

1.4  ¾ΥåȤؤΥݡƥ

TLCS900꡼ǤХƥ¸νΤߤǥݡƥ󥰤ǽ
פ롥ޤ¾Υ꡼CPUǤ⹽¤礭äƤʤС
פ˥ݡƥ󥰤ϲǽǤ롥ʤƥȴĶԹ塤Zup-F16ĥ
ɰʳǤưǧϹԤäƤʤ

1.5  ꥢݡ (SIO)

ܡɾUART1Ƥ롥ݡƥ󥰤ˤƤϡUART0/1ξ
Ȥưǽʤ褦θƤ뤬ưǧUART1Τ߹ԤäƤ롥
ꥢݡȤϰʲ̤Ǥ롥 

	ܡ쥤ȡ19200bps
	ǡĹ8 ӥåȡ
	ȥåץӥåȡ1 ӥå
	ѥƥʤ

1.6  оݤȤʸɤȲԥ

Windows(ʸSJIS ԥCRLF)оݤȤƤ롥ʤ
ե졼 cfg.exe ҤMinGWǥӥɤϡʸEUC
ԥLFǤ뤳ȤΤޤΤᡤcfgʲΥɤ
ʸEUCԥLFѴ뤫ɸ(ʸECU ԥ
LF)cfgʲǥӥɤ cfg.exe򥳥ԡѤ뤳Ȥ侩롥

2  TLCS900 ץå¸εǽ

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

2.1  ǡ

int  unsigned int Υ 16ӥåȤǤ롥ޤ_int64_б
Ƥʤݥ󥿷Υ 32ӥåȤǤ롥

2.2  ߴǽȳߥϥɥ

ͥγߤ NMI ΤߤǤ롥CPUå֤롼
Ǥ NMI ʳγߤƶػߤ롥Ūˤϡߥޥ
ꤵ롥

ߥϥɥCPU֤Ū֤롥ܳȯĶǤϥե
졼󤫤kernel_cfg.cƤ̤ưŪŪ
ߥϥɥ桼ƥƥѰդƤ롥Υ桼ƥ
utils/tlcs900-toshibaǥ쥯ȥꥣtlcs900vec.exeޥɤǡץ
ѥ뤵줿kernel_cfg.cƤϤߥ٥ơ֥ե
Ǥtlcs900vec.inc롥tlcs900vec.incCPUΥȥåץ
塼Ǥstart.app˥󥯥롼ɤƤꡤե졼
եγߥϥɥROMŪ֤롥
ʤߥϥɥ餬Ͽʤäװˤϡ̤ѳ߽
_unused_interrupt Ͽ롥ޤװֹ棱ϥȥå
 _start Ͽ롥
DEF_INH ǻꤹߥϥɥֹinhnoˤϡTMP91CY22 ǤΥ٥
ɽΥǡINHNOˤunsigned intƤ롥
DEF_INH ǡ٥ͤȤͭǤʤͤ䡤ߤбʤͤ
ꤷưݾڤʤ

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

TLCS900 ¸γߥޥѹΤΥӥλͤϰ
̤Ǥ롥

(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  06 ꤷ
Ǥ⡤ǥѥå϶ػߤʤޤꤷ 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 㳰ϥɥ

CPU㳰ȤơϡɥΥޥ֥ߤȥեȥΥޥ
֥ߤ롥ϡɥΥޥ֥ΥꥻåȤ
ϥɥ꤬ǽǤ롥
CPU㳰ϥɥϳߥϥɥƱͤCPU֤Ū֤
CPU㳰ϥɥ˴ؤƤߥϥɥƱͤtlcs900vec.exeѤơ
ưŪŪCPU㳰ϥɥ뤳ȤǤ롥Υǡϳ
ϥɥƱͤtlcs900vec.incꤵ롥
DEF_EXC ǻꤹߥϥɥֹexcnoˤϡM16CǤ㳰٥
ֹɽΥǡEXCNOˤ unsigned intƤ롥
DEF_EXC ǻꤹCPU㳰ϥɥֹexcnoˤϡTMP91CY22 ǤΥ٥
ͤɽΥǡEXCNOˤunsigned intƤ롥
DEF_EXC ǡ٥ͤȤͭǤʤͤꤷưݾڤ


2.4  ȥåץ⥸塼

TLCS900 ¸Υȥåץ⥸塼 (start.app) ϼ˼
¹Ԥ塤ͥ (kernel_start) ư롥 kernel_start 
äƤ뤳ȤꤷƤʤ

(1) ߤζػ

(2) åݥ󥿤

(3) ߥͥȥ쥸ν

(4) hardware_init_hook θƽФ

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

(5) area dataν

area򥼥ꥢ롥ޤdata롥

(6) software_init_hook θƽФ

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

(7) ͥεư

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

3  Zup-F16-ex ƥ¸εǽ

3.1  ƥ९åɥ饤

ƥ९åɥ饤Фisig_timƤӽФϡsys_defs.h
TIC_NUMETIC_DENOƤɸ 1ߥüˡ
뤳Ȥǡisig_timƤӽФѹ뤳ȤǤ롥
ޤ٤50٤Ǥ뤿ᡤ50ñ̤üˤʤͤꤷ
ˤϡisig_timθƽФ˸뤳Ȥˤʤ롥

3.2  ꥢ륤󥿥եɥ饤

Zup-F16ĥܡɤǤUART1ΥꥢݡȤܡɾ˼Ƥ롥
ΤUART1Ѥ˻ѤƤ롥

3.3  ޥå

	0x000000 - 0x0003ff		IO(SFR)ΰ
	0x001000 - 0x004bff		¢ RAM area data
	0x004c00 - 0x004fff		¢ RAM stack
	0x100000 - 0x200000		 RAM ̤
	0xfc0000 - 0xfffeff		¢ ROM code const
	0xffff00 - 0xffffff		¢ ROM vecter

4  ȯ

4.1  ȯĶι

ȯĶϡWindows XPѤZup-F16ĥܡɥåȤƱƤ
CD-ROMǥߥγȯĶ(TOSHIBA IDE)ѤƳȯ
ԤʤͥΥ饤֥경ϹԤäƤʤ

	ѤȯĶΥС
		TIDE 2.3.1.1

4.1.1  ġι

utils/tlcs900-toshiba Υġ tlcs900offset.exe  tlcs900vec.exe 
ۤޤ.
utils/tlcs900-toshiba  Microsoft Visual Studio 2010 ڡ
եtlcs900_toshiba.sln 򳫤ޤӥɥ˥塼ˤƤ줾Υ
Ȥӥɤtlcs900offset.exe  tlcs900vec.exe ޤ
ɬפ˱ƥӥɥ˥塼ΥХåӥɤѤ뤫ƥ֤ʥץ
ȤιѤƥץȤѹӥɤԤäƤ

ʤͥ빽ۤˤäƤϡե졼Ѥޤ
ե졼Τιˡ user.txt 򻲾ȤƤ

4.1.2  ץץȤΥӥ

Zup-F16ĥܡɥåȤƱƤCD-ROMǥߥ
γȯĶ(TOSHIBA IDE)򥤥󥹥ȡ뤹롥TOSHIBA IDE ư
tools/TLCS900-TOSHIBATOSHIBA IDEڡե
TLCS900-TOSHIBA.tws 򳫤ޤӥɥ˥塼ӥɤԤޤ
ƥ֤ʥץȤιˤtools/TLCS900-TOSHIBA/Zup-F16-ex
 release ޤ debug ؤˡɥ⥸塼ե
Zup-F16-ex.h20 ޤ

4.1.3  եåROMؤν

Zup-F16ĥܡɥåȤƱƤCD-ROMΥޥǥ󹩶ȳ
ΥץǤդγؤ˥ԡ롥ץư
롥λѤCOMݡȤʤɤץƱؤ
ե FROMLoad.ini ꤹɬפ롥ѥZup-F16
ĥܡɤ򥷥ꥢ륯֥³Zup-F16ĥܡɤ sw1 
B ¦ꤷơZup-F16ĥܡɤŸONˤ롥ץ
ե˥塼ˤơϤɥ⥸塼եꤷ
ߥܥˤƥեåROMؤνߤԤ

4.1.4  sample1μ¹

ѥ˥ꥢ륿ߥʥΩ夲Ƥ
ϰʲ̤Ǥ

	ܡ쥤ȡ19200bps
	ǡĹ8 ӥåȡ
	ȥåץӥåȡ1 ӥå
	ѥƥʤ

Zup-F16ĥܡɤ sw1  B ȿ¦ꤷơZup-F16ĥܡɤ
ŸONˤ sample1 ¹Ԥޤsample1 ξܺ٤ sample1.c
եΥإåʬ򻲾ȤƤ

4.2  ǥХå

ȯĶ(TOSHIBA IDE)ˤϥߥ졼ǥХå°Ƥ뤬ꥢ
̿Υߥ졼ʤɤפʤ¤ꡤͥ뵯ưΥ
ϽˤλԤ֤Τޤ̵¥롼פƤޤΤᡤ
̿ǽߡʾʤȤ sys_config.c ˼Ƥ sys_putc
ν̵֤ˤˤư뤳ȤǡưǽǤ롥ʤ
ϥߥ졼ǥХåǤưݾ㤹ΤǤϤʤ

5  ¾

5.1  ǥ쥯ȥꡦե빽

(1)   config/tlcs900-toshiba

	api.h					饤֥ꥣΤ
	cpu_config.c			TLCAS900 CPU¸ C ؿ
	cpu_config.h			TLCAS900 CPU¸Υͥ
	cpu_context.h			TLCAS900 CPU¸Υƥ
	cpu_defs.h				TLCAS900 CPU¸Υץꥱ
	cpu_insn.h				TLCAS900 CPU¸٥ؿ
	cpu_rename.def			ͥ̾Υ͡Ȥβꥹ
	cpu_rename.h			ͥ̾Υ͡
	cpu_support.app			TLCAS900 CPU¸Υ֥ؿ
	cpu_unrename.h			ͥ̾Υ͡
	kernel_inline_defs.h	ͥ inline ؿ
	makeoffset.c			offset.inc ؿ
	start.app				ȥåץ⥸塼
	tool_config.h			ȯĶ¸Υͥ
	tool_defs.h				ȯĶ¸Υץꥱ

(2)   config/tlcs900-toshiba/zup_f16_ex

	hw_serial.cfg	Zup-F16-exSIOɥ饤ФΥե졼ե
	hw_serial.h		Zup-F16-exSIOɥ饤
	hw_timer.h		Zup-F16-exѥ롼
	sys_config.c	Zup-F16-exƥ¸ C ؿ
	sys_config.h	Zup-F16-exƥ¸Υͥ
	sys_defs.h		Zup-F16-exƥ¸Υץꥱ
	sys_rename.def	ͥ̾Υ͡Ȥβꥹ
	sys_rename.h	ͥ̾Υ͡
	sys_support.app	Zup-F16-exƥ¸Υ֥ؿ
	sys_unrename.h	ͥ̾Υ͡
	tmp91cy22.h		¢IO(SFR)ӴϢ
	uart.c			Zup-F16-exSIOɥ饤м֤ C ؿ
	uart.h			Zup-F16-exSIOɥ饤м֤
	zup_f16_ex.lcf	Zup-F16-exѥ󥫥ޥɥե

(3)   tools/TLCS900-TOSHIBA

	TLCS900-TOSHIBA.tws	ȯĶѥڡե

(4)   utils/tlcs900-toshiba

	tlcs900_toshiba.dsw	桼ƥƥȯѥڡե
	ܳؤξܺ٤ utils/tlcs900-toshiba ˤ readme.txt 򻲾ȡ

ʾ

