             TOPPERS/JSPJ[l [UY}jA 
                         iTLCS900 ^[Qbgˑj

            iRelease 1.4.3ΉCŏIXV: 17-Apr-2007j

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

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

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

 L쌠҂́Cȉ (1)`(4) ̏CFree Software Foundation 
 ɂČ\Ă GNU General Public License  Version 2 ɋL
 qĂ𖞂ꍇɌC{\tgEFAi{\tgEFA
 ς̂܂ށDȉjgpEEρEĔzziȉC
 pƌĂԁj邱Ƃ𖳏ŋD
 (1) {\tgEFA\[XR[ȟ`ŗpꍇɂ́CL̒
     \C̗pщL̖ۏ؋K肪Ĉ܂܂̌`Ń\[
     XR[hɊ܂܂Ă邱ƁD
 (2) {\tgEFACCu`ȂǁC̃\tgEFAJɎg
     pł`ōĔzzꍇɂ́CĔzzɔhLgip
     ҃}jAȂǁjɁCL̒쌠\C̗pщL
     ̖ۏ؋Kfڂ邱ƁD
 (3) {\tgEFAC@ɑgݍނȂǁC̃\tgEFAJɎg
     płȂ`ōĔzzꍇɂ́Ĉꂩ̏𖞂
     ƁD
   (a) ĔzzɔhLgip҃}jAȂǁjɁCL̒
       쌠\C̗pщL̖ۏ؋Kfڂ邱ƁD
   (b) Ĕzž`ԂCʂɒ߂@ɂāCTOPPERSvWFNg
       񍐂邱ƁD
 (4) {\tgEFA̗pɂ蒼ړI܂͊ԐړIɐ邢Ȃ鑹
     QCL쌠҂TOPPERSvWFNgƐӂ邱ƁD

 {\tgEFÁCۏ؂Œ񋟂Ă̂łDL쌠҂
 TOPPERSvWFNǵC{\tgEFAɊւāC̓Kp\
 ܂߂āCȂۏ؂sȂD܂C{\tgEFA̗pɂ蒼
 ړI܂͊ԐړIɐȂ鑹QɊւĂC̐ӔC𕉂ȂD

 @(#) $Id: tlcs900.txt,v 1.1 2008/06/17 00:04:40 suikan Exp $
------------------------------------------------------------------------

1  TLCS900 ^[Qbgˑ̊Tv

1.1  ^[QbgVXeƊJ

TLCS900vZbT̃^[QbgVXéC^}fHƊЂZup-F16
g{[hƂT|[gĂDZup-F16g{[hTMP91CY22-CPU𓋍
ĂD

1.2  JƎs

Zup-F16g{[hLbgɓĂCD-ROM̓ŃZ~R_N^А
̊J(TOSHIBA IDE)gpĊJsD
JSP1.4.2WindowsŎs\ŃVA|[gp\R΁C
\zC{[hs\łD

1.3  T|[g@\̊Tv

݃}XN̕ύXEQ (chg_ixxC get_ixx)̓T|[gĂ邪C\
]pVXeQƋ@\ (vxget_tim) C荞݂̋֎~Ƌ
(dis_intCena_int) ̓T|[gĂȂD

1.4  ̃^[Qbgւ̃|[eBO

TLCS900V[Ył΃VXeˑ̏Ĉ݂Ń|[eBO\
vD܂C̃V[YCPUł\傫ĂȂ΁Ce
ՂɃ|[eBO͉\łDȂCeXg̓sCZup-F16g{
[hȊOł̓mF͍sĂȂD

1.5  VA|[g (SIO)

{[hUART1ĂD|[eBOɂẮCUART0/1
Ƃ\Ȃ悤ɔzĂ邪CmFUART1̂ݍsĂD
VA|[g̐ݒ͈ȉ̒ʂłD 

	E{[CgF19200bps
	Ef[^F8 rbgD
	EXgbvrbgF1 rbg
	EpeBFȂ

2  TLCS900 vZbTˑ̋@\

̐߂ł́CJ[lуVXeT[rX̋@\̒ŁCTLCS900ˑ
ɂĉD

2.1  f[^^

int ^ unsigned int ^̃TCY 16rbgłD܂C_int64_͑Ή
ĂȂD|C^^̃TCY 32rbgłD

2.2  ݊Ǘ@\Ɗ݃nh

J[lǗO݂̊ NMI ݂̂łDCPUbNԂ⏉[`
ł NMI ȊO݂̊͑Sċ֎~D̓Iɂ́C݃}XNV
ɐݒ肳D

݃nhCPU̐ݒʒuɐÓIɔzuD{Jł̓RtB
M[V琶kernel_cfg.c̓eʂCIɐÓI
݃nh𐶐郆[eBeBpӂĂD̃[eBe
Butils/tlcs900-toshibafNgBtlcs900vec.exeR}hŁCv
RpCꂽkernel_cfg.c̓e͂݃xN^e[ut@C
łtlcs900vec.inc𐶐Dtlcs900vec.incCPŨX^[gAbv
W[łstart.appɃCN[hĂCRtBM[V
t@C̊݃nhݒROMɐÓIɔzuD
ȂC݃nho^Ȃݗvɂ́Cgpݏ
_unused_interrupt o^D܂CݗvԍP̓X^[gAbv
 _start o^D
DEF_INH Ŏw肷銄݃nhԍiinhnoj́CTMP91CY22 ł̃xN^l
\C̃f[^^iINHNOjunsigned int^ɒ`ĂD
DEF_INH ŁCxN^lƂėLłȂlCO݂ɑΉȂlw
肵ꍇ͕̓ۏ؂ȂD

chg_ipm T|[g邽߂ɁC݃nh̏oȂǂɃI[owb
h𐶂ĂDŁCSUPPORT_CHG_IPM Ƃ}NɂC̃T[
rXR[T|[g邩ǂ؂ւ悤ɂĂD
SUPPORT_CHG_IPM ́Ccpu_config.h ̒Ń}N`ĂD

TLCS900 ˑ̊݃}XN̕ύXE擾̂߂̃T[rXR[̎dl͈
̒ʂłD

(1) chg_ipm			݃}XN̕ύX

yCAPIz
	ER ercd = chg_ipm(IPM ipm);

yp[^z
	IPM	ipm		ݒ肷ׂ IPM ̒l

y^[p[^z
	ER	ercd		G[R[h

yG[R[hz
	E_CTX		ReLXgG[
	E_PAR		p[^G[iipm sj

y@\z

IPMiInterrupt Priority Maskj ipm Ŏw肳ꂽlɐݒ肷Dw肵
l 0`6 ȊȌꍇCE_PARG[ƂȂDIPM  0`6 ɐݒ肵ꍇ
łCfBXpb`͋֎~ȂD܂Cݒ肵 IPM ̒ĺCfBXpb
`pDfBXpb`֎~ꍇɂ́Cdis_dsp ƕp
΂悢D

ȂC̃T[rXR[pāCIPM  7 iׂĂ݂̊֎~j
ݒ肷邱Ƃ͂łȂDIPM  7 ɂꍇɂ́Cloc_cpu gׂ
łD

̃T[rXR[́C^XNReLXg CPUbNԂ̎̂݌
яoƂłD^XNReLXg CPUbNԂŌĂяo
ɂ́CE_CTXG[ƂȂD

(2) get_ipm			݃}XN̎擾

yCAPIz
	ER ercd = get_ipm(IPM *p_ipm);

yp[^z
	Ȃ

y^[p[^z
	ER	ercd		G[R[h
	IPM	ipm		݂ IPM ̒l

yG[R[hz
	E_CTX		ReLXgG[

y@\z

݂ IPMiInterrupt Priority Maskj̒lǂݏoCipm ɕԂD

̃T[rXR[́C^XNReLXg CPUbNԂ̎̂݌
яoƂłD^XNReLXg CPUbNԂŌĂяo
ɂ́CE_CTXG[ƂȂD

2.3  CPU OǗ@\ CPU Onh

CPUOƂāCn[hEFAm}XJu݂ƃ\tgEFAm}XJ
u݂Dn[hEFAm}XJuݒ̃Zbg
nh̐ݒ肪\łD
CPUOnh͊݃nhƓlCPU̐ݒʒuɐÓIɔzu
DCPUOnhɊւĂ݃nhƓltlcs900vec.exepāC
IɐÓICPUOnh𐶐邱ƂłD̃f[^͊
nhƓltlcs900vec.incɐݒ肳D
DEF_EXC Ŏw肷銄݃nhԍiexcnoj́CM16Cł̗OxN^
ԍ\C̃f[^^iEXCNOj unsigned int^ɒ`ĂD
DEF_EXC Ŏw肷CPUOnhԍiexcnoj́CTMP91CY22 ł̃xN^
l\C̃f[^^iEXCNOjunsigned int^ɒ`ĂD
DEF_EXC ŁCxN^lƂėLłȂlw肵ꍇ͕̓ۏ؂
D

2.4  X^[gAbvW[

TLCS900 ˑ̃X^[gAbvW[ (start.app) ͎Ɏ
sCJ[l (kernel_start) NDC kernel_start 
߂Ă邱Ƃ͑z肵ĂȂD

(1) ݂̋֎~

(2) X^bN|C^̐ݒ

(3) ݃lXgWX^̏

(4) hardware_init_hook ̌ďo

hardware_init_hook  0 łȂꍇɂ́Chardware_init_hook ĂяoD
hardware_init_hook ́CJ[lNOɍsKv^[Qb
gˑ̏s߂ɗpӂĂDhardware_init_hook ǂł
`ĂȂꍇCJł̃V{ 0 ɒ`iJXN
vgɋLqjD

(5) areaZNV dataZNV̏

areaZNV[NAD܂CdataZNVD

(6) software_init_hook ̌ďo

software_init_hook  0 łȂꍇɂ́Csoftware_init_hook ĂяoD
software_init_hook ́CJ[lNOɍsKv\tgEF
Ai̓Iɂ́CCujˑ̏s߂ɗpӂĂD
software_init_hook ǂł`ĂȂꍇCJł̃V{
 0 ɒ`iJXNvgɋLqjD

(7) J[l̋N

kernel_start ֕򂵁CJ[lNDkernel_start 烊^[
Ă邱Ƃ͑z肵ĂȂD

3  Zup-F16-ex VXeˑ̋@\

3.1  VXeNbNhCo

VXeNbNhCoisig_timĂяóCsys_defs.h
TIC_NUMETIC_DENOŒ`ĂiW 1~bjD̒`
X邱ƂŁCisig_timĂяoύX邱ƂłDC^
C}̐x50ʕbxł邽߁C50ʕbPʂŒ[ɂȂlݒ肵
ɂ́Cisig_tim̌ďoɌ덷邱ƂɂȂD

3.2  VAC^tF[XhCo

Zup-F16g{[hłUART1̃VA|[g{[hɎĂD
̂UART1Oo͗pɎgpĂD

3.3  }bv

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

4  J

4.1  J̍\z

J́CWindows 2000Windows XPpDZup-F16g{[hLbg
ɓĂCD-ROM̓ŃZ~R_N^А̊J(TOSHIBA IDE)
gpĊJsDȂCJ[l̃Cu͍sĂȂD

	gpJ̃o[W
		TIDE 2.3.1.1

4.1.1  c[̍\z

utils/tlcs900-toshiba ̃c[ tlcs900offset.exe  tlcs900vec.exe 
\z܂.
utils/tlcs900-toshiba  Microsoft Visual C++ [NXy[Xt@C
tlcs900_toshiba.dsw J܂Drhj[ɂĂꂼ̃vWFN
grhCtlcs900offset.exe  tlcs900vec.exe 𐶐܂DKv
ărhj[̃ob`rhgp邩CANeBuȃvWFN
g̍\gpăvWFNgύXCrhsĂD

ȂAJ[l\zɂẮARtBM[^gp邽߁Cl
̕@ cfg/vc_project  configurator.dsw JCcfg.exe \z
ĂD

4.1.2  TvvWFNg̃rh

Zup-F16g{[hLbgɓĂCD-ROM̓ŃZ~R_N^
̊J(TOSHIBA IDE)CXg[DTOSHIBA IDE NC
tools/TLCS900-TOSHIBATOSHIBA IDE[NXy[Xt@C
TLCS900-TOSHIBA.tws J܂Drhj[胊rhs܂D
ANeBuȃvWFNg̍\ɂtools/TLCS900-TOSHIBA/Zup-F16-ex
 release ܂ debug KwɁC[hW[t@C
Zup-F16-ex.h20 ܂D

4.1.3  tbVROMւ̏

Zup-F16g{[hLbgɓĂCD-ROM̃^}fHƊ
̃[_vOCӂ̊KwɃRs[D[_vON
D̎gpCOM|[g̐ݒȂǂ[_vOƓKw
ݒt@C FROMLoad.ini ɐݒ肷KvDp\RZup-F16
g{[hVANXP[uŐڑCZup-F16g{[h sw1 
B ɐݒ肵āCZup-F16g{[h̓dONɂD[_vO
t@Cj[ɂāCO͂Ő[hW[t@Cw肵C
݃{^ɂătbVROMւ݂̏sD

4.1.4  sample1̎s

p\RɃVA^[~i𗧂グĂD
ݒ͈ȉ̒ʂłD

	E{[CgF19200bps
	Ef[^F8 rbgD
	EXgbvrbgF1 rbg
	EpeBFȂ

Zup-F16g{[h sw1  B ̔Αɐݒ肵āCZup-F16g{[h
dONɂ sample1 s܂Dsample1 ̏ڍׂ sample1.c
t@C̃wb_QƂĂD

4.2  fobJ

J(TOSHIBA IDE)ɂ̓V~[^fobKtĂ邪CVA
ʐM̃V~[VݒȂǂHvȂCJ[lÑO
o͏ɂđM҂Ԃ̂܂ܖ[vĂ܂D̂߁CV
AʐM@\~iȂƂ sys_config.c ɎĂ sys_putc
̏Ԃ͖jɂē삳邱ƂŁC삪\łDȂC
̓V~[^fobKł̓ۏႷ̂ł͂ȂD

5  ̑

5.1  fBNgEt@C\

(1)   config/tlcs900-toshiba

	api.h					񃉃CuB̂߂̒`
	cpu_config.c			TLCAS900 CPUˑ C ֐
	cpu_config.h			TLCAS900 CPUˑ̃J[lp`
	cpu_context.h			TLCAS900 CPUˑ̃ReLXg
	cpu_defs.h				TLCAS900 CPUˑ̃AvP[Vp`
	cpu_insn.h				TLCAS900 CPUˑ̒჌x֐
	cpu_rename.def			J[l̓ʖ̃l[Ƃ̉̒`Xg
	cpu_rename.h			J[l̓ʖ̃l[̒`
	cpu_support.app			TLCAS900 CPUˑ̃AZu֐
	cpu_unrename.h			J[l̓ʖ̃l[̒`
	kernel_inline_defs.h	J[l inline ֐`
	makeoffset.c			offset.inc ֐
	start.app				X^[gAbvW[
	tool_config.h			Jˑ̃J[lp`
	tool_defs.h				Jˑ̃AvP[Vp`

(2)   config/tlcs900-toshiba/zup_f16_ex

	hw_serial.cfg	Zup-F16-expSIOhCõRtBM[Vt@C
	hw_serial.h		Zup-F16-expSIOhCo
	hw_timer.h		Zup-F16-exp^C}샋[`
	sys_config.c	Zup-F16-exVXeˑ C ֐
	sys_config.h	Zup-F16-exVXeˑ̃J[lp`
	sys_defs.h		Zup-F16-exVXeˑ̃AvP[Vp`
	sys_rename.def	J[l̓ʖ̃l[Ƃ̉̒`Xg
	sys_rename.h	J[l̓ʖ̃l[̒`
	sys_support.app	Zup-F16-exVXeˑ̃AZu֐
	sys_unrename.h	J[l̓ʖ̃l[̒`
	tmp91cy22.h		IO(SFR)ъ֘A`
	uart.c			Zup-F16-expSIOhCoԂ C ֐
	uart.h			Zup-F16-expSIOhCoԂ̒`
	zup_f16_ex.lcf	Zup-F16-expJR}ht@C

(3)   tools/TLCS900-TOSHIBA

	TLCS900-TOSHIBA.tws	Jp[NXy[Xt@C

(4)   utils/tlcs900-toshiba

	tlcs900_toshiba.dsw	[eBeBJp[NXy[Xt@C
	{Kw̏ڍׂ utils/tlcs900-toshiba ɂ readme.txt QƁD

ȏ

