Changeset 107 for uKadecot/trunk/ssp/arch/rx630_ccrx/prc.tf
- Timestamp:
- Jun 10, 2015, 8:40:31 PM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uKadecot/trunk/ssp/arch/rx630_ccrx/prc.tf
-
Property svn:mime-type
changed from
text/plain
totext/plain; charset=SHIFT_JIS
r101 r107 6 6 $ Copyright (C) 2013 by Mitsuhiro Matsuura 7 7 $ 8 $ ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 9 $ Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 10 $ ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 11 $ (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 12 $ \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 13 $ XR[hÉÜÜêÄ¢é±ÆD 14 $ (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 15 $ pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 16 gip 17 $ Ò}j 18 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 19 $ ̳ÛØKèðfÚ·é±ÆD 20 $ (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 21 $ pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 22 $ ÆD 23 $ (a) Äzzɺ¤hL 24 gipÒ}j 25 AÈÇjÉCãLÌ 26 $ ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 27 $ (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 28 $ ñ·é±ÆD 29 $ (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 30 $ Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 31 $ ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 32 $ RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 33 $ ÆÓ·é±ÆD 34 $ 35 $ {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨ 36 $ æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI 37 $ ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF 38 $ AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC» 39 $ ÌÓCðíÈ¢D 40 $ 41 $ 42 43 $ 44 $ A[LeN`˶ev[giRX630pj 45 $ 46 47 48 49 $ 50 $ ATT_ISRÅgpÅ«éÝÔÆ»êÉηéÝnhÔ 8 $ 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 9 $ ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 10 $ 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 11 $ (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 12 $ 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 13 $ スコード中に含まれていること. 14 $ (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 15 $ 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 16 $ 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 17 $ の無保証規定を掲載すること. 18 $ (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 19 $ 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 20 $ と. 21 $ (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 $ 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 $ (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 24 $ 報告すること. 25 $ (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 26 $ 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 27 $ また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 28 $ 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 29 $ 免責すること. 30 $ 31 $ 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 32 $ よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 33 $ に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 34 $ アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 35 $ の責任を負わない. 36 $ 37 $ 38 39 $ 40 $ アーキテクチャ依存テンプレート(RX630用) 41 $ 42 43 44 45 $ 46 $ ATT_ISRで使用できる割込み番号とそれに対応する割込みハンドラ番号 51 47 $ 52 48 … … 56 52 57 53 $ 58 $ DEF_INT ^DEF_EXCÅgpÅ«éÝnhÔ^CPUáOnhÔ54 $ DEF_INT/DEF_EXCで使用できる割込みハンドラ番号/CPU例外ハンドラ番号 59 55 $ 60 56 … … 64 60 65 61 $ 66 $ CFG_INT ÅgpÅ«éÝÔÆÝDæx62 $ CFG_INTで使用できる割込み番号と割込み優先度 67 63 $ 68 64 … … 72 68 73 69 $ 74 $ ^[Qbgñ˶ÉÜÜêéWÌÝÇ@\/áOÇ@\Ìú»ðgp·é70 $ ターゲット非依存部に含まれる標準の割込み管理機能/例外管理機能の初期化処理を使用する 75 71 $ 76 72 … … 80 76 81 77 $ 82 $ X^bNTCYÌ`FbNû@wè78 $ スタックサイズのチェック方法指定 83 79 $ 84 80 … … 87 83 88 84 $ 89 $ ^XNX^bNTCYÌŬl90 $ 91 $ ^XNN®É4byte,92 $ ÝüûÉÄ48byte, CPUáOüûÉÄ84byte,93 $ Å é½ß, ŬlÍ88byteÆ·é.85 $ タスクスタックサイズの最小値 86 $ 87 $ タスク起動時に4byte, 88 $ 割込み入口処理にて48byte, CPU例外入口処理にて84byte, 89 $ であるため, 最小値は88byteとする. 94 90 $ 95 91 … … 98 94 99 95 $ 100 $ èè`96 $ 定数定義 101 97 $ 102 98 … … 105 101 106 102 $ 107 $ ^[Qbg˶ÌÝ®«Ìè`103 $ ターゲット依存の割込み属性の定義 108 104 $ 109 105 … … 112 108 113 109 $ 114 $ ^[Qbg˶ÌÝnh®«Ìè`110 $ ターゲット依存の割込みハンドラ属性の定義 115 111 $ 116 112 … … 119 115 120 116 $ 121 $ J[lÇOÝnhÍÅ賹Ȣ½ß,117 $ カーネル管理外割込みハンドラは固定させないため, 122 118 $ INTNO_FIX_KERNEL 123 119 $ INHNO_FIX_KERNEL 124 120 $ INHNO_FIX_NONKERNEL 125 121 $ INHNO_FIX_NONKERNEL 126 $ ðè`µÈ¢.127 $ 128 129 130 $ 131 $ Wev[gt@CÌCN[h122 $ を定義しない. 123 $ 124 125 126 $ 127 $ 標準テンプレートファイルのインクルード 132 128 $ 133 129 $INCLUDE "kernel.tf"$ … … 136 132 137 133 $ 138 $ CFG_INT Ì^[Qbg˶ÌG[`FbN134 $ CFG_INTのターゲット依存のエラーチェック 139 135 $ 140 136 141 137 $FOREACH intno INT.ORDER_LIST$ 142 $ IRQ ÝԩǤ©ð`FbN138 $ IRQ割込み番号かどうかをチェック 143 139 $IF ( LENGTH( FIND( INTNO_INT, INT.INTNO[intno] ) ) != 0 )$ 144 140 145 $ TA_POSEDGE ÆTA_NEGEDGEª¯ÉÝè³êÄ¢éê141 $ TA_POSEDGEとTA_NEGEDGEが同時に設定されている場合 146 142 $IF ((INT.INTATR[intno] & ( TA_POSEDGE | TA_NEGEDGE )) == ( TA_POSEDGE | TA_NEGEDGE ))$ 147 143 $ERROR$ INT.TEXT_LINE[intno]:$FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "intatr", INT.INTATR[intno], INT.INTNO[intno], "CFG_INT")$$END$ 148 144 $END$ 149 145 150 $ TA_POSEDGE ÆTA_BOTHEDGEª¯ÉÝè³êÄ¢éê146 $ TA_POSEDGEとTA_BOTHEDGEが同時に設定されている場合 151 147 $IF ((INT.INTATR[intno] & ( TA_POSEDGE | TA_BOTHEDGE )) == ( TA_POSEDGE | TA_BOTHEDGE ))$ 152 148 $ERROR$ INT.TEXT_LINE[intno]:$FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "intatr", INT.INTATR[intno], INT.INTNO[intno], "CFG_INT")$$END$ 153 149 $END$ 154 150 155 $ TA_NEGEDGE ÆTA_BOTHEDGEª¯ÉÝè³êÄ¢éê151 $ TA_NEGEDGEとTA_BOTHEDGEが同時に設定されている場合 156 152 $IF ((INT.INTATR[intno] & ( TA_NEGEDGE | TA_BOTHEDGE )) == ( TA_NEGEDGE | TA_BOTHEDGE ))$ 157 153 $ERROR$ INT.TEXT_LINE[intno]:$FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "intatr", INT.INTATR[intno], INT.INTNO[intno], "CFG_INT")$$END$ 158 154 $END$ 159 155 160 $ TA_POSEDGE ÆTA_NEGEDGEÆTA_BOTHEDGEª¯ÉÝè³êÄ¢éê156 $ TA_POSEDGEとTA_NEGEDGEとTA_BOTHEDGEが同時に設定されている場合 161 157 $IF ((INT.INTATR[intno] & ( TA_POSEDGE | TA_NEGEDGE | TA_BOTHEDGE )) == ( TA_POSEDGE | TA_NEGEDGE | TA_BOTHEDGE ))$ 162 158 $ERROR$ INT.TEXT_LINE[intno]:$FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "intatr", INT.INTATR[intno], INT.INTNO[intno], "CFG_INT")$$END$ … … 165 161 $ELSE$ 166 162 167 $ IRQ ÝÈOÌÝÉεÄÝ®«ªwè³êÄ¢éê163 $ IRQ割込み以外の割込みに対して割込み属性が指定されている場合 168 164 $IF (INT.INTATR[intno] & (~( TA_ENAINT | TA_EDGE ))) != 0$ 169 165 $ERROR$ INT.TEXT_LINE[intno]: $FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "intatr", INT.INTATR[intno], INT.INTNO[intno], "CFG_INT")$$END$ … … 177 173 178 174 $ 179 $ ÝÔ©çÝDæxyÑ®«ðæèo·e[u175 $ 割込み番号から割込み優先度及び属性を取り出すテーブル 180 176 $ 181 177 … … 185 181 const CFG_INT_INFO _kernel_cfg_int_table[$LENGTH(INTNO_RANGE)$] = {$NL$ 186 182 $FOREACH intno INTNO_RANGE$ 187 $ ÝDæxðæ¾183 $ 割込み優先度を取得 188 184 $IF LENGTH(INT.INTNO[intno])$ 189 185 $intpri = -INT.INTPRI[intno]$ … … 194 190 $END$ 195 191 196 $ e[uÌgðoÍ192 $ テーブルの中身を出力 197 193 $TAB$$FORMAT("{ %2d, %08x }, /* %02u */", intpri, intatr, +intno)$$NL$ 198 194 $END$ … … 201 197 202 198 $ 203 $ AZuoÍt@C199 $ アセンブラ出力ファイル 204 200 $ 205 201 … … 207 203 208 204 ;$NL$ 209 ; RX630 A[LeN`˶oÍt@C$NL$210 ;$NL$ 211 ; ÝxN^yÑÝnhè`$NL$205 ; RX630アーキテクチャ依存出力ファイル$NL$ 206 ;$NL$ 207 ; 割込みベクタ及び割込みハンドラ定義$NL$ 212 208 ;$NL$ 213 209 $NL$$NL$ … … 215 211 216 212 $ 217 $ Ýüû218 $ 219 220 $ 221 $ ¤ÊÖÌé¾213 $ 割込み入口処理 214 $ 215 216 $ 217 $ 共通関数の宣言 222 218 $ 223 219 … … 229 225 230 226 $ 231 $ ÝnhÌoÍ227 $ 割込みハンドラの出力 232 228 $ 233 229 … … 238 234 $TAB$.glb __kernel_$INH.INTHDR[inhno]$_$+INH.INHNO[inhno]$_entry$NL$ 239 235 __kernel_$INH.INTHDR[inhno]$_$+INH.INHNO[inhno]$_entry:$NL$ 240 $TAB$pushm r1-r5 ; XNb`WX^ð^XNX^bNÖÞð$NL$241 $TAB$mov.l #$+INH.INHNO[inhno]$, r1 ; ÝnhÔðr1Ö$NL$242 $TAB$mov.l #_$INH.INTHDR[inhno]$, r2 ; nhÌAhXðr2Ö$NL$243 $TAB$bra.a _kernel_interrupt ; ¤Ê[`Ö$NL$$NL$$NL$244 $END$ 245 $END$ 246 $END$ 247 248 249 $ ¢o^Ýnhüû236 $TAB$pushm r1-r5 ; スクラッチレジスタをタスクスタックへ退避 $NL$ 237 $TAB$mov.l #$+INH.INHNO[inhno]$, r1 ; 割込みハンドラ番号をr1へ $NL$ 238 $TAB$mov.l #_$INH.INTHDR[inhno]$, r2 ; ハンドラのアドレスをr2へ $NL$ 239 $TAB$bra.a _kernel_interrupt ; 共通ルーチンへ $NL$$NL$$NL$ 240 $END$ 241 $END$ 242 $END$ 243 244 245 $ 未登録割込みハンドラ入口処理 250 246 $TAB$.glb$TAB$__kernel_default_int_handler_entry$NL$ 251 247 __kernel_default_int_handler_entry:$NL$ 252 $TAB$pushm r1-r5 ; XNb`WX^ð^XNX^bNÖÞð$NL$253 $TAB$mov.l #0FFFFFFFFH, r1 ; ÝnhÔðr1Ö$NL$254 $TAB$mov.l #__kernel_default_int_handler, r2 ; nhÌAhXðr2Ö$NL$255 $TAB$bra.a _kernel_interrupt ; ¤Ê[`Ö$NL$$NL$$NL$256 257 258 $ 259 $ CPU áOnhüû248 $TAB$pushm r1-r5 ; スクラッチレジスタをタスクスタックへ退避 $NL$ 249 $TAB$mov.l #0FFFFFFFFH, r1 ; 割込みハンドラ番号をr1へ $NL$ 250 $TAB$mov.l #__kernel_default_int_handler, r2 ; ハンドラのアドレスをr2へ $NL$ 251 $TAB$bra.a _kernel_interrupt ; 共通ルーチンへ $NL$$NL$$NL$ 252 253 254 $ 255 $ CPU例外ハンドラ入口処理 260 256 $ 261 257 … … 267 263 $TAB$.glb __kernel_$EXC.EXCHDR[excno]$_$+EXC.EXCNO[excno]$_entry$NL$ 268 264 __kernel_$EXC.EXCHDR[excno]$_$+EXC.EXCNO[excno]$_entry:$NL$ 269 $TAB$pushm r1-r5 ; XNb`WX^ð^XNX^bNÖÞð$NL$270 $TAB$mov.l #$+EXC.EXCNO[excno]$, r1 ; CPU áOnhÔðr1Ö$NL$271 $TAB$mov.l #_$EXC.EXCHDR[excno]$, r2 ; nhÌAhXðr2Ö$NL$272 $TAB$bra.a _kernel_exception ; ¤Ê[`Ö$NL$$NL$$NL$273 $END$ 274 $END$ 275 276 277 $ ¢o^CPUáOnhüû265 $TAB$pushm r1-r5 ; スクラッチレジスタをタスクスタックへ退避 $NL$ 266 $TAB$mov.l #$+EXC.EXCNO[excno]$, r1 ; CPU例外ハンドラ番号をr1へ $NL$ 267 $TAB$mov.l #_$EXC.EXCHDR[excno]$, r2 ; ハンドラのアドレスをr2へ $NL$ 268 $TAB$bra.a _kernel_exception ; 共通ルーチンへ $NL$$NL$$NL$ 269 $END$ 270 $END$ 271 272 273 $ 未登録CPU例外ハンドラ入口処理 278 274 $TAB$.glb$TAB$__kernel_default_exc_handler_entry$NL$ 279 275 __kernel_default_exc_handler_entry:$NL$ 280 $TAB$pushm r1-r5 ; XNb`WX^ð^XNX^bNÖÞð$NL$281 $TAB$mov.l #0FFFFFFFFH, r1 ; CPU áOnhÔðr1Ö$NL$282 $TAB$mov.l #__kernel_default_exc_handler, r2 ; nhÌAhXðr2Ö$NL$283 $TAB$bra.a _kernel_exception ; ¤Ê[`Ö$NL$$NL$$NL$284 285 286 $ 287 $ ÂÏxN^e[u288 $ 289 290 ;$NL$ 291 ; ÂÏxN^e[u$NL$276 $TAB$pushm r1-r5 ; スクラッチレジスタをタスクスタックへ退避 $NL$ 277 $TAB$mov.l #0FFFFFFFFH, r1 ; CPU例外ハンドラ番号をr1へ $NL$ 278 $TAB$mov.l #__kernel_default_exc_handler, r2 ; ハンドラのアドレスをr2へ $NL$ 279 $TAB$bra.a _kernel_exception ; 共通ルーチンへ $NL$$NL$$NL$ 280 281 282 $ 283 $ 可変ベクタテーブル 284 $ 285 286 ;$NL$ 287 ; 可変ベクタテーブル$NL$ 292 288 ;$NL$ 293 289 $NL$ … … 320 316 321 317 $ 322 $ ÅèxN^e[u318 $ 固定ベクタテーブル 323 319 $ 324 320 $FOREACH excno EXCNO_RANGE$ … … 332 328 $NL$ 333 329 ;$NL$ 334 ; ÅèxN^e[u$NL$330 ; 固定ベクタテーブル$NL$ 335 331 ;$NL$ 336 332 $NL$ … … 341 337 342 338 $TAB$ .offset$TAB$ 020H$NL$ 343 $TAB$ .lword$TAB$ 00000000 $TAB$ ; §äR[h, IDR[h1 - 3$NL$344 $TAB$ .lword$TAB$ 00000000 $TAB$ ; ID R[h4 - 7$NL$345 $TAB$ .lword$TAB$ 00000000 $TAB$ ; ID R[h8 - 11$NL$346 $TAB$ .lword$TAB$ 00000000 $TAB$ ; ID R[h12 - 15$NL$$NL$339 $TAB$ .lword$TAB$ 00000000 $TAB$ ; 制御コード, IDコード1 - 3$NL$ 340 $TAB$ .lword$TAB$ 00000000 $TAB$ ; IDコード4 - 7$NL$ 341 $TAB$ .lword$TAB$ 00000000 $TAB$ ; IDコード8 - 11$NL$ 342 $TAB$ .lword$TAB$ 00000000 $TAB$ ; IDコード12 - 15$NL$$NL$ 347 343 348 344 $TAB$ .offset$TAB$ 050H$NL$ 349 $TAB$ .lword$TAB$ _$EXCHDR[20]$ $TAB$ $TAB$ ;$SPC$ 20: Á ½ßáO$SPC$$NL$345 $TAB$ .lword$TAB$ _$EXCHDR[20]$ $TAB$ $TAB$ ;$SPC$ 20:特権命令例外 $SPC$$NL$ 350 346 $TAB$ .offset$TAB$ 05CH$NL$ 351 $TAB$ .lword$TAB$ _$EXCHDR[23]$ $TAB$ $TAB$ ;$SPC$ 23: ¢è`½ßáO$SPC$$NL$347 $TAB$ .lword$TAB$ _$EXCHDR[23]$ $TAB$ $TAB$ ;$SPC$ 23:未定義命令例外 $SPC$$NL$ 352 348 $TAB$ .offset$TAB$ 064H$NL$ 353 $TAB$ .lword$TAB$ _$EXCHDR[25]$ $TAB$ $TAB$ ;$SPC$ 25: ®¬_áO$SPC$$NL$349 $TAB$ .lword$TAB$ _$EXCHDR[25]$ $TAB$ $TAB$ ;$SPC$ 25:浮動小数点例外 $SPC$$NL$ 354 350 $TAB$ .offset$TAB$ 078H$NL$ 355 $TAB$ .lword$TAB$ _$EXCHDR[30]$ $TAB$ $TAB$ ;$SPC$ 30: m}XJuáO$SPC$$NL$356 $TAB$ .lword$TAB$ _start $TAB$ $TAB$ $TAB$ $TAB$ ;$SPC$ 31: Zbg$SPC$$NL$351 $TAB$ .lword$TAB$ _$EXCHDR[30]$ $TAB$ $TAB$ ;$SPC$ 30:ノンマスカブル例外 $SPC$$NL$ 352 $TAB$ .lword$TAB$ _start $TAB$ $TAB$ $TAB$ $TAB$ ;$SPC$ 31:リセット $SPC$$NL$ 357 353 358 354 $NL$ $NL$ -
Property svn:mime-type
changed from
Note:
See TracChangeset
for help on using the changeset viewer.