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

          iRelease 1.4.3ΉCŏIXV: 10-May-2007j

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

 Copyright (C) 2000-2007 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: armv4.txt,v 1.1 2008/06/17 00:04:40 suikan Exp $
------------------------------------------------------------------------


PDARMv4 ^[Qbgˑ̊Tv


1.1 ^[QbgVXeƊJ

ARMV4 vZbT̃^[QbgVXeƂẮCARMv4A[LeN`CPU
RA𓋍ڂȉ̃{[hT|[gĂDȂCThumb߂̓T|[
gĂȂD

  EARM Integrator/CM922T-ETM(ARM922T) + Integrator/AP
  EYDK AZ9360MB(ARM926EJ-S)

Jɂ́CGCC Ȃǂ GNUJpCIuWFNgt@CtH[
}bg ELF WƂD

Integratorł́CsԊƂJTAG-ICEp邱Ƃz肵ĂD
JTAG-ICEƂẮCARMА Multi-ICE ƁC\tBAVXeY
UniSTAC II/J ETM for ARM9 œmFĂD


1.2 T|[g@\̊Tv

ARMv4 ˑ̋@\ƂāA\]pVXeQƋ@\(vxget_tim)T|
[gĂB݂̋֎~Ƌ(dis_intAena_int)̓T|[gĂȂB


1.3 ̃^[Qbgւ̃|[eBO

̃^[QbgɃ|[eBO邽߂ɂ́CVXeˑɈȉ̃R[h
KvƂȂD
 
  Ȅ݂oisys_support.Sj
  E^C}[hCo
  EVAhCo


1.4 Integrator ̏


1.5 VA|[g

Integrator łIntegrator/AP  UART J[lOo͗pɎgpD
fBtHgł́Cx115200bps,f[^:8bit,Parity:none,Stop:1bitł
B


1.6 ThumbR[hɂ

ThumbR[h̗pɂẮC_ł̓T|[gĂȂD


QDARMv4 vZbTˑ̋@\

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


2.1 f[^^

int^ unsigned int^̃TCY 32rbgłB

2.2 ݊Ǘ@\Ɗ݃nh

J[lǗO݂̊ƂĂ FIQBāACPUbNԂ⏉
[`ł́AFIQ ȊOׂ݂̊͂ċ֎~ĂB̓Iɂ́A
CPSR(JgvOԃWX^)IRQ֎~rbg(rbg7) 1 ɐ
肳B


DEF_INH Ŏw肷銄݃nhԍ(inhno)́AKS32C50100 ŎӃW[
ɒ`Ă銄荞ݔԍłDLH79532 ł͊݃Rg[
̊e`lԍłBf[^^(INHNO) unsigned int^ɒ`Ă
B


2.3 CPUOǗ@\CPUOnh

DEF_EXC Ŏw肷銄݃nhԍ(excno)́AARMv4 Œ`ĂC
OvłD̃f[^^(EXCNO) unsigned int ^ɒ`ĂB
DEF_EXC ŁAOR[hԍƂėLłȂlACPUOɑΉȂԍ
w肵ꍇ͕̓ۏ؂ȂB

CPUOnhɓnp_excinf́CCPUÕReLXgۑ
X^bNւ̃|C^nDX^bN̍\ȉɎD


      ----------------------
     |        CPSR          |  <-- p_excinf
      ----------------------
     |         R0           |
      ----------------------
     |         R1           |
      ----------------------
     |         R2           |
      ----------------------
     |         R3           |
      ----------------------
     |         ip           |
      ----------------------
     |         lr           |
      ----------------------
     |         PC           |
      ----------------------


2.4 X^[gAbvW[

ARMv4 ˑ̃X^[gAbvW[(start.S)ł́ȀsB

(A) vZbT[h̏ƃX^bN|C^̏

ŏɁAvZbT[hXp[oCU[[h(SVC)AIRQ,FIQ݂֎~
ɂD

ɁAX^bN|C^(sp) STACKTOP ɐݒ肷BŊ݃X^b
N|C^ɐݒ肳ꂽX^bN̈́AJ[lN͔^XNReL
Xgp̃X^bN̈ƂĎgBSTACKTOP ́Asys_config.h Œ`
邱Ƃz肵ĂB

(B) hardware_init_hook ̌ďo

hardware_init_hook  0 łȂꍇɂ́Ahardware_init_hook ĂяoB
hardware_init_hook ́AJ[lNOɍsKv^[Qb
gˑ̏s߂ɗpӂĂBhardware_init_hook ǂł
`ĂȂꍇAJł̃V{ 0 ɒ`(JXN
vgɋLq)B

(C) bssZNV dataZNV̏

bssZNV[NAB܂AdataZNVB

(D) software_init_hook ̌ďo

software_init_hook  0 łȂꍇɂ́Asoftware_init_hook ĂяoB
software_init_hook ́AJ[lNOɍsKv\tgEF
A(̓Iɂ́ACu)ˑ̏s߂ɗpӂĂB
software_init_hook ǂł`ĂȂꍇAJł̃V{
 0 ɒ`(JXNvgɋLq)B

(E) J[l̋N

kernel_start ֕򂵁AJ[lNBkernel_start 烊^[
Ă邱Ƃ͑z肵ĂȂB



RDVXeˑ̋@\


3.1 VXeNbNhCo

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


3.2 \]pVXeQƋ@\

ARMv4 ˑł́A\]pVXeQƋ@\(vxget_tim)T|[g
ĂB\]pVXe̐x 1ʕbPʂł邪A^C}̌ݒl
ǂݏo߂ɈꎞIɃ^C}~Kv邽߁Avxget_tim 
ԓxɃVXeNbNÂx邱ƂɂȂBȂASYSUTIM^ UD^
(64rbg̕^)ɒ`ĂB


3.3 VAC^tF[XhCo

Integrator ˑł́CIntergrator/AP UART T|[gĂD


SDJ̍\z

J̍\z@ɂẮCGNUJ\z}jAQƂ̂ƁD


4.1 J̃o[W
mFc[̃o[W͈ȉ̒ʂłD

    BINUTILS : 2.11.2
    GCC-CORE : 3.0.2
    GDB      : 5.0
    NEWLIB   : 1.9.0



    BINUTILS : 2.14
    GCC-CORE : 3.3
    GDB      : 5.3
    NEWLIB   : 1.11.0

4.2 c[\[X̏C
L̃o[W̃c[\z邳ȉ̏CKvƂȂD

4.2.1 GDB
   ./gdb/rdi-share/devsw.c
     39sځC69s struct tm lm̐錾ĂsRgAEgD
   

4.3 GDBX^uɂvÕ_E[h
     zXgPCƃ{[hVAP[uŌqCgdbɃ_E[h
     vOw肷D
     Ɉȉ̃R}hsDttySXXXX̓VAڑĂ
     |[gԍłD

           set remotebaud 57600 
           set endian little 
           set rdi /dev/ttySXX 
      ́CloadŃvO_E[hāCcontinueŎsD
      ܂CCtrl-Cœ쒆̃vO~łD



TD̑

5.1 fBNgEt@C\

ARMv4 ^[Qbgˑ̊et@C̊Tv͎̒ʂD

    config/armv4/
        Makefile.config MakefileARMv4ˑ`
        armelf.ld       rbOGfBApJXNvg
        armv4.h         ARMv4̒`
        cpu_config.c    vZbTˑ̊֐
        cpu_config.h    vZbTˑ̍\`
        cpu_context.h   ReLXg
        cpu_defs.h      vZbTˑ̃AvP[Vp`
        cpu_insn.h      ჌x̃vZbT샋[`
        cpu_rename.def  J[l̓ʖ̃l[`
        cpu_rename.h    J[l̓ʖ̃l[
        cpu_support.S   vZbTˑ̃Tu[`
        cpu_unrename.h  J[l̓ʖ̃l[
        makeoffset.c    offset.h T|[gvO
        start.S         X^[gAbvW[
        tool_config.h   Jˑ̍\`iGNUJpj
        tool_defs.h     Jˑ̃AvP[Vp`iGNUJpj

    config/armv4/integrator
        Makefile.config Makefile Integrator ˑ`
        hw_serial.cfg   SIOhCõRtBM[Vt@C
        hw_serial.h     SIOhCo
        hw_timer.h      ^C}샋[`
        integrator.c    Integrator n[hEFA֐
        integrator.h    Integrator n[hEFA`
        integrator.ld   Integrator JXNvg
        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_support.S   VXeˑ̃Tu[`
        sys_unrename.h  J[l̓ʖ̃l[
