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

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

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

 Copyright (C) 2000-2005 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

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

PDXstormy16 ^[Qbgˑ̊Tv

1.1 ^[QbgVXeƊJ

TOPPSER/JSPJłłXstormy16vZbT̃^[QbgVXeƂ
́AuOm}CR Jc[(Xstormy16V[Y)vEVAfobK̃G~
[VT|[gĂB
uOm}CR Jc[(Xstormy16V[Y)v͈ȉłB
http://www.semic.sanyo.co.jp/micon/jpn/index.html
̒CRpC܂܂B
Xstormy16V[Y̊eCPUɑΉTOPPERS/JSP֘Ãt@ĆALɐ
ǉ̂ŁAG~[Vł̓ۂ̐iJs
ꍇ́ALłŐVł̃t@CgpKvB
܂ALJc[ɂ́ATOPPERS/JSPx[Xɂ̏Cs
̂A\[XуRpCς݂̃Cǔ`Ŕ[߂Ă̂ŁA
J[lgCEăRpCKvȂ̂ł΁ALJc[
_E[hECXg[݂̂ŁATOPPERS/JSP𗘗płB

1.2 T|[g@\̊Tv

Xstormy16ł́AJSPŊgꂽȉ̋@\̓T|[gĂȂB
(1) ݃}XN̕ύXEQ(chg_ixx/get_ixx)
(2) ݂̋֎~Ƌ(dis_int/ena_int)
(3) \]pVXeQƋ@\(vxget_tim)
Xstormy16ł́A荞݂̋E֎~уx(Dx)SFR(IL1L-IL2H)
ŊǗĂ邽߁ALAPIɓKȂB̕ύXSFRւ̐ݒ
ĕύXKvB

1.3 ̃^[Qbgւ̃|[eBO

Xstormy16V[Y(LC590200)SĂCPUłCPURAg̋@\
^CXeBbNp̃^C}͓̎dlŎĂB܂SIO
Ă@ł͑Sē̎dlƂȂĂ̂ŁÃ^[Qbgւ
|[eBOsɁAJ[lg͏CKv͂ȂB
Ă郁TCYɉJ[XNvgA^[Qbg
CKvȃt@ĆALuOm}CR Jc[(Xstormy16V[Y)v
Ɋ܂܂Ă̂ŁAgpB

1.4  VA|[g (UART)

EVAfobKł́AG~[VEG~[VƂUART0
UART12{̃VA|[gB܂ACPUłl̎dlUART
@킪B
TOPPERS/JSP̃OóAprintf()/scanf()̕Wo͂ɂ́A̓
UART1pB(sys_config.hLOGTASK_PORTIDŕύX\)
VA|[g̐ݒȉɎB
   E{[CgA57600Baud
   Ef[^A8 rbg
   EXgbvrbgA1 rbg
   EpeBȂ
   Et[Ȃ

QDXstormy16 vZbTˑ̋@\

̐߂ł́AJ[lуVXeT[rX̋@\̒ŁAXstormy16ˑ
ɂĉB

2.1 f[^^

signed int^ unsigned int^̃TCY 16rbgłB

2.2 ݊Ǘ@\Ɗ݃nh

2.2.1 J[lǗO̊荞

uXstormy16vO}[YKChv2.4͂ɋLqꂽ@Œ`ꂽ
ݏ[`́AJ[lǗO̊荞݂Ƃċ@\B
J[lǗO̊荞݂̓J[lɊ֘A]ȃI[o[wbh
ł闘_锽ʁAȉ̓_ɒӂKvB
(1) J[lǗO̊荞݂̗Dx́ASẴJ[lǗ̊荞݂
    DxȂ΂ȂȂB(J[lǗO̊荞ݏ
    J[lǗ̊荞݂󂯕tƁAŃfBXpb`A
    J[lǗO̊荞݂̏rŒfĂ܂\邽
    ߁B)
    uOm}CR Jc[(Xstormy16V[Y)vɊ܂܂łł́A"
    ^XNReLXg̃T[rXR[̒xs"̗pĂ邽߁A
    ̐͂ȂB
(2) J[lǗO̊荞݂̊荞ݏ[`ł́AJ[lT[r
    XĂяoĂ͂ȂȂB
(3) J[lǗO̊荞݂ł́A̔̃X^bN̂܂ܗp
    ߁ASẴ^XÑX^bN̗eʂɂ̕KvĂKv
    B
(4) J[lǗO̊荞݂ACPUbNԂł͎󂯕tȂB
    JłXstormy16pTOPPERS/JSPł́A啔̃T[rXR[
    łCPUbNԂƂȂĂ̂ŒӂKvB
    uOm}CR Jc[(Xstormy16V[Y)vɊ܂܂łł́AT[
    rXR[CPUbNȂB荞݃nh̓Eo
    ōő12NbNCPUbN̋ԂB

2.2.2 ݃nhԍ

DEF_INH Ŏw肷銄݃nhԍ(inhno)́AXstormy16 ł̊荞
xN^ԍ\Ãf[^^(INHNO) unsigned int^ɒ`ĂB
荞݃nhԍɂ́A0-16włAEVAfobK̃G~[V
ł́AȉĂB
  1 : Base Timer (AvP[VŎgp)
  2 : Timer0 (^CXeBbNpɎgp)
  3 : Timer1 (AvP[VŎgp)
 16 : UART (OóEWo͂Ŏgp)
CPUŎgp\Ȋ荞݂ƗOxN^ԍɂẮAꂼ̃}CR
̃[U[Y}jAQƁB

2.2.3 X̊荞݂̋E֎~ƗDx

Xstormy16ł́AX̊荞݂̋E֎~ƗDx̓J[lł͊Ǘ
B̐IL1L/IL1H/IL2L/IL2Hւ̐ݒōsB

2.3 CPUOǗ@\CPUOnh

DEF_EXC Ŏw肷銄݃nhԍ̃f[^^(EXCNO) unsigned int
^ɒ`ĂBȉ̔ԍw\łB
  0 : `߂̎s
  1 : Ԓnւ̃[hANZX
  2 : ROM/RAMGAւ̃ANZX

2.4 X^[gAbvW[

Xstormy16ˑ̃X^[gAbvW[(start.S)ł́Ȁ
sB
(1) X^bN|C^̏
(2) .bssZNV̏
(3) .dataZNV̏
(4) J[l̋N(kernel_start֕)

2.5 ^XNReLXg̎gpX^bN

Xstormy16ł́A荞݃nh܂ޔ^XNReLXgp̃X^bN
āAÓIϐ^XNpX^bNmۂ̎cRAMgpB
^XNsɊ荞݂ꍇA荞݃nhĂяoO
ɃJ[lŃX^bN|C^ReLXgp̃X^bNɐ؂ւ
߁Ae^XNp̃X^bN̕KvȃTCY߂鎞Ɋ荞݃nh
ŎgpX^bNlKv͂ȂB
A荞ݔPCPSWR0-R2܂ł̕ۑ̓X^bN̐؂
Oɍs邽߁A12oCg̃GA̓^XNp̃X^bNŊmۂĂ
KvB
[XgP[XƂȂ̂́AxP̊荞݂ŃX^bN؂ւ钼O
ɃxQ̊荞݂AɃx2荞݂ł̃X^bN؂ւ
OɃxR荞ݔEEEƂȂ悤ȏꍇŁA̕KvȃGÁA
12 ~ (lXgĔ\̂銄荞݃x̐) ɂȂB̕
̃GA̓^XÑX^bNɊmۂĂKvB

3.  VXeˑ̋@\

3.1  VXeNbNhCo

VXeNbNhCoɎgpTIMER0̃IV[^̓ftHgł
Xstormy16RCMpĂB(1MHz)
VXeNbNhCo isig_tim ĂяóAsys_defs.h  
TIC_NUME  TIC_DENO Œ`Ă(W 5~b)B
RCMp5~bŃ^CeBbNhCo̓J[
lCu(\[Xhw_timer.c)Ɋ܂܂ĂAftHgł͂
N邪A[U[vOhw_timer.cĈ쐬
N邱ƂŁAgpIV[^E荞݂̎CӂɕύX
ƂłB̏ꍇAĂяoCPUNbNɑ΂ď\ɒK
vB(ڈƂāAĂяo >2000/CPUNbN)
Xstormy16RCḾA̎g̐xႢ߁A^C}̐xKv
ȏꍇ́AOX'talIV[^ɐ؂ւKvB

3.2 VAC^tF[XhCo

VXeˑ̃VAC^[tF[XhCóAUART0/UART1̂Q
VAC^[tF[XT|[gĂB|[gID=1UART0A|[gID=2
UART1ɑΉĂB
VXeOŗpftHg̃VA|[ǵAUART1ɐݒ肵ĂB
(GDBX^u𗘗pꍇAUART0Ɏgp邽)

3.3 }bv

EVAfobK̃G~[V̃}bv͈ȉ̂ƂłB
  00000-07DFF : RAM
  07E00-07FFF : SFR(Special Function Register)
  80000-7FFFF : ROM
J[lp̃f[^̈E[U[vOp̃f[^̈Aу^XN
p̃X^bN00000ԒnmۂAcRAM^XNReLXgp
X^bN(ʂ)Aуq[v(ʂ)ƂĎgpB

SDJ̍\z

4.1 Om񋟂̃t@C𗘗pꍇ

uOm}CR Jc[(Xstormy16V[Y)vɂ́ARpCς݂̃
Cu`JPSJ[l܂ށARpCEfobKEJA
WindowsŊJɕKvȑSẴt@C܂܂Ă̂ŁAʏ́A
_E[hECXg[邱ƂTOPERS/JSP𗘗płB
uOm}CR Jc[(Xstormy16V[Y)v
http://www.semic.sanyo.co.jp/micon/jpn/index.html
_E[hłB
Jc[Ɋ܂܂鉺L̃hLgQƂ̂ƁB
   ETOPPERS/JSP[U[̂߂̃t@[XgXebvKCh
   EXstormy16 vO}[YKCh

4.2 ̌Jł𗘗pꍇ

̌Jł𗘗pꍇAȉ̎菇ŊJ\zB

Step1 Om}CR Jc[(Xstormy16V[Y)̃CXg[
[茳]
http://www.semic.sanyo.co.jp/micon/jpn/index.html
[CXg[菇]
(1) A[JCu𓀂ACXg[sB
(2) CXg[̖₢킹ɂ́ASăftHgŃCXg[
(3) CXg[ꂽIDEN
(4) IDẼj[[c[]->[DOSvvg]N
(5) DOSvvgŁAR}h"Prepare_perl.bat"s(CXg[
    xsΗǂ)

Step2 TOPPERS/JSP̓Ə
[茳]
http://www.toppers.jp/
ATOPPERS/JSP Ver1.4.3̃\[XR[h(SJIS)_E[hB
[菇]
(1) \[XA[JCuCӂ̃fBNg(łC:\jspƂ)ɉ
(2) Step1ŃCXg[AL̃fBNgɂcfg.exechk.exe
    C:\jsp\cfgɃRs[Ă
      C:\Program Files\SanyoLsi\Gcc\for_toppers\bin
(3) 𓀂fBNg̉ɍƗpfBNgobj(łC:\jsp\obj)
    쐬

Step3 JSPJ[lƃTvvÕRpC
(1) Step1(4)ŊJDOSvvgŁAStep2(3)ō쐬fBNg
    (C:\jsp\obj)ɈړB
(2) ȉ̃R}hs
    Ɏs΁AC:\jsp\obj\jsp.elf 쐬
    perl ../configure -C xstormy16 -S simulator
    make depend
    make
(3) DOSvvg

Step4 EVAfobKG~[Vł̎s
[菇]
(1) Windowsɖ߂AStep3(2)ō쐬ꂽC:\jsp\obj\jsp.elf_uN
    bNEVAfobKNB
(2) uG~[V[hŋN܂v̖₢Ɂu͂vNbN
    EVAfobKG~[V[hŋN
(3) F5ăvOJnƁAUSEREBhEɈȉ̕\o
    ΐɓ삵Ă
      JSP Kernel Release......
          : 
      task1 is running (001). |
      task1 is running (002). |
          :
(4) USEREBhẼR}h͗Ɉȉ̃R}h
      < t[Enter]     ('<''t'̊ԂɃXy[XKv)
    task1ter_tskAtask2oB
    (TvvOŎgpł't'ȊÕR}hɂẮAsample1.c
    ̃RgQ)

TD̑

5.1 fBNgEt@C\

Xstormy16 ^[Qbgˑ̊et@C̊Tv͎̒ʂB

    config/xstormy16/
      Makefile.config  Makefile  Xstormy16ˑ`
      cpu_config.c     vZbTˑ̊֐
      cpu_config.h     vZbTˑ̍\`
      cpu_context.h    ReLXg
      cpu_defs.h       vZbTˑ̃AvP[Vp`
      cpu_insn.h       CCAZu[`̒`
      cpu_rename.def   J[l̓ʖ̃l[`
      cpu_rename.h     J[l̓ʖ̃l[
      cpu_unrename.h   J[l̓ʖ̃l[
      cpu_sfrs.h       J[lŎgpSFR̒`
      cpu_stdio.h      Wo̓T|[ĝ߂̊֐
      cpu_support.S    vZbTˑ̃Tu[`
      hw_serial.h      SIOhCo̍\`
      hw_serial.c      SIOhCo̊֐
      hw_serial.cfg    SIOhCõRtBM[Vt@C
      hw_timer.h       ^C}hCo̍\`
      hw_timer.c       ^C}hCo̊֐
      offset.h         AZuC\̃ANZX̂߂̒`
      start.S          X^[gAbvW[
      tool_config.h    Jˑ̍\`
      tool_defs.h      Jˑ̃AvP[Vp`
    config/xstormy16/simulator/
      Makefile.config  Makefile  VXeˑ`
      sim_32k.ld       G~[VpJ[XNvg
      sim_32k.S        EVAfobK̂߂̋@
      sys_config.c     VXeˑ̊֐
      sys_config.h     VXeˑ̍\`
      sys_defs.h       VXeˑ̃AvP[Vp`
      sys_rename.def   J[l̓ʖ̃l[`
      sys_rename.h     J[l̓ʖ̃l[
      sys_unrename.h   J[l̓ʖ̃l[

ȏ
