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

             Release 1.4бǽ: 26-Aug-2004

------------------------------------------------------------------------ 
 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ץȤϡܥեȥ˴ؤơŬѲǽ
 ޤơʤݾڤԤʤޤܥեȥѤˤľ
 ŪޤϴŪʤ»˴ؤƤ⡤Ǥʤ


------------------------------------------------------------------------


Blackfin åȰ¸γ

1.1 åȥƥ

BlackfinץåΥåȥƥȤƤϡAnalog Devices
ADSP-BF533бƤ롣ϥƥǤϤʤץåǤ롣
sys_config.hϼȿꤹ뤳ȤˤꡢɤΤ褦ʥܡɤˤ
Ǥ롣

1.2 ȯĶȼ¹ԴĶ

ȯĶˤϡAnalog DevicesVisualDSP++Ѥ롣ȯRelease 3.5
Ԥä

1.3 ݡȤ뵡ǽγ

Blackfin¸εǽȤơߥޥѹȡchg_imsget_imsˤ
ӳߤεġػ(ena_int, dis_int)ǽɾѥƥﻲȵ
ǽvxget_timˤ򥵥ݡȤƤ롥

1.4 ¾ΥåȤؤΥݡƥ

СǤϡADSP-BF533Τߤ򥵥ݡȤƤ롥鷺ʲ¤
ADSP-BF535ˤбǤϤǤ롣

Blackfinץå¸εǽ

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

2.1 ǡ

signed intunsigned intsize_tΥϡ32ӥåȤǤ롥

2.2 ߴǽȳߥϥɥ

ͥγߤNMIΤߤǤ롥äơCPUå֤롼
ǤϡNMIʳγߤϤ٤ƶػߤƤ롥ŪˤϡIMASK
0xC01Fꤵ롥

DEF_INHǻꤹߥϥɥֹinhnoˤϡADSP-BF533Υƥ
ֹɽΥǡINHNOˤunsigned intƤ롥
DEF_INH˻Ǥͤϡsys_defs.hINHNO_XXXXȤƤ롣ʤ
ƥֹȤϡSIC_IMASKˤӥåֹǤ롣

2.3 CPU㳰ǽCPU㳰ϥɥ

DEF_EXC ǻꤹߥϥɥֹexcnoˤϡñ̵뤵롣㳰ϥ
ɥϤҤȤĤϿǽǡseqstatexcauseˤοʬ
ϥɥǹԤ

2.4 ȥåץ⥸塼

Blackfin¸Υȥåץ⥸塼start.asmˤǤϡν
Ԥ

(A) ץå⡼ɤνȥåݥ󥿤ν

ǽLC0LC1򥯥ꥢƥϡɥ롼פ̵塢L0-L30
롣˥å򥤥٥ȥåΥȥåפꤹ롣Υå
dispatch()åꤹޤ󥿥ƥѤΥ
ȤƻȤ롣ץåγߥ٥ȥ˳ߥǥѥå
ȥ꡼ꤹ롣Ǹ˥ꥻåȥ⡼ɤIVG15⡼ɤܤ롣

٥ȥåLDFΰ󥫡ࡣ


(B) ͥεư

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

2.5 ǽɾѥƥﻲȵǽ

Blackfin¸Ǥϡǽɾѥƥﻲȵǽvxget_timˤ򥵥ݡ
ȤƤ롥ǽɾѥƥ٤1ñ̤Ǥ롣εǽ
ϥΥ륫󥿤ľɤ߽ФΤǤ롣ʤSYSUTIM
UD64ӥåȤ̵ˤƤ롥

2.6 SIC_IARxѹ
餫ͳ¢ǥХγ׵̤ѹȤˤ
SIC_IARxѹʤФʤʤѹϥץꥱɤǹ
ŪӥATT_INIȤäƥƥϿ롣ѹѤν
ɤϼΤ褦ˤʤ롣

void init_iar(VP_INT vp_int)
{
	*pSIC_IAR0 = ...;
	*pSIC_IAR1 = ...;
	...
	make_priority_mask();
}

make_priority_maskSIC_IARxTOPPERS/JSPǻѤ뻲ȥӥåȥޥ
פФνɤϡե졼ե¾
ɤʤФʤʤ


ADSP-BF533 ƥ¸εǽ

3.1 ƥ९åɥ饤

ƥ९åɥ饤Фisig_timƤӽФϡsys_defs.h
TIC_NUMETIC_DENOƤɸ 1ߥüˡƥ९
Υޡϥޡѥޡ2Ѥ롣sys_config.hΤ
 USE_TIC_COREޥȥޡȤѥޡ2
