Ignore:
Timestamp:
Jun 2, 2015, 3:39:53 PM (9 years ago)
Author:
nmir-saito
Message:

ファイルの mime-type 変更

File:
1 edited

Legend:

Unmodified
Added
Removed
  • ssp_qb_r5f100le_cs/trunk/arch/rl78_ca78k0r/prc.tf

    • Property svn:mime-type set to text/plain; charset=shift_jis
    r93 r95  
    77$             Nagoya Municipal Industrial Research Institute, JAPAN
    88$
    9 $  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì (1)`(4) ‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
    10 $  ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü•ÏE
    11 $  Ä”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    12 $  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ìŒ 
    13 $      •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[ƒX
    14 $      ƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    15 $  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg—p
    16 $      ‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    17 ƒƒ“ƒgi—˜—pŽÒƒ}
    18 $      ƒjƒ
    19 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•Û
    20 $      Ø‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    21 $  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg—p
    22 $      ‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±‚ƁD
    23 $    (a) Ä”z•z‚É”º‚¤ƒhƒLƒ
    24 ƒƒ“ƒgi—˜—pŽÒƒ}ƒjƒ
    25 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ì
    26 $        Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    27 $    (b) Ä”z•z‚ÌŒ`‘Ô‚ðC•Ê‚É’è‚ß‚é•û–@‚É‚æ‚Á‚āCTOPPERSƒvƒƒWƒFƒNƒg‚É•ñ
    28 $        ‚·‚邱‚ƁD
    29 $  (4) –{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹ŠQ
    30 $      ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD‚Ü‚½C
    31 $      –{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝—R‚ÉŠî‚Ã
    32 $      ‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    33 $
    34 $  –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨‚æ
    35 $  ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC“Á’è‚ÌŽg—p–Ú“I‚ɑ΂·
    36 $  ‚é“K‡«‚àŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p
    37 $  ‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»‚̐ӔC‚ð•‰
    38 $  ‚í‚È‚¢D
    39 $
    40 
    41 $
    42 $  ƒvƒƒZƒbƒTˆË‘¶ƒeƒ“ƒvƒŒ[ƒg
    43 $
    44 
    45 $
    46 $  ATT_ISR‚ÅŽg—p‚Å‚«‚銄ž‚ݔԍ†‚Æ‚»‚ê‚ɑΉž‚·‚銄ž‚݃nƒ“ƒhƒ‰”ԍ†
     9$  上記著作権者は,以下の (1)〜(4) の条件を満たす場合に限り,本ソフトウェ
     10$  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改変・
     11$  再配布(以下,利用と呼ぶ)することを無償で許諾する.
     12$  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作権
     13$      表示,この利用条件および下記の無保証規定が,そのままの形でソース
     14$      コード中に含まれていること.
     15$  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使用
     16$      できる形で再配布する場合には,再配布に伴うドキュメント(利用者マ
     17$      ニュアルなど)に,上記の著作権表示,この利用条件および下記の無保
     18$      証規定を掲載すること.
     19$  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使用
     20$      できない形で再配布する場合には,次のいずれかの条件を満たすこと.
     21$    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著作
     22$        権表示,この利用条件および下記の無保証規定を掲載すること.
     23$    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに報
     24$        告すること.
     25$  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損害
     26$      からも,上記著作権者およびTOPPERSプロジェクトを免責すること.また,
     27$      本ソフトウェアのユーザまたはエンドユーザからのいかなる理由に基づ
     28$      く請求からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     29$
     30$  本ソフトウェアは,無保証で提供されているものである.上記著作権者およ
     31$  びTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的に対す
     32$  る適合性も含めて,いかなる保証も行わない.また,本ソフトウェアの利用
     33$  により直接的または間接的に生じたいかなる損害に関しても,その責任を負
     34$  わない.
     35$
     36
     37$
     38$  プロセッサ依存テンプレート
     39$
     40
     41$
     42$  ATT_ISRで使用できる割込み番号とそれに対応する割込みハンドラ番号
    4743$
    4844
     
    5147
    5248$
    53 $  DEF_INH^DEF_EXC‚ÅŽg—p‚Å‚«‚銄ž‚݃nƒ“ƒhƒ‰”ԍ†^CPU—áŠOƒnƒ“ƒhƒ‰”ԍ†
     49$  DEF_INH/DEF_EXCで使用できる割込みハンドラ番号/CPU例外ハンドラ番号
    5450$
    5551
     
    5854
    5955$
    60 $  CFG_INT‚ÅŽg—p‚Å‚«‚銄ž‚ݔԍ†‚ÆŠ„ž‚Ý—Dæ“x
     56$  CFG_INTで使用できる割込み番号と割込み優先度
    6157$
    6258
    6359$INTNO_CFGINT_VALID = INTNO_VALID$
    6460
    65 $ // INTPRI_CFGINT_VALID ‚̓vƒƒZƒbƒT‚ɃZƒbƒg‰Â”\‚È—Dæ“x‚Ì”ÍˆÍ‚ðŽ¦‚µC
    66 $ // ƒJ[ƒlƒ‹ŠÇ—(ŠO)‚©‚Ç‚¤‚©‚Ì‹æ•Ê‚ð‚µ‚Ä‚¢‚È‚¢D
    67 $ // ƒJ[ƒlƒ‹ŠÇ—‚ƂȂ銄ž‚Ý—Dæ“x‚͈̔͂ð•ÏX‚·‚éê‡C
    68 $ // TMIN_INTPRI (prc_kernel.h) ‚Ì’l‚ð•K—v‚ɉž‚¶‚ĕύX‚·‚éD
     61$ // INTPRI_CFGINT_VALID はプロセッサにセット可能な優先度の範囲を示し,
     62$ // カーネル管理(外)かどうかの区別をしていない.
     63$ // カーネル管理となる割込み優先度の範囲を変更する場合,
     64$ // TMIN_INTPRI (prc_kernel.h) の値を必要に応じて変更する.
    6965$INTPRI_CFGINT_VALID = { -4,-3,-2,-1 }$
    7066
    7167$
    72 ƒXƒ^ƒbƒNƒTƒCƒY‚̃`ƒFƒbƒN•û–@Žw’è
    73 $
    74 ƒAƒ‰ƒCƒƒ“ƒg‚ÉŠÖŒW‚È‚­“¯‚¶‘¬“x‚ŃAƒNƒZƒX‚Å‚«‚é
     68スタックサイズのチェック方法指定
     69$
     70アライメントに関係なく同じ速度でアクセスできる
    7571$
    7672
     
    7975
    8076$
    81 ’萔’è‹`
     77定数定義
    8278$
    8379$TA_POSEDGE = TA_EDGE$
    8480
    8581$
    86 $ ƒ^[ƒQƒbƒgˆË‘¶‚ÌŠ„ž‚Ý‘®«‚Ì’è‹`
     82$ ターゲット依存の割込み属性の定義
    8783$
    8884
     
    9086
    9187$
    92 •W€ƒeƒ“ƒvƒŒ[ƒgƒtƒ@ƒCƒ‹‚̃Cƒ“ƒNƒ‹[ƒh
     88標準テンプレートファイルのインクルード
    9389$
    9490$INCLUDE "kernel.tf"$
     
    9692
    9793$
    98 $   CFG_INT‚̃^[ƒQƒbƒgˆË‘¶‚̃Gƒ‰[ƒ`ƒFƒbƒN
     94$   CFG_INTのターゲット依存のエラーチェック
    9995$
    10096$
     
    10298
    10399$FOREACH intno INT.ORDER_LIST$
    104 $       // INTŠ„ž‚݂ɑ΂·‚銄ž‚ݔԍ†‚©‚Ç‚¤‚©
     100$       // INT割込みに対する割込み番号かどうか
    105101        $IF (LENGTH(FIND(INTNO_INT , INT.INTNO[intno])) != 0)$
    106 $               // TA_POSEDGE ‚Ü‚½‚Í TA_NEGEDGE ‚Ü‚½‚Í TA_BOTHEDGE ‚ª“¯Žž‚ɐݒ肳‚ê‚Ä‚È‚¢‚©‚Ç‚¤‚©
     102$               // TA_POSEDGE または TA_NEGEDGE または TA_BOTHEDGE が同時に設定されてないかどうか
    107103                $IF
    108104                (   ((INT.INTATR[intno] & (TA_POSEDGE|TA_NEGEDGE|TA_BOTHEDGE)) != (TA_POSEDGE))
     
    113109                $END$
    114110        $ELSE$
    115 $               // INTŠ„ž‚݈ȊO‚ÌŠ„ž‚݂ɑ΂µ‚Ä TA_ENAINT ‹y‚Ñ TA_EDGE ˆÈŠO‚ÌŠ„ž‚Ý‘®«‚ªŽw’肳‚ê‚Ä‚¢‚È‚¢‚©‚Ç‚¤‚©
     111$               // INT割込み以外の割込みに対して TA_ENAINT 及び TA_EDGE 以外の割込み属性が指定されていないかどうか
    116112                $IF (INT.INTATR[intno] & ~(TA_ENAINT|TA_EDGE)) != 0$
    117113                        $ERROR$ INT.TEXT_LINE[intno]: $FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "intatr", INT.INTATR[intno], INT.INTNO[intno], "CFG_INT")$$END$
     
    122118
    123119$
    124 $ Š„ž‚ݔԍ†‚©‚犄ž‚Ý—Dæ“x‚ðŽæ‚èo‚·ƒe[ƒuƒ‹
     120$ 割込み番号から割込み優先度を取り出すテーブル
    125121$
    126122
     
    141137
    142138$
    143 ƒA[ƒLƒeƒNƒ`ƒƒˆË‘¶ƒeƒ“ƒvƒŒ[ƒgiƒAƒZƒ“ƒuƒ‰ŒÅ—L•”•ªj
    144 $
    145 
    146 $
    147 ƒAƒZƒ“ƒuƒ‰o—̓tƒ@ƒCƒ‹ (‹¤’Ê•”•ª)
     139アーキテクチャ依存テンプレート(アセンブラ固有部分)
     140$
     141
     142$
     143アセンブラ出力ファイル (共通部分)
    148144$
    149145
     
    151147
    152148;$NL$
    153 ;  RL78ƒA[ƒLƒeƒNƒ`ƒƒˆË‘¶o—̓tƒ@ƒCƒ‹$NL$
    154 ;$NL$
    155 Š„ž‚݃nƒ“ƒhƒ‰“üŒûˆ—‚Ì’è‹`$NL$
     149;  RL78アーキテクチャ依存出力ファイル$NL$
     150;$NL$
     151割込みハンドラ入口処理の定義$NL$
    156152;$NL$
    157153$NL$$NL$
     
    159155
    160156$
    161 Š„ž‚Ý“üŒûˆ—
    162 $
    163 
    164 $
    165 ƒOƒ[ƒoƒ‹ƒVƒ“ƒ{ƒ‹
     157割込み入口処理
     158$
     159
     160$
     161グローバルシンボル
    166162$
    167163
     
    169165$TAB$extrn __kernel_int_return$NL$$NL$
    170166
    171 $TAB$; ƒRƒ“ƒpƒCƒ‰‚ªŽg—p‚·‚é saddr—̈æ‚̃ŒƒWƒXƒ^$NL$
     167$TAB$; コンパイラが使用する saddr領域のレジスタ$NL$
    172168$TAB$extrn      _@RTARG0,_@RTARG2,_@RTARG4,_@RTARG6,_@SEGAX,_@SEGDE$NL$
    173169$TAB$extrn      _@NRARG0,_@NRARG1,_@NRARG2,_@NRARG3$NL$
     
    176172
    177173; $NL$
    178 ; ƒRƒ“ƒpƒCƒ‰‚ªŽg—p‚·‚ésaddr—̈æ‚Ì‘Þ”ð $NL$
     174; コンパイラが使用するsaddr領域の退避 $NL$
    179175; $NL$
    180176save_saddr_regs         macro$NL$
     
    191187        $TAB$movw       ax, _@SEGDE  $NL$
    192188        $TAB$push       ax           $NL$
    193         $TAB$$$if (ALLOC_REGVAR_TO_SADDR) ; -qr ƒIƒvƒVƒ‡ƒ“‚ðŽg—p‚·‚éê‡ $NL$
     189        $TAB$$$if (ALLOC_REGVAR_TO_SADDR) ; -qr オプションを使用する場合 $NL$
    194190        $TAB$movw       ax, _@NRARG0 $NL$
    195191        $TAB$push       ax           $NL$
     
    215211
    216212$
    217 Š„ž‚݃nƒ“ƒhƒ‰“üŒûˆ—
     213割込みハンドラ入口処理
    218214$
    219215
     
    223219                $TAB$public     __kernel_$INH.INTHDR[inhno]$_$+INH.INHNO[inhno]$_entry  $NL$
    224220                __kernel_$INH.INTHDR[inhno]$_$+INH.INHNO[inhno]$_entry:                         $NL$
    225                 $TAB$push       ax       ; ƒŒƒWƒXƒ^‚ðƒ^ƒXƒNƒXƒ^ƒbƒN‚Ö‘Þ”ð $NL$
     221                $TAB$push       ax       ; レジスタをタスクスタックへ退避 $NL$
    226222                $TAB$push       bc $NL$
    227223                $TAB$push       de $NL$
    228224                $TAB$push       hl $NL$
    229                 $TAB$mov        a,es            ; ES, CS ‚Ì‘Þ”ð $NL$
     225                $TAB$mov        a,es            ; ES, CS の退避 $NL$
    230226                $TAB$mov        x,a  $NL$
    231227                $TAB$mov        a,cs $NL$
    232228                $TAB$push       ax   $NL$
    233229                $TAB$save_saddr_regs$NL$
    234                 $TAB$movw       bc, #_$INH.INTHDR[inhno]$ ; ƒnƒ“ƒhƒ‰‚̃AƒhƒŒƒX‚ð bc ‚Ö $NL$
     230                $TAB$movw       bc, #_$INH.INTHDR[inhno]$ ; ハンドラのアドレスを bc へ $NL$
    235231
    236232                $IF (INH.INHATR[inhno] & TA_NONKERNEL) == 0$
    237                         $TAB$br         __kernel_interrupt_entry        ; ‹¤’Ê‚Ì“üŒûˆ—‚Ö $NL$
     233                        $TAB$br         __kernel_interrupt_entry        ; 共通の入口処理へ $NL$
    238234                        $NL$$NL$
    239235                $ELSE$
    240                         $TAB$;ƒJ[ƒlƒ‹ŠÇ—ŠO‚ÌŠ„ž‚݂̏ꍇCƒnƒ“ƒhƒ‰ŽÀs‚µ‚Ä‚»‚̂܂܃Šƒ^[ƒ“ $NL$
    241                         $TAB$call       bc                              ; Š„ž‚݃nƒ“ƒhƒ‰ŒÄ‚яo‚µ$NL$
    242                         $TAB$br         __kernel_int_return             ; ƒŒƒWƒXƒ^•œ‹A & Š„ž‚Ý‚©‚烊ƒ^[ƒ“(prc_support.asm) $NL$
     236                        $TAB$;カーネル管理外の割込みの場合,ハンドラ実行してそのままリターン $NL$
     237                        $TAB$call       bc                              ; 割込みハンドラ呼び出し$NL$
     238                        $TAB$br         __kernel_int_return             ; レジスタ復帰 & 割込みからリターン(prc_support.asm) $NL$
    243239                $END$
    244240        $END$
     
    247243
    248244$
    249 $  CPU—áŠOƒnƒ“ƒhƒ‰“üŒûˆ—
     245$  CPU例外ハンドラ入口処理
    250246$
    251247
     
    255251                $TAB$public     __kernel_$EXC.EXCHDR[excno]$_$+EXC.EXCNO[excno]$_entry  $NL$
    256252                __kernel_$EXC.EXCHDR[excno]$_$+EXC.EXCNO[excno]$_entry:                         $NL$
    257                 $TAB$push       ax              ; ƒŒƒWƒXƒ^‚ðƒ^ƒXƒNƒXƒ^ƒbƒN‚Ö‘Þ”ð $NL$
     253                $TAB$push       ax              ; レジスタをタスクスタックへ退避 $NL$
    258254                $TAB$push       bc $NL$
    259255                $TAB$push       de $NL$
    260256                $TAB$push       hl $NL$
    261                 $TAB$mov        a,es            ; ES, CS ‚Ì‘Þ”ð $NL$
     257                $TAB$mov        a,es            ; ES, CS の退避 $NL$
    262258                $TAB$mov        x,a  $NL$
    263259                $TAB$mov        a,cs $NL$
    264260                $TAB$push       ax   $NL$
    265261                $TAB$save_saddr_regs $NL$
    266                 $TAB$movw       ax, sp          ; SP(ƒnƒ“ƒhƒ‰‚̈ø”‚Æ‚È‚é)‚ð ax ‚Ö $NL$
    267                 $TAB$movw       bc, #_$EXC.EXCHDR[excno]$ ; ƒnƒ“ƒhƒ‰‚̃AƒhƒŒƒX‚ð bc ‚Ö $NL$
    268                 $TAB$br         __kernel_interrupt_entry        ; ‹¤’Ê‚Ì“üŒûˆ—‚Ö $NL$
     262                $TAB$movw       ax, sp          ; SP(ハンドラの引数となる)を ax へ $NL$
     263                $TAB$movw       bc, #_$EXC.EXCHDR[excno]$ ; ハンドラのアドレスを bc へ $NL$
     264                $TAB$br         __kernel_interrupt_entry        ; 共通の入口処理へ $NL$
    269265                $NL$$NL$
    270266        $END$
     
    273269
    274270$
    275 ƒxƒNƒ^ƒe[ƒuƒ‹
    276 $
    277 
    278 ;$NL$
    279 ƒxƒNƒ^ƒe[ƒuƒ‹$NL$
     271ベクタテーブル
     272$
     273
     274;$NL$
     275ベクタテーブル$NL$
    280276;$NL$
    281277$NL$
     
    308304
    309305$
    310 $  prc_support.asm —pƒ}ƒNƒ’è‹`ƒtƒ@ƒCƒ‹
     306$  prc_support.asm 用マクロ定義ファイル
    311307$
    312308
Note: See TracChangeset for help on using the changeset viewer.