- 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_impl.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r388 r389 10 10 * Copyright (C) 2008-2010 by Witz Corporation, JAPAN 11 11 * 12 * ä¸è¨èä½æ¨©è 13 ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ 14 * ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹ 15 * å¤ã»åé 16 å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 17 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 18 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 19 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 20 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 21 * ç¨ã§ããå½¢ã§åé 22 å¸ããå ´åã«ã¯ï¼åé 23 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 24 * è 25 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 26 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 27 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 28 * ç¨ã§ããªãå½¢ã§åé 29 å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã 30 * ã¨ï¼ 31 * (a) åé 32 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 33 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 34 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 35 * (b) åé 36 å¸ã®å½¢æ 37 ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSããã¸ã§ã¯ãã« 38 * å ±åãããã¨ï¼ 39 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 40 * 害ãããï¼ä¸è¨èä½æ¨©è 41 ããã³TOPPERSããã¸ã§ã¯ããå 42 責ãããã¨ï¼ 43 * ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç 44 * ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è 45 ããã³TOPPERSããã¸ã§ã¯ãã 46 * å 47 責ãããã¨ï¼ 48 * 49 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 50 ã 51 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç 52 * ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ 53 * ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ã 54 * ã®è²¬ä»»ãè² ããªãï¼ 12 * 上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ 13 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 14 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 15 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 16 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 17 * スコード中に含まれていること. 18 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 19 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 20 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 21 * の無保証規定を掲載すること. 22 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 23 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 24 * と. 25 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 26 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 27 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 28 * 報告すること. 29 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 30 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 31 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 32 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 33 * 免責すること. 34 * 35 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 36 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 37 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 38 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 39 * の責任を負わない. 55 40 * 56 41 * @(#) $Id$ … … 58 43 59 44 /* 60 * ããã»ããµä¾åã¢ã¸ã¥ã¼ã«ï¼RX630ç¨ï¼45 * プロセッサ依存モジュール(RX630用) 61 46 */ 62 47 … … 66 51 67 52 /* 68 * å²è¾¼ã¿çºçåæ°ãä¿åããå¤æ°53 * 割込み発生回数を保存する変数 69 54 */ 70 55 uint16_t intnest; 71 56 72 57 /* 73 * CPU ããã¯ãã©ã°å®ç¾ã®ããã®å¤æ°58 * CPUロックフラグ実現のための変数 74 59 */ 75 60 #if TIPM_LOCK != -15 76 bool_t lock_flag; /* CPUããã¯ãã©ã°ã®å¤ãä¿æããå¤æ° */ 77 uint32_t saved_ipl; /* å²è¾¼ã¿åªå 78 度ã¬ãã«ãä¿åããå¤æ° */ 61 bool_t lock_flag; /* CPUロックフラグの値を保持する変数 */ 62 uint32_t saved_ipl; /* 割込み優先度レベルを保存する変数 */ 79 63 #endif /* TIPM_LOCK != -15 */ 80 64 81 65 82 66 /* 83 * ããã»ããµä¾åã®åæå67 * プロセッサ依存の初期化 84 68 */ 85 69 void … … 87 71 { 88 72 /* 89 * å²è¾¼ã¿çºçåæ°ã®åæå 90 * 91 * ã¹ã¿ã¼ãã¢ããã¯å 92 ¨å²è¾¼ã¿ããã¯ç¶æ 93 & éã¿ã¹ã¯ã³ã³ããã¹ã 94 * ã«ã¦åä½ãããã, éã¿ã¹ã¯ã³ã³ããã¹ãã«å½è£ 95 ãã. 73 * 割込み発生回数の初期化 74 * 75 * スタートアップは全割込みロック状態 & 非タスクコンテキスト 76 * にて動作するため, 非タスクコンテキストに偽装する. 96 77 */ 97 78 intnest = 1U; … … 99 80 #if TIPM_LOCK != -15 100 81 /* 101 * CPU ããã¯ãã©ã°å®ç¾ã®ããã®å¤æ°ã®åæå82 * CPUロックフラグ実現のための変数の初期化 102 83 */ 103 84 lock_flag = true; … … 108 89 109 90 /* 110 * ããã»ããµä¾åã®çµäºå¦ç91 * プロセッサ依存の終了処理 111 92 */ 112 93 void … … 114 95 { 115 96 /* 116 * ç¹ã«å¿ 117 è¦ãªå¦çã¯ãªã 118 */ 119 } 120 121 122 /* 123 * CPUä¾å¤ã®çºçç¶æ³ã®ãã°åºå 97 * 特に必要な処理はない 98 */ 99 } 100 101 102 /* 103 * CPU例外の発生状況のログ出力 124 104 * 125 * CPUä¾å¤ãã³ãã©ã®ä¸ããï¼CPUä¾å¤æ 126 å ±ãã¤ã³ã¿ï¼p_excinfï¼ãå¼æ°ã¨ã 127 * ã¦å¼ã³åºããã¨ã§ï¼CPUä¾å¤ã®çºçç¶æ³ãã·ã¹ãã ãã°ã«åºåããï¼ 105 * CPU例外ハンドラの中から,CPU例外情報ポインタ(p_excinf)を引数とし 106 * て呼び出すことで,CPU例外の発生状況をシステムログに出力する. 128 107 */ 129 108 #ifdef SUPPORT_XLOG_SYS … … 156 135 157 136 /* 158 * å²è¾¼ã¿è¦æ±ã©ã¤ã³ã®å±æ§ã®è¨å®137 * 割込み要求ラインの属性の設定 159 138 * 160 * ASP ã«ã¼ãã«ã§ã®å©ç¨ãæ³å®ãã¦ï¼ãã©ã¡ã¼ã¿ã¨ã©ã¼ã¯ã¢ãµã¼ã·ã§ã³ã§ãã§ã161 * ã¯ãã¦ããï¼cfg_intãµã¼ãã¹ã³ã¼ã«ãè¨ããå ´åã«ã¯ï¼ã¨ã©ã¼ãè¿ããã162 * ã«ãã¹ãã§ãããï¼139 * ASPカーネルでの利用を想定して,パラメータエラーはアサーションでチェッ 140 * クしている.cfg_intサービスコールを設ける場合には,エラーを返すよう 141 * にすべきであろう. 163 142 */ 164 143 void … … 181 160 182 161 /* 183 * å²è¾¼ã¿ã®ãã¹ã¯ 184 * 185 * å²è¾¼ã¿ãåãä»ããã¾ã¾ï¼ã¬ãã«ããªã¬ï¼ã¨ãã¸ããªã¬ã®è¨å®ãï¼å² 186 * è¾¼ã¿åªå 187 度ã®è¨å®ãè¡ãã®ã¯å±éºãªããï¼å²è¾¼ã¿å±æ§ã«ãããããï¼ 188 * ä¸æ¦ãã¹ã¯ããï¼ 162 * 割込みのマスク 163 * 164 * 割込みを受け付けたまま,レベルトリガ/エッジトリガの設定や,割 165 * 込み優先度の設定を行うのは危険なため,割込み属性にかかわらず, 166 * 一旦マスクする. 189 167 */ 190 168 ( void )disable_int( intno ); 191 169 192 170 /* 193 * ã¬ãã«ããªã¬/ã¨ãã¸ããªã¬ã®è¨å®194 * 195 * IRQ ã®ã¿ãµãã¼ããã171 * レベルトリガ/エッジトリガの設定 172 * 173 * IRQのみサポートする 196 174 */ 197 175 if( INTNO_IRQ( intno ) != 0U ){ … … 212 190 else{ 213 191 /* 214 * ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã«ã¦ãã§ãã¯ãã¦ãããã,215 * ããã¸ãããã¨ã¯ããããªã.192 * コンフィギュレータにてチェックしているため, 193 * ここへくることはありえない. 216 194 */ 217 195 irq_val = 0U; … … 222 200 223 201 /* 224 * å²è¾¼ã¿ã¬ãã«ã®è¨å®225 * 226 * å²è¾¼ã¿çªå·ã«å¯¾å¿ããIPRå¤ãè¨å®ãã.202 * 割込みレベルの設定 203 * 204 * 割込み番号に対応したIPR値を設定する. 227 205 */ 228 206 sil_wrb_mem(ipr_reg_addr[intno], cfg_int_table[intno].intpri); 229 207 230 208 /* 231 * å²è¾¼ã¿ã®ãã¹ã¯è§£é¤209 * 割込みのマスク解除 232 210 */ 233 211 if( ( intatr & TA_ENAINT ) != 0U ){ … … 239 217 #ifndef OMIT_DEFAULT_INT_HANDLER 240 218 /* 241 * æªç»é²ã®å²è¾¼ã¿ãçºçããå ´åã«å¼ã³åºããã219 * 未登録の割込みが発生した場合に呼び出される 242 220 */ 243 221 void … … 250 228 #ifndef OMIT_DEFAULT_EXC_HANDLER 251 229 /* 252 * æªç»é²ã®ä¾å¤ãçºçããå ´åã«å¼ã³åºããã230 * 未登録の例外が発生した場合に呼び出される 253 231 */ 254 232 void
Note:
See TracChangeset
for help on using the changeset viewer.