- Timestamp:
- Aug 23, 2017, 9:27:43 AM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/chip_kernel_impl.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r270 r321 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 * ã«ã¼ãã«ã®ãããä¾åé¨ï¼RZ/A1ç¨ï¼44 * カーネルのチップ依存部(RZ/A1用) 60 45 */ 61 46 … … 64 49 65 50 /* 66 * ãããä¾åã®åæå51 * チップ依存の初期化 67 52 */ 68 53 void … … 70 55 { 71 56 /* 72 * ãã£ãã·ã¥ããã£ã¹ã¨ã¼ãã«57 * キャッシュをディスエーブル 73 58 */ 74 59 arm_disable_cache(); 75 60 76 61 /* 77 * ã³ã¢ä¾åã®åæå62 * コア依存の初期化 78 63 */ 79 64 core_initialize(); 80 65 81 66 /* 82 * ãã£ãã·ã¥ãã¤ãã¼ãã«67 * キャッシュをイネーブル 83 68 */ 84 69 arm_enable_cache(); 85 70 86 71 /* 87 * GIC ã®ãã£ã¹ããªãã¥ã¼ã¿ã®åæå72 * GICのディストリビュータの初期化 88 73 */ 89 74 gicd_initialize(); 90 75 91 76 /* 92 * GIC ã®CPUã¤ã³ã¿ãã§ã¼ã¹ã®åæå77 * GICのCPUインタフェースの初期化 93 78 */ 94 79 gicc_initialize(); 95 80 96 81 /* 97 * åå²äºæ¸¬ã®ç¡å¹åã¨ã¤ãã¼ãã«82 * 分岐予測の無効化とイネーブル 98 83 */ 99 84 arm_invalidate_bp(); … … 102 87 103 88 /* 104 * ãããä¾åé¨ã®çµäºå¦ç89 * チップ依存部の終了処理 105 90 */ 106 91 void … … 111 96 112 97 /* 113 * software_term_hookã¸ã®ãã¤ã³ã¿ãï¼ä¸æ¦volatileæå®ã®ããfpã«ä»£ 114 * å 115 ¥ãã¦ãã使ãã®ã¯ï¼0ã¨ã®æ¯è¼ãæé©åã§åé¤ãããªãããã«ããã 116 * ãã§ããï¼ 98 * software_term_hookへのポインタを,一旦volatile指定のあるfpに代 99 * 入してから使うのは,0との比較が最適化で削除されないようにするた 100 * めである. 117 101 */ 118 102 if (fp != 0) { … … 121 105 122 106 /* 123 * GIC ã®CPUã¤ã³ã¿ãã§ã¼ã¹ã®çµäºå¦ç107 * GICのCPUインタフェースの終了処理 124 108 */ 125 109 gicc_terminate(); 126 110 127 111 /* 128 * GIC ã®ãã£ã¹ããªãã¥ã¼ã¿ã®çµäºå¦ç112 * GICのディストリビュータの終了処理 129 113 */ 130 114 gicd_terminate(); 131 115 132 116 /* 133 * ã³ã¢ä¾åã®çµäºå¦ç117 * コア依存の終了処理 134 118 */ 135 119 core_terminate(); … … 137 121 138 122 /* 139 * å²è¾¼ã¿è¦æ±ã©ã¤ã³ã®å±æ§ã®è¨å®140 * 141 * ASP ã«ã¼ãã«ã§ã®å©ç¨ãæ³å®ãã¦ï¼ãã©ã¡ã¼ã¿ã¨ã©ã¼ã¯ã¢ãµã¼ã·ã§ã³ã§ãã§ã142 * ã¯ãã¦ããï¼123 * 割込み要求ラインの属性の設定 124 * 125 * ASPカーネルでの利用を想定して,パラメータエラーはアサーションでチェッ 126 * クしている. 143 127 */ 144 128 Inline void … … 149 133 150 134 /* 151 * å²è¾¼ã¿ãç¦æ¢135 * 割込みを禁止 152 136 * 153 * å²è¾¼ã¿ãåãä»ããã¾ã¾ï¼ã¬ãã«ããªã¬ï¼ã¨ãã¸ããªã¬ã®è¨å®ãï¼å² 154 * è¾¼ã¿åªå 155 度ã®è¨å®ãè¡ãã®ã¯å±éºãªããï¼å²è¾¼ã¿å±æ§ã«ãããããï¼ 156 * ä¸æ¦ãã¹ã¯ããï¼ 137 * 割込みを受け付けたまま,レベルトリガ/エッジトリガの設定や,割 138 * 込み優先度の設定を行うのは危険なため,割込み属性にかかわらず, 139 * 一旦マスクする. 157 140 */ 158 141 disable_int(intno); 159 142 160 143 /* 161 * å²è¾¼ã¿ãã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³144 * 割込みをコンフィギュレーション 162 145 */ 163 146 #ifdef TOPPERS_SAFEG_SECURE … … 191 174 192 175 /* 193 * å²è¾¼ã¿åªå 194 度ã¨ã¿ã¼ã²ããããã»ããµãè¨å® 176 * 割込み優先度とターゲットプロセッサを設定 195 177 */ 196 178 gicd_set_priority(intno, INT_IPM(intpri)); … … 198 180 199 181 /* 200 * å²è¾¼ã¿ã許å¯182 * 割込みを許可 201 183 */ 202 184 if ((intatr & TA_ENAINT) != 0U) { … … 206 188 207 189 /* 208 * å²è¾¼ã¿ç®¡çæ©è½ã®åæå190 * 割込み管理機能の初期化 209 191 */ 210 192 void
Note:
See TracChangeset
for help on using the changeset viewer.