- Timestamp:
- May 22, 2019, 10:03:37 PM (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
azure_iot_hub/trunk/asp3_dcre/arch/rx630_gcc/prc_kernel.trb
-
Property svn:mime-type
changed from
text/x-ruby
totext/x-ruby;charset=UTF-8
r388 r389 9 9 # Graduate School of Information Science, Nagoya Univ., JAPAN 10 10 # 11 # ä¸è¨èä½æ¨©è 12 ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ 13 # ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹ 14 # å¤ã»åé 15 å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 16 # (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 17 # 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 18 # ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 19 # (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 20 # ç¨ã§ããå½¢ã§åé 21 å¸ããå ´åã«ã¯ï¼åé 22 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 23 # è 24 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 25 # ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 26 # (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 27 # ç¨ã§ããªãå½¢ã§åé 28 å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã 29 # ã¨ï¼ 30 # (a) åé 31 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 32 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 33 # ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 34 # (b) åé 35 å¸ã®å½¢æ 36 ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSããã¸ã§ã¯ãã« 37 # å ±åãããã¨ï¼ 38 # (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 39 # 害ãããï¼ä¸è¨èä½æ¨©è 40 ããã³TOPPERSããã¸ã§ã¯ããå 41 責ãããã¨ï¼ 42 # ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç 43 # ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è 44 ããã³TOPPERSããã¸ã§ã¯ãã 45 # å 46 責ãããã¨ï¼ 47 # 48 # æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 49 ã 50 # ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç 51 # ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ 52 # ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ã 53 # ã®è²¬ä»»ãè² ããªãï¼ 11 # 上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ 12 # ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 13 # 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 14 # (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 15 # 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 16 # スコード中に含まれていること. 17 # (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 18 # 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 19 # 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 20 # の無保証規定を掲載すること. 21 # (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 22 # 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 23 # と. 24 # (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 25 # 作権表示,この利用条件および下記の無保証規定を掲載すること. 26 # (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 27 # 報告すること. 28 # (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 29 # 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 30 # また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 31 # 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 32 # 免責すること. 33 # 34 # 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 35 # よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 36 # に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 37 # アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 38 # の責任を負わない. 54 39 # 55 40 # $Id$ … … 57 42 58 43 # 59 # ãã¹2ã®çæã¹ã¯ãªããã®ã³ã¢ä¾åé¨ï¼RX63xç¨ï¼60 # 61 62 # 63 # å²è¾¼ã¿çªå·ã¨å²è¾¼ã¿ãã³ãã©çªå·ã®å®ç¾©64 # 65 # RX630 ã§ã¯å²è¾¼ã¿çªå·ã¨å²è¾¼ã¿ãã³ãã©çªå·ã1対1ã§å¯¾å¿ããï¼44 # パス2の生成スクリプトのコア依存部(RX63x用) 45 # 46 47 # 48 # 割込み番号と割込みハンドラ番号の定義 49 # 50 # RX630では割込み番号と割込みハンドラ番号が1対1で対応する. 66 51 # 67 52 $INTNO_VALID = [ 16, 21, 23, *(27..59), 62, *(64..79), 90, 91, 92, 93, 98, 102, *(106..112), 114, *(122..167), *(170..203), *(214..253) ] … … 69 54 70 55 # 71 # ä¾å¤çªå·ã®å®ç¾©72 # 73 # åºå®ãã¯ã¿ãã¼ãã«ã®ãã¯ã¿ãã¼ãã«ã¢ãã¬ã¹ã®å°ããé çªã«ä¾å¤çªå·ãå²æ¯ãï¼74 # ( äºç´é åãå«ã)56 # 例外番号の定義 57 # 58 # 固定ベクタテーブルのベクタテーブルアドレスの小さい順番に例外番号を割振る. 59 # (予約領域も含む) 75 60 # 76 61 … … 78 63 79 64 # 80 # INT å²è¾¼ã¿ã®çªå·65 # INT割込みの番号 81 66 # 82 67 … … 84 69 85 70 # 86 # å²è¾¼ã¿çªå·ï¼å²è¾¼ã¿ãã³ãã©çªå·ï¼ä¾å¤çªå·ã®ç¯å²87 # 88 # ( äºç´é åãå«ã)71 # 割込み番号,割込みハンドラ番号,例外番号の範囲 72 # 73 # (予約領域も含む) 89 74 # 90 75 … … 94 79 95 80 # 96 # ATT_ISR ã§ä½¿ç¨ã§ããå²è¾¼ã¿çªå·ã¨ããã«å¯¾å¿ããå²è¾¼ã¿ãã³ãã©çªå·81 # ATT_ISRで使用できる割込み番号とそれに対応する割込みハンドラ番号 97 82 # 98 83 … … 102 87 103 88 # 104 # DEF_INT ï¼DEF_EXCã§ä½¿ç¨ã§ããå²è¾¼ã¿ãã³ãã©çªå·ï¼CPUä¾å¤ãã³ãã©çªå·89 # DEF_INT/DEF_EXCで使用できる割込みハンドラ番号/CPU例外ハンドラ番号 105 90 # 106 91 … … 110 95 111 96 # 112 # CFG_INTã§ä½¿ç¨ã§ããå²è¾¼ã¿çªå·ã¨å²è¾¼ã¿åªå 113 度 97 # CFG_INTで使用できる割込み番号と割込み優先度 114 98 # 115 99 … … 119 103 120 104 # 121 # ã¿ã¼ã²ããéä¾åé¨ã«å«ã¾ããæ¨æºã®å²è¾¼ã¿ç®¡çæ©è½/ä¾å¤ç®¡çæ©è½ã®åæåå¦çã使ç¨ãã105 # ターゲット非依存部に含まれる標準の割込み管理機能/例外管理機能の初期化処理を使用する 122 106 # 123 107 … … 127 111 128 112 # 129 # ã¹ã¿ãã¯ãµã¤ãºã®ãã§ãã¯æ¹æ³æå®113 # スタックサイズのチェック方法指定 130 114 # 131 115 … … 134 118 135 119 # 136 # ã¿ã¹ã¯ã¹ã¿ãã¯ãµã¤ãºã®æå°å¤ 137 # 138 # ã¿ã¹ã¯èµ·åæã«4byte, 139 # å²è¾¼ã¿å 140 ¥å£å¦çã«ã¦48byte, CPUä¾å¤å 141 ¥å£å¦çã«ã¦84byte, 142 # ã§ãããã, æå°å¤ã¯88byteã¨ãã. 120 # タスクスタックサイズの最小値 121 # 122 # タスク起動時に4byte, 123 # 割込み入口処理にて48byte, CPU例外入口処理にて84byte, 124 # であるため, 最小値は88byteとする. 143 125 # 144 126 … … 146 128 147 129 # 148 # å®æ°å®ç¾©130 # 定数定義 149 131 # 150 132 … … 152 134 153 135 # 154 # ã¿ã¼ã²ããå®ç¾©ã®å²è¾¼ã¿è¦æ±ã©ã¤ã³å±æ§136 # ターゲット定義の割込み要求ライン属性 155 137 # 156 138 $TARGET_INTATR = $TA_POSEDGE|$TA_NEGEDGE|$TA_BOTHEDGE|$TA_LOWLEVEL 157 139 158 140 # 159 # ã¿ã¼ã²ããä¾åã®å²è¾¼ã¿ãã³ãã©å±æ§ã®å®ç¾©141 # ターゲット依存の割込みハンドラ属性の定義 160 142 # 161 143 … … 164 146 165 147 # 166 # ã«ã¼ãã«ç®¡çå¤å²è¾¼ã¿ãã³ãã©ã¯åºå®ãããªããã,148 # カーネル管理外割込みハンドラは固定させないため, 167 149 # INTNO_FIX_KERNEL 168 150 # INHNO_FIX_KERNEL 169 151 # INHNO_FIX_NONKERNEL 170 152 # INHNO_FIX_NONKERNEL 171 # ãå®ç¾©ããªã.153 # を定義しない. 172 154 # 173 155 … … 176 158 177 159 # 178 # æ¨æºãã³ãã¬ã¼ããã¡ã¤ã«ã®ã¤ã³ã¯ã«ã¼ã160 # 標準テンプレートファイルのインクルード 179 161 # 180 162 IncludeTrb("kernel/kernel.trb") 181 163 182 164 # 183 # å²è¾¼ã¿çªå·ããå²è¾¼ã¿åªå 184 度åã³å±æ§ãåãåºããã¼ãã« 165 # 割込み番号から割込み優先度及び属性を取り出すテーブル 185 166 # 186 167 $kernelCfgC.comment_header("Interrupt Level and Attribute Table") … … 201 182 202 183 # 203 # å²è¾¼ã¿ãã¯ã¿åã³å²è¾¼ã¿ãã³ãã©å®ç¾©184 # 割込みベクタ及び割込みハンドラ定義 204 185 # 205 186 $kernelCfgAsm.add(<<EOS) 206 187 ; 207 ; RX630 ã¢ã¼ããã¯ãã£ä¾ååºåãã¡ã¤ã«208 ; 209 ; å²è¾¼ã¿ãã¯ã¿åã³å²è¾¼ã¿ãã³ãã©å®ç¾©188 ; RX630アーキテクチャ依存出力ファイル 189 ; 190 ; 割込みベクタ及び割込みハンドラ定義 210 191 ; 211 192 … … 277 258 $kernelCfgAsm.append(<<EOS) 278 259 ; 279 ; å¯å¤ãã¯ã¿ãã¼ãã«260 ; 可変ベクタテーブル 280 261 ; 281 262 … … 305 286 $kernelCfgAsm.append(<<EOS) 306 287 ; 307 ; åºå®ãã¯ã¿ãã¼ãã«288 ; 固定ベクタテーブル 308 289 ; 309 290 … … 318 299 .word 0FFFFFFFFH ; OFS0 319 300 .space 010H 320 .word 0FFFFFFFFH ; å¶å¾¡ã³ã¼ã, IDã³ã¼ã1 - 3321 .word 0FFFFFFFFH ; ID ã³ã¼ã4 - 7322 .word 0FFFFFFFFH ; ID ã³ã¼ã8 - 11323 .word 0FFFFFFFFH ; ID ã³ã¼ã12 - 15301 .word 0FFFFFFFFH ; 制御コード, IDコード1 - 3 302 .word 0FFFFFFFFH ; IDコード4 - 7 303 .word 0FFFFFFFFH ; IDコード8 - 11 304 .word 0FFFFFFFFH ; IDコード12 - 15 324 305 EOS 325 306 (12..30).each do |excnoVal| … … 338 319 339 320 # 340 # å²è¾¼ã¿è¦æ±ã©ã¤ã³å±æ§ã«é¢ããã¿ã¼ã²ããä¾åã®ã¨ã©ã¼ãã§ãã¯321 # 割込み要求ライン属性に関するターゲット依存のエラーチェック 341 322 # 342 323 $cfgData[:CFG_INT].each do |key, params| 343 # IRQ å²è¾¼ã¿çªå·ãã©ããããã§ãã¯324 # IRQ割込み番号かどうかをチェック 344 325 if $INTNO_INT.include?(key) 345 # TA_POSEDGE ã¨TA_NEGEDGEãåæã«è¨å®ããã¦ããå ´å326 # TA_POSEDGEとTA_NEGEDGEが同時に設定されている場合 346 327 if (params[:intatr].val & ($TA_POSEDGE|$TA_NEGEDGE)) == $TA_POSEDGE|$TA_NEGEDGE 347 328 error_illegal_sym("E_RSATR", params, :intatr, :intno) 348 329 end 349 # TA_POSEDGE ã¨TA_BOTHEDGEãåæã«è¨å®ããã¦ããå ´å330 # TA_POSEDGEとTA_BOTHEDGEが同時に設定されている場合 350 331 if (params[:intatr].val & ($TA_POSEDGE|$TA_BOTHEDGE)) == $TA_POSEDGE|$TA_BOTHEDGE 351 332 error_illegal_sym("E_RSATR", params, :intatr, :intno) 352 333 end 353 # TA_NEGEDGE ã¨TA_BOTHEDGEãåæã«è¨å®ããã¦ããå ´å334 # TA_NEGEDGEとTA_BOTHEDGEが同時に設定されている場合 354 335 if (params[:intatr].val & ($TA_NEGEDGE|$TA_BOTHEDGE)) == $TA_NEGEDGE|$TA_BOTHEDGE 355 336 error_illegal_sym("E_RSATR", params, :intatr, :intno) 356 337 end 357 # TA_POSEDGE ã¨TA_NEGEDGEã¨TA_BOTHEDGEãåæã«è¨å®ããã¦ããå ´å338 # TA_POSEDGEとTA_NEGEDGEとTA_BOTHEDGEが同時に設定されている場合 358 339 if (params[:intatr].val & ($TA_POSEDGE|$TA_NEGEDGE|$TA_BOTHEDGE)) == $TA_POSEDGE|$TA_NEGEDGE|$TA_BOTHEDGE 359 340 error_illegal_sym("E_RSATR", params, :intatr, :intno) 360 341 end 361 342 else 362 # IRQ å²è¾¼ã¿ä»¥å¤ã®å²è¾¼ã¿ã«å¯¾ãã¦å²è¾¼ã¿å±æ§ãæå®ããã¦ããå ´å343 # IRQ割込み以外の割込みに対して割込み属性が指定されている場合 363 344 if (params[:intatr].val & (~($TA_ENAINT|$TA_EDGE))) != 0 364 345 error_illegal_sym("E_RSATR", params, :intatr, :intno) -
Property svn:mime-type
changed from
Note:
See TracChangeset
for help on using the changeset viewer.