ѤɬפSIC_IMASKѹϼưŪˤʤ

3.2 ꥢ륤󥿥եɥ饤

ꥢ륤󥿡եɥ饤ФˤбƤʤ

3.3 ߥޥ

ADSP-BF533¸εǽȤơSIC_IMASKΥޥͤѤ뤿Υӥ
chg_imsȻȤ뤿Υӥget_ipm򥵥ݡȤƤ롥
ޥͤɽǡIMSϡunsigned intƤ롥

Υӥϡ󥿥ƥȤΤǤ⡢ޤ
CPUå֡å֤ΤǤƤӽФȤǤ롣


Blackfin¸γߥޥѹȤΤΥӥλͤϼ
̤ꡥ

(1) chg_ims			ߥޥѹ

CAPI
	ER ercd = chg_ims(IMS ims);

ڥѥ᡼
	IMS	ims		ꤹ٤ SIC_IMASK

ڥ꥿ѥ᡼
	ER	ercd		顼

ڥ顼ɡ
	E_CTX		ƥȥ顼
	E_PAR		ѥ᡼顼ipm 

ڵǽ

SIC_IMASKimsǻꤷͤˤ롣

Υӥϡ0֤

(2) get_ims			ߥޥλ

CAPI
	ER ercd = get_ims(IMS *p_ims);

ڥѥ᡼
	ʤ

ڥ꥿ѥ᡼
	ER	ercd		顼
	IMS	ims		ߤ SIC_IMASK

ڥ顼ɡ
	E_CTX		ƥȥ顼

ڵǽ

ߤ SIC_IMASKͤɤ߽Фims ֤

ΥӥϾ0֤

(3) ena_int			ߤε

CAPI
	ER ercd = dis_int(INTNO intno);

ڥѥ᡼
	INTNO	intno		Ĥ륷ƥߤֹ

ڥ꥿ѥ᡼
	ER	ercd		顼

ڥ顼ɡ
	E_PAR		ѥ᡼顼intno 

ڵǽ

SIC_IMASKintnoӥåȤ1ˤ롣бߤĤ롣ѥ᡼
ȤϤȤΤǤͤsys_defs.hINTNO_XXXXȤƤ롣

ʤֹϤE_PAR֤

(4) dis_int			ߤζػ
CAPI
	ER ercd = dis_int(INTNO intno);

ڥѥ᡼
	INTNO	intno		Ĥ륷ƥߤֹ

ڥ꥿ѥ᡼
	ER	ercd		顼

ڥ顼ɡ
	E_PAR		ѥ᡼顼intno 

ڵǽ

SIC_IMASKintnoӥåȤ0ˤ롣бߤػߤ롣ѥ᡼
ȤϤȤΤǤͤsys_defs.hINTNO_XXXXȤƤ롣

ΥӥϾ0֤

ȯĶι

ȯĶAnalog DevicesVisualDSP++Ѥ

4.1 ȯĶΥС

ưǧġΥСϰʲ̤Ǥ롥

    VisualDSP++ : 3.5 July Update

ѥ顢֥顢󥫤ϥåפΥΡޥ꡼б뤿ʲ
ץ򥳥ޥɥ饤󥪥ץɲäƤ

    -si-revision X.Y
    
X.Yб륷ꥳΥӥǤ롣


¾

5.1 ǥ쥯ȥꡦե빽

BlackfinåȰ¸γƥեγפϼ̤ꡥ

    config/blackfin-vdsp/
	cpu_defs.h	ץå¸Υץꥱ
	cpu_config.h	ץå¸ι
	cpu_config.c	ץå¸δؿ
	cpu_support.asm	ץå¸Υ֥롼
	cpu_context.h	ƥ
	cpu_rename.h	ͥ̾Υ͡
	cpu_unrename.h	ͥ̾Υ͡
	tool_defs.h	ȯĶ¸ΥץꥱVisualDSP++ȯĶѡ
	tool_config.h	ȯĶ¸ιVisualDSP++ȯĶѡ
	start.asm	ȥåץ⥸塼

    config/blackfin-vdsp/bf533
	sys_defs.h	ƥ¸Υץꥱ
	sys_defs.c	ƥ¸ΥץꥱѴؿ
	sys_config.h	ƥ¸ι
	sys_config.c	ƥ¸δؿ
	sys_rename.h	ͥ̾Υ͡
	sys_unrename.h	ͥ̾Υ͡
	hw_timer.h	롼



