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

            Release 1.4бǽ: 20-Dec-2003

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

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

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

 @(#) $Id: tms320c54x.txt,v 1.12 2003/12/24 07:43:20 honda Exp $
------------------------------------------------------------------------


C54x åȰ¸γ

1.1 åȥƥȳȯĶ

TMS320C54x DSP ΥåȥƥȤƤϡTMS320VC5402 DSP 
TEXAS INSTRUMENTS TMS320VC5402 DSP å(DSK) 
ݡȤƤ롥
ȯĶˤϡDSK˥Хɥ뤵Ƥ糫ȯĶ Code Composer Studio 2.0 
(CCS 2.0) Ѥ֥ȥեեޥåȤ COFF ȤʤäƤ롥


1.2 ݡȤ뵡ǽγ

TMS320VC5402 ΰ¸εǽȤơǽɾѥƥﻲȵǽ(vxget_tim)
ݡȤƤ롥ߤζػߤȵ(dis_int, ena_int)ϥݡȤƤʤ


1.3 ¾ΥåȤؤΥݡƥ

СǤϡTMS320C54x 򥵥ݡȤƤ롥


1.5 ꥢݡ

DSKܡɤܤƤ륷ꥢݡȤϡͥΥѤ˻Ѥ롥
ꥢݡȤϡǡ : 8bitParity : noneStop   : 1bit Ǥ롥

                          ͥ
TMS320VC5402 DSK        COM : 1152000bps


1.6 եˤĤ

եˤĤƤϡߤϥݡȤƤʤΤᡤǥѥå
ˤơĥץ५(XPC)¸ϹԤä
ʤ


TMS320VC5402 DSP ¸εǽ

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

2.1 ǡ

TMS320C54x Ǥϡ16ӥåȡ32ӥå ĹΥǡ򥵥ݡȤƤ롥
int charshortΥ 16ӥåȤǤ롥long 32ӥåȤǤ롥
8ӥå Υǡʤ B, UB, VB  16ӥåȤˤʤäƤꡤդɬפ
롥


2.2 եåȥե

֥ǵҤץफ顤Cι¤Τ˥
ɬפȤʤ륪եåͤե˽Ϥ뤿ˡJSPͥǤϡ
genoffset ѰդƤ롥ʤ顤TMS320C54x Ǥ genoffset Ѥ
ȤǤʤᡤTCB Υƥȥ֥åtskctxbˤ˴ޤޤ
 pc ڤ sp եɤΥեåͤϸȤʤäƤ롥ΤᡤTCB 
ӥåȥեɤǡ˽ä硤 pc ڤ sp Υեåͤ
դɬפǤ롥ϡ2.1 ǡ ʸʻƹθ롥


2.3 ߴǽȳߥϥɥ

ͥγߤȤƤϡ NMI 롥äơCPUå֤
롼ǤϡNMIʳγߤϤ٤ƶػߤƤ롥Ūˤϡ
ST1(ơ쥸)Υޥ֥߶ػߥӥå(INTM : bit 11) 1 
ꤵ롥

DEF_INH ǻꤹߥϥɥֹ(inhno)ϡC5402 Ǥϡߥ٥ݥ
(IPTR)γƳߥ٥Υեåͤ򱦤2ӥåȥե(4ǽ)ͤǤ롥
ǡ(INHNO) unsigned intƤ롥


2.4 CPU㳰ǽCPU㳰ϥɥ

TMS320C54x DSPˤCPU㳰ʤ


2.5 ȥåץ⥸塼

C5402 DSP ¸Υȥåץ⥸塼(start.S)ǤϡνԤ

(A) ơ쥸νȥåݥ󥿤ν

ǽˡޥ֥ߤζػߤ롥

ˡľܥɥå󥰤˥åݥ(SP)Ѥ륳ѥߴ⡼
ꤷCץ򥵥ݡȤ롥

ˡåݥ󥿤 STACKTOP ꤹ롥ǳߥåݥ
ꤵ줿åΰϡͥ뵯ư󥿥ƥѤΥå
ΰȤƻȤ롥STACKTOP ϡsys_surpport.S 뤳Ȥ
롥

(B) hardware_init_hook θƽФ

hardware_init_hook  0 Ǥʤˤϡhardware_init_hook ƤӽФ
hardware_init_hook ϡͥ뤬ư˹Ԥɬפ륿å
¸νԤѰդƤ롥hardware_init_hook ɤǤ
Ƥʤ硤󥫤ǤΥܥ 0 (󥫥ޥɥե
 c5402dsk.cmd ˵Ҥ)

(C) bss cinitν

bss򥼥ꥢ롥ޤdata

(D) software_init_hook θƽФ

software_init_hook  0 Ǥʤˤϡsoftware_init_hook ƤӽФ
software_init_hook ϡͥ뤬ư˹Ԥɬפ륽եȥ
Ķ(Ūˤϡ饤֥)¸νԤѰդƤ롥
software_init_hook ɤǤƤʤ硤󥫤ǤΥܥ 
0 (󥫥ޥɥե˵Ҥ)

(E) ͥεư

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


ƥ¸εǽ

3.1 ƥ९åɥ饤

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


3.2 ǽɾѥƥﻲȵǽ

TMS320VC5402 DSP ¸Ǥϡǽɾѥƥﻲȵǽ(vxget_tim)
ݡȤƤ롥ǽɾѥƥ٤ϡñ̤Ǥ롥ʤ
SYSUTIM UW(32ӥåȤ̵)Ƥ롥

3.3 ꥢ륤󥿥եɥ饤

TMS320VC5402 DSK ꥢ륤󥿥եɥ饤ФϡDSK ܡɾ 
TL16C550CFN UART򥵥ݡȤƤ롥

3.4 ޥå

C5402 DSK
¸Ǥϡΰ 0x4000  0xFFFF 96KBǡΰ 0x0080  
0x3FFF 32KB󥿥ƥѤΥåΰ  0x3FFF ˳ݤ
Ƥ롥ΰ 0xFF80  0xFFFF ϡߥ٥ơ֥ΰȤ
ѤƤ롥ޤ0x0060  0x007F 򥹥åѥåΰȤƳݤ
롥åѥåΰǤϡ ޥåץ 쥸 ɥå 
Ѥ뤳ȤǤ롥


ȯĶι

ȯĶˤϡ糫ȯĶ CCS (2.0)  Windows ߥ졼Ķ
롥줾γȯĶιˡˤĤƤϡCCS ΥɥȤӡ
Windows ߥ졼Ķۥޥ˥奢򻲾ȤΤȡʤCCS (2.0) 
Υ󥹥ȡ c:\ti Υǥ쥯ȥ˹ԤȤȤԤ

4.1 ȯĶγ

4.1.1 饤֥ؿ

TMS320C54x Ǥϡ32ӥåȾ軻˥饤֥ؿѤƤ롥
饤֥ץȤȤ߹ǥӥɤȡstart.S Υȥå
롼󤬻ѤǤʤʤ롥Τᡤ饤֥Υ (rts.src) 餤
ĤδؿΥեФƥץȤɲäɬפ
礬롥ʲΥޥɤǥեФ뤳ȤǤ롣

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

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

ץץǤϡldiv.asm, udiv.asm, lmpy.asm 3ĤΥե뤬
ɬפȤʤ롥Υե㤬 jsp\C5402DSK\configure.vbs ˤ
ΤǻͤˤƤۤ

4.1.1 ե졼Υӥ

ե졼ϡWindowsߥ졼Ķ cfg.exe Ѥ롥
cfg.exe Υӥˡ WindowsĶ򻲾Ȥ줿

4.1.3 ե졼»

CCS Ǥ϶Υ֥ȤϺʤᡤcfg ΥץȤ 

  --ZERO "x y[1]"

ꤹɬפ롥ץʳΥե졼ե
Ѥ硤ե졼 kernel_id.h  kernel_cfg.c 
ɬפ롥ŪʥץˤĤƤϡWindows ߥ졼
Ķۥޥ˥奢򻲾ȤΤȡ

ʤե졼ζŪʻ㤬 jsp\C5402DSK\configure.vbs
ˤΤǻͤˤƤۤ

4.1.2 Code Composer Studio 2.0 (CCS 2.0) ˤ TOPPERS/JSP Υӥ

ޤjsp Υ֥ե c:\ti\myprojects\ Ÿ롥
c:\ti\myprojects\jsp\C5402DSK (ʲ\jsp\C5402DSKȤ)ˤ륹
ץȥե롤

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

¹Ԥ뤳Ȥˤꡤsample1.cfg, sample1.h, sample1.cԡե
졼ˤkernel_id.h, kernel_cfg.c ldiv.asm,
lmpy.asm, udiv.asm ФԤ롥Υե \jsp\tools\C5402DSK 
˺롥

\jsp\tools\C5402DSK\ccs_project ˤ륵ץץΥץȥե
  TOPPERS.pjt  CCS 鳫ȡ˥ӥɤɬפ򽪤
 ֤ˤʤäƤ롥

CCS ӥɤԤ \jsp\tools\C5402DSK  TOPPERS.out Τǡ
򥿡åȥܡɤ˥ɤм¹ԲǽȤʤ롥åȤȤ
ꥢ̿®٤ 115200bps Ǥ롥


¾ 

5.1 ǥ쥯ȥꡦե빽

     c:\ti\myprojects\jsp\tools\C5402DSK
	configure.vbs       kernel_cfg.c kernel_id.h ΤΥХåե
	\ccs_project\ccs_project.pjt	CCS 2.0 ץȥե

     c:\ti\myprojects\jsp\config\tms320c54x
	c54x.h			TMS320C54x 
	cpu_support.S		ץå¸Υ֥롼
	cpu_config.c		ץå¸δؿ
	cpu_config.h		ץå¸ι
	cpu_context.h		ƥ
	cpu_defs.h		ץå¸Υץꥱ
	start.S			ȥåץ⥸塼
	vectors.S		ߥ٥ơ֥
	hw_timer.h		롼
	cpu_insn.h		٥ץå롼
	cpu_rename.def		ͥ̾Υ͡
	cpu_rename.h		ͥ̾Υ͡
	cpu_unrename.h		ͥ̾Υ͡
	tool_defs.h		ȯĶ¸Υץꥱ
	tool_config.h		ȯĶ¸ι
	api.h			API̲ե

     c:\ti\myprojects\jsp\config\tms320c54x\c5402dsk
	c5402dsk.cmd		󥫥ޥɥե
	hw_serial.h		ꥢ륤󥿥եǥХ롼
	hw_serial.cfg		SIOɥ饤ФΥե졼ե
	c5402dsk.h		C5402 DSK ϡɥ
	sys_config.c		ƥ¸δؿ
	sys_config.h		ƥ¸ι
	sys_defs.h		ƥ¸Υץꥱ
	sys_support.S		ƥ¸Υ֥롼
        sys_rename.def		ͥ̾Υ͡
        sys_rename.h		ͥ̾Υ͡
        sys_unrename.h		ͥ̾Υ͡
	tl16c550cfn.c		ʰSIOɥ饤
	tl16c550cfn.h		ʰSIOɥ饤дϢ
