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

            iRelease 1.4ΉCŏIXV: 20-Dec-2003j

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

 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: tms320c54x.txt,v 1.1 2008/06/17 00:04:40 suikan Exp $
------------------------------------------------------------------------


PDC54x ^[Qbgˑ̊Tv

1.1 ^[QbgVXeƊJ

TMS320C54x DSP ̃^[QbgVXeƂẮCTMS320VC5402 DSP 𓋍
TEXAS INSTRUMENTS TMS320VC5402 DSP X^[^ELbg(DSK) 
T|[gĂD
Jɂ́CDSKɃohĂ铝J Code Composer Studio 2.0 
(CCS 2.0) pCIuWFNgt@CtH[}bg COFF ƂȂĂD


1.2 T|[g@\̊Tv

TMS320VC5402 ̈ˑ̋@\ƂāC\]pVXeQƋ@\(vxget_tim)
T|[gĂD݂̋֎~Ƌ(dis_int, ena_int)̓T|[gĂȂD


1.3 ̃^[Qbgւ̃|[eBO

o[Wł́CTMS320C54x T|[gĂD


1.5 VA|[g

DSK{[hɓڂĂVA|[ǵCJ[l̃Oo͗pɎgpD
VA|[g̐ݒ́Cf[^ : 8bitCParity : noneCStop   : 1bit łD

                          J[lOp
ETMS320VC5402 DSK        COM : 1152000bps


1.6 t@[R[ɂ

t@[R[ɂẮC݂̓T|[gĂȂD̂߁CfBXpb`C
ݓɂāCgvOJE^(XPC)̕ۑCޔ͍s
ȂD


QDTMS320VC5402 DSP ˑ̋@\

̐ł́CJ[lуVXeT[rX̋@\̒ŁCTMS320VC5402 DSP 
ˑ̕ɂĉD

2.1 f[^^

TMS320C54x ł́C16rbgC32rbg ̃f[^^T|[gĂD
int^ char^Cshort^̃TCY 16rbgłDlong^ 32rbgłD
8rbg ̃f[^^Ȃ B, UB, VB  16rbgɂȂĂCӂKv
D


2.2 ItZbgt@C̐

AZuŋLqvOCC̍\̂ɃANZXꍇ
KvƂȂItZbglt@Cɏo͂邽߂ɁCJSPJ[lł́C
genoffset pӂĂDȂCTMS320C54x ł genoffset gp
ƂłȂ߁CTCB ̃^XNReLXgubNitskctxbjɊ܂܂
 pc y sp tB[h̃ItZbgl͌ŒƂȂĂD̂߁CTCB 
rbgtB[hf[^^ɏCꍇC pc y sp ̃ItZbgl
ӂKvłD́C2.1 f[^^ ̐ƕčlD


2.3 ݊Ǘ@\Ɗ݃nh

J[lǗO݂̊ƂẮC NMI DāCCPUbNԂ⏉
[`ł́CNMIȊOׂ݂̊͂ċ֎~ĂD̓Iɂ́C
ST1(Xe[^XWX^P)̃}XJu݋֎~rbg(INTM : bit 11) 1 
ɐݒ肳D

DEF_INH Ŏw肷銄݃nhԍ(inhno)́CC5402 ł́C݃xN^|C^
(IPTR)̊e݃xN^̃ItZbglE2rbgVtg(4ŏZ)lłD
f[^^(INHNO) unsigned int^ɒ`ĂD


2.4 CPUOǗ@\CPUOnh

TMS320C54x DSPɂCPUOȂD


2.5 X^[gAbvW[

C5402 DSP ˑ̃X^[gAbvW[(start.S)ł́C̏sD

(A) Xe[^XWX^̏ƃX^bN|C^̏

ŏɁC}XJű݂֎~D

ɁCڃAhbVOɃX^bN|C^(SP)pRpC݊[h
ɐݒ肵CCvOT|[gD

ɁCX^bN|C^ STACKTOP ɐݒ肷DŊ݃X^bN|C^
ɐݒ肳ꂽX^bN̈́CJ[lN͔^XNReLXgp̃X^bN
̈ƂĎgDSTACKTOP ́Csys_surpport.S Œ`邱Ƃ`
D

(B) hardware_init_hook ̌ďo

hardware_init_hook  0 łȂꍇɂ́Chardware_init_hook ĂяoD
hardware_init_hook ́CJ[lNOɍsKv^[Qbg
ˑ̏s߂ɗpӂĂDhardware_init_hook ǂł`
ĂȂꍇCJł̃V{ 0 ɒ`(JR}ht@
C c5402dsk.cmd ɋLq)D

(C) bssZNV cinitZNV̏

bssZNV[NAD܂CdataZNV

(D) software_init_hook ̌ďo

software_init_hook  0 łȂꍇɂ́Csoftware_init_hook ĂяoD
software_init_hook ́CJ[lNOɍsKv\tgEFA
(̓Iɂ́CCu)ˑ̏s߂ɗpӂĂD
software_init_hook ǂł`ĂȂꍇCJł̃V{ 
0 ɒ`(JR}ht@CɋLq)D

(E) J[l̋N

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


RDVXeˑ̋@\

3.1 VXeNbNhCo

VXeNbNhCo isig_tim ĂяóCsys_defs.h   
TIC_NUME  TIC_DENO Œ`Ă(W 1 ~b)D̒`
ύX邱ƂŁCisig_tim ĂяoύX邱ƂłDC
^C}̐x 1ʕbł邽߁CPʕbPʂŒ[ɂȂlݒ肵ꍇ
ɂ́Cisig_tim ̌ďoɌ덷邱ƂɂȂD


3.2 \]pVXeQƋ@\

TMS320VC5402 DSP ˑł́C\]pVXeQƋ@\(vxget_tim)
T|[gĂD\]pVXe̐x́CPʕbPʂłDȂC
SYSUTIM^ UW^(32rbg̕^)ɒ`ĂD

3.3 VAC^tF[XhCo

TMS320VC5402 DSK VAC^tF[XhCóCDSK {[h 
TL16C550CFN UARTT|[gĂD

3.4 }bv

EC5402 DSK
ˑł́CR[ḧ 0x4000 ` 0xFFFF 96KBCf[^̈ 0x0080 ` 
0x3FFF 32KBC^XNReLXgp̃X^bN̈ ` 0x3FFF Ɋmۂ
ĂDR[ḧ 0xFF80 ` 0xFFFF ́C݃xN^e[üƂ
gpĂD܂C0x0060 ` 0x007F XNb`pbḧƂĊmۂ
DXNb`pbḧł́C }bvh WX^ AhbVO 
gp邱ƂłD


SDJ̍\z

Jɂ́CJ CCS (2.0)  Windows V~[Vp
Dꂼ̊J̍\z@ɂẮCCCS ̃hLgсC
Windows V~[V\z}jAQƂ̂ƁDȂCCCS (2.0) 
̃CXg[ c:\ti ̃fBNgɍsƂOƂĐsD

4.1 J̊Tv

4.1.1 Cu֐

TMS320C54x ł́CZC32rbgZɃCu֐pĂDC
CuvWFNgɑgݍŃrhƁCstart.S ̃X^[gAbv
[`gpłȂȂD̂߁CCũ\[X (rts.src) 炢
̊֐̃\[XEt@C𒊏oăvWFNgɒǉKv
ꍇDȉ̃R}hŃ\[XEt@C𒊏o邱ƂłB

    ar500 -x rts.src xxx.asm yyy.asm zzz.asm

    c:\ti\c5400\cgtools\bin\
      ar500.exe
    c:\ti\c5400\cgtools\lib\
      rts.src

TvvOł́Cldiv.asm, udiv.asm, lmpy.asm 3̃t@C
KvƂȂD̃t@C̒oႪ jsp\C5402DSK\configure.vbs ɂ
̂ŎQlɂĂقD

4.1.1 RtBM[^̃rh

RtBM[^́CWindowsV~[V cfg.exe pD
cfg.exe ̃rh@ Windows̕QƂꂽ

4.1.3 RtBM[^̐

CCS ł͋̃IuWFNg͍Ȃ߁Ccfg ̃IvVƂ 

  --ZERO "x y[1]"

w肷KvDTvȊÕRtBM[Vt@C
pꍇCRtBM[^ kernel_id.h  kernel_cfg.c 쐬
KvD̓IȃIvVɂẮCWindows V~[V
\z}jAQƂ̂ƁD

ȂCRtBM[^̋̓IȎgpႪ jsp\C5402DSK\configure.vbs
ɂ̂ŎQlɂĂقD

4.1.2 Code Composer Studio 2.0 (CCS 2.0) ɂ TOPPERS/JSP ̃rh

܂Cjsp ̃A[JCut@C c:\ti\myprojects\ ɓWJD
c:\ti\myprojects\jsp\C5402DSK (ȉ\jsp\C5402DSKƂ)ɂX
Nvgt@CC

    c:\ti\myprojects\jsp\C5402DSK> configure.vbs

s邱ƂɂCsample1.cfg, sample1.h, sample1.cRs[CRtB
M[^ɂkernel_id.h, kernel_cfg.c̐C ldiv.asm,
lmpy.asm, udiv.asm ̒osD̃t@C \jsp\tools\C5402DSK 
ɍ쐬D

\jsp\tools\C5402DSK\ccs_project ɂTvvÕvWFNgt@
 C TOPPERS.pjt  CCS JƁCɃrhɕKvȐݒI
 ԂɂȂĂD

CCS rhs \jsp\tools\C5402DSK  TOPPERS.out ̂ŁC
^[Qbg{[hɃ_E[hΎs\ƂȂD^[QbgƂ
VAʐM̑x 115200bps łD


TD̑ 

5.1 fBNgEt@C\

     c:\ti\myprojects\jsp\tools\C5402DSK
	configure.vbs       kernel_cfg.c kernel_id.h ̂߂̃ob`t@C
	\ccs_project\ccs_project.pjt	CCS 2.0 vWFNgt@C

     c:\ti\myprojects\jsp\config\tms320c54x
	c54x.h			TMS320C54x ̒`
	cpu_support.S		vZbTˑ̃Tu[`
	cpu_config.c		vZbTˑ̊֐
	cpu_config.h		vZbTˑ̍\`
	cpu_context.h		ReLXg
	cpu_defs.h		vZbTˑ̃AvP[Vp`
	start.S			X^[gAbvW[
	vectors.S		݃xN^e[u
	hw_timer.h		^C}샋[`
	cpu_insn.h		჌xvZbT샋[`
	cpu_rename.def		J[l̓ʖ̃l[`
	cpu_rename.h		J[l̓ʖ̃l[
	cpu_unrename.h		J[l̓ʖ̃l[
	tool_defs.h		Jˑ̃AvP[Vp`
	tool_config.h		Jˑ̍\`
	api.h			APIK[hʉߗp`t@C

     c:\ti\myprojects\jsp\config\tms320c54x\c5402dsk
	c5402dsk.cmd		JR}ht@C
	hw_serial.h		VAC^tF[XfoCX샋[`
	hw_serial.cfg		SIOhCõRtBM[Vt@C
	c5402dsk.h		C5402 DSK n[hEFA`
	sys_config.c		VXeˑ̊֐
	sys_config.h		VXeˑ̍\`
	sys_defs.h		VXeˑ̃AvP[Vp`
	sys_support.S		VXeˑ̃Tu[`
        sys_rename.def		J[l̓ʖ̃l[`
        sys_rename.h		J[l̓ʖ̃l[
        sys_unrename.h		J[l̓ʖ̃l[
	tl16c550cfn.c		ȈSIOhCo
	tl16c550cfn.h		ȈSIOhCo֘A̒`
