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

            Release 1.4.3бǽ: 17-Apr-2007

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

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

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

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

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 ӥå
	ѥƥʤ

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 2000Windows 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 C++ ڡե
tlcs900_toshiba.dsw 򳫤ޤӥɥ˥塼ˤƤ줾Υץ
Ȥӥɤtlcs900offset.exe  tlcs900vec.exe ޤɬפ
ƥӥɥ˥塼ΥХåӥɤѤ뤫ƥ֤ʥץ
ȤιѤƥץȤѹӥɤԤäƤ

ʤͥ빽ۤˤäƤϡե졼Ѥ뤿ᡤƱ
ˡ cfg/vc_project  configurator.dsw 򳫤cfg.exe ۤ
Ƥ

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 򻲾ȡ

ʾ

