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