Changeset 386 for ssp_rpi3/trunk/arch/arm64_gcc/common/core_config.h
- Timestamp:
- Apr 17, 2019, 12:13:00 PM (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
ssp_rpi3/trunk/arch/arm64_gcc/common/core_config.h
-
Property svn:mime-type
set to
text/plain; charset=utf-8
r384 r386 8 8 * Nagoya Municipal Industrial Research Institute, JAPAN 9 9 * 10 * ä¸è¨èä½æ¨©è 11 ã¯ï¼ä»¥ä¸ã®(1)ã(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ 12 * ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹ 13 * å¤ã»åé 14 å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã 28 * ã¨ï¼ 29 * (a) åé 30 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 31 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 32 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 33 * (b) åé 34 å¸ã®å½¢æ 35 ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSããã¸ã§ã¯ãã« 36 * å ±åãããã¨ï¼ 37 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 38 * 害ãããï¼ä¸è¨èä½æ¨©è 39 ããã³TOPPERSããã¸ã§ã¯ããå 40 責ãããã¨ï¼ 41 * ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç 42 * ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è 43 ããã³TOPPERSããã¸ã§ã¯ãã 44 * å 45 責ãããã¨ï¼ 10 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 11 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 12 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 13 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 14 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 15 * スコード中に含まれていること. 16 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 17 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 18 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 19 * の無保証規定を掲載すること. 20 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 21 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 22 * と. 23 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 24 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 25 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 26 * 報告すること. 27 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 28 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 29 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 30 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 31 * 免責すること. 46 32 * 47 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 48 ã 49 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç 50 * ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ 51 * ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ã 52 * ã®è²¬ä»»ãè² ããªãï¼ 33 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 34 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 35 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 36 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 37 * の責任を負わない. 53 38 * 54 39 * @(#) $Id$ … … 56 41 57 42 /* 58 * ã³ã¢ä¾åã¢ã¸ã¥ã¼ã«ï¼ARMv8-Aç¨ï¼43 * コア依存モジュール(ARMv8-A用) 59 44 * 60 * ãã®ã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã¯ï¼target_config.hï¼ã¾ãã¯ï¼ããããã¤ã³ã¯61 * ã«ã¼ãããããã¡ã¤ã«ï¼ã®ã¿ããã¤ã³ã¯ã«ã¼ããããï¼ä»ã®ãã¡ã¤ã«ãã62 * ç´æ¥ã¤ã³ã¯ã«ã¼ããã¦ã¯ãªããªãï¼45 * このインクルードファイルは,target_config.h(または,そこからインク 46 * ルードされるファイル)のみからインクルードされる.他のファイルから 47 * 直接インクルードしてはならない. 63 48 */ 64 49 … … 67 52 68 53 /* 69 * ãã¼ãã¦ã§ã¢å®ç¾©54 * ハードウェア定義 70 55 */ 71 56 #include "arm64.h" 72 57 73 58 /* 74 * éã¿ã¹ã¯ã³ã³ããã¹ãç¨ã®ã¹ã¿ãã¯åæå¤59 * 非タスクコンテキスト用のスタック初期値 75 60 */ 76 61 #define TOPPERS_ISTKPT(istk, istksz) ((STK_T *)((char *)(istk) + (istksz))) … … 79 64 80 65 /* 81 * å²è¾¼ã¿ãã¹ãæ°66 * 割込みネスト数 82 67 */ 83 68 extern uint8_t intnest; 84 69 85 70 /* 86 * ã³ã³ããã¹ãã®åç 87 § 71 * コンテキストの参照 88 72 * 89 73 */ … … 104 88 105 89 /* 106 * ãã£ã¹ãããã£ã®åä½éå§ï¼core_support.Sï¼90 * ディスパッチャの動作開始(core_support.S) 107 91 * 108 * start_dispatchã¯ï¼ã«ã¼ãã«èµ·åæã«å¼ã³åºãã¹ããã®ã§ï¼ãã¹ã¦ã®å²è¾¼ 109 * ã¿ãç¦æ¢ããç¶æ 110 ï¼å²è¾¼ã¿ããã¯ç¶æ 111 ã¨åçã®ç¶æ 112 ï¼ã§å¼ã³åºããªããã° 113 * ãªããªãï¼ 92 * start_dispatchは,カーネル起動時に呼び出すべきもので,すべての割込 93 * みを禁止した状態(割込みロック状態と同等の状態)で呼び出さなければ 94 * ならない. 114 95 */ 115 96 extern void start_dispatch(void) NoReturn; 116 97 117 98 /* 118 * ã«ã¼ãã«ã®çµäºå¦çã®å¼åºãï¼prc_support.Sï¼99 * カーネルの終了処理の呼出し(prc_support.S) 119 100 * 120 * call_exit_kernel ã¯ï¼ã«ã¼ãã«ã®çµäºæã«å¼ã³åºãã¹ããã®ã§ï¼éã¿ã¹ã¯121 * ã³ã³ããã¹ãã«åãæãã¦ï¼ã«ã¼ãã«ã®çµäºå¦çï¼exit_kernelï¼ãå¼ã³åº122 * ãï¼101 * call_exit_kernelは,カーネルの終了時に呼び出すべきもので,非タスク 102 * コンテキストに切り換えて,カーネルの終了処理(exit_kernel)を呼び出 103 * す. 123 104 */ 124 105 extern void call_exit_kernel(void) NoReturn; 125 106 126 107 /* 127 * ã¢ã¤ãã«ã«ã¼ãã®å®è£ 128 108 * アイドルループの実装 129 109 * 130 * åã«CPUããã¯ç¶æ 131 ã¨CPUããã¯è§£é¤ç¶æ 132 ãå¼ã³åºãå®è£ 133 ã¨ããï¼ 134 * ã¹ãªã¼ãã¢ã¼ãã«å 135 ¥ããå ´åã¯æ¬å¦çãwfiå½ä»¤ãç¨ãã¦æ¸ãæããã°è¯ãï¼ 110 * 単にCPUロック状態とCPUロック解除状態を呼び出す実装とする. 111 * スリープモードに入れる場合は本処理をwfi命令を用いて書き換えれば良い. 136 112 */ 137 113 Inline void … … 139 115 { 140 116 x_unlock_cpu(); 141 /* CPU ã¢ã³ãã㯠=> CPUããã¯*/117 /* CPUアンロック => CPUロック */ 142 118 x_lock_cpu(); 143 119 } 144 120 145 121 /* 146 * ã³ã¢ä¾åã®åæå122 * コア依存の初期化 147 123 */ 148 124 extern void core_initialize(void); 149 125 150 126 /* 151 * ã³ã¢ä¾åã®çµäºæå¦ç127 * コア依存の終了時処理 152 128 */ 153 129 extern void core_terminate(void) NoReturn; 154 130 155 131 /* 156 * å²è¾¼ã¿ãã³ãã©ã®å¼ã³åºã132 * 割込みハンドラの呼び出し 157 133 */ 158 134 extern void call_int_handler(uint32_t intno); 159 135 160 136 /* 161 * CPU ä¾å¤ãã³ãã©ã®å¼ã³åºã137 * CPU例外ハンドラの呼び出し 162 138 */ 163 139 extern void call_exc_handler(void *p_excinf, uint32_t excno); 164 140 165 141 /* 166 * FIQãã³ãã©ã®å¼ã³åºã 167 * å 168 ¨ã¦ã®ä¾å¤ããã¹ã¯ãããç¶æ 169 ã§å¼ã³åºããã 170 * ä¾å¤è¦å ã®å¤å¥ãå«ããã(ãããã¯ããããå¼ã³åºãããã«ã¼ãã³)ã§è¡ã 142 * FIQハンドラの呼び出し 143 * 全ての例外がマスクされた状態で呼び出される 144 * 例外要因の判別も含めここ(あるいはここから呼び出されるルーチン)で行う 171 145 */ 172 146 extern void call_fiq_handler(void); 173 147 174 148 /* 175 * ç»é²ããã¦ããªãä¾å¤ãçºçããã¨å¼ã³åºããã149 * 登録されていない例外が発生すると呼び出される 176 150 */ 177 151 extern void default_exc_handler(void *p_excinf); 178 152 179 153 /* 180 * æªç»é²ã®å²è¾¼ã¿ãçºçããå ´åã«å¼ã³åºããã154 * 未登録の割込みが発生した場合に呼び出される 181 155 */ 182 156 extern void default_int_handler(void); -
Property svn:mime-type
set to
Note:
See TracChangeset
for help on using the changeset viewer.