Changeset 321 for EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/start.S
- 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/common/start.S
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r270 r321 8 8 * Graduate School of Information Science, Nagoya Univ., 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 * ã«ã¼ãã«ç¨ã®ã¹ã¿ã¼ãã¢ããã¢ã¸ã¥ã¼ã«ï¼ARMç¨ï¼43 * カーネル用のスタートアップモジュール(ARM用) 59 44 */ 60 45 61 46 #define TOPPERS_MACRO_ONLY 62 47 #define TOPPERS_ASM_MACRO 63 #define UINT_C(val) (val) /* uint_t åã®å®æ°ãä½ããã¯ã*/64 #define ULONG_C(val) (val) /* ulong_t åã®å®æ°ãä½ããã¯ã*/65 #define CAST(type, val) (val) /* åãã£ã¹ããè¡ããã¯ã*/48 #define UINT_C(val) (val) /* uint_t型の定数を作るマクロ */ 49 #define ULONG_C(val) (val) /* ulong_t型の定数を作るマクロ */ 50 #define CAST(type, val) (val) /* 型キャストを行うマクロ */ 66 51 #include "kernel_impl.h" 67 52 #include "core_asm.inc" … … 72 57 ALABEL(start) 73 58 /* 74 * ããã»ããµã¢ã¼ãã®åæå59 * プロセッサモードの初期化 75 60 * 76 * ã¹ã¼ããã¤ã¶ã¢ã¼ãï¼å 77 ¨å²è¾¼ã¿ããã¯ç¶æ 78 ã«åæåããï¼ 61 * スーパバイザモード,全割込みロック状態に初期化する. 79 62 */ 80 63 msr cpsr_cxsf, #(CPSR_SVC_MODE AOR CPSR_INTLOCK) 81 64 82 65 /* 83 * ã¹ã¿ãã¯ãã¤ã³ã¿ã¨ãã¬ã¼ã ãã¤ã³ã¿ã®åæå66 * スタックポインタとフレームポインタの初期化 84 67 */ 85 68 ldr r0, =_kernel_istkpt 86 ldr sp, [r0] /* ã¹ã¿ãã¯ãã¤ã³ã¿ï¼spï¼*/87 mov fp, #0 /* ARM ã¢ã¼ãç¨ãã¬ã¼ã ãã¤ã³ã¿ï¼r11ï¼*/88 mov r7, #0 /* Thumb ã¢ã¼ãç¨ãã¬ã¼ã ãã¤ã³ã¿ï¼r7ï¼*/69 ldr sp, [r0] /* スタックポインタ(sp)*/ 70 mov fp, #0 /* ARMモード用フレームポインタ(r11)*/ 71 mov r7, #0 /* Thumbモード用フレームポインタ(r7)*/ 89 72 90 73 /* 91 * hardware_init_hook ã®å¼åºãï¼0ã§ãªãå ´åï¼74 * hardware_init_hookの呼出し(0でない場合) 92 75 * 93 * ã¿ã¼ã²ãããã¼ãã¦ã§ã¢ã«ä¾åãã¦å¿ 94 è¦ãªåæåå¦çãããå ´åã¯ï¼ 95 * hardware_init_hookã¨ããé¢æ°ãç¨æããï¼ 76 * ターゲットハードウェアに依存して必要な初期化処理がある場合は, 77 * hardware_init_hookという関数を用意する. 96 78 */ 97 79 ldr r0, =hardware_init_hook … … 102 84 #ifndef TOPPERS_OMIT_BSS_INIT 103 85 /* 104 * bss ã»ã¯ã·ã§ã³ã®ã¯ãªã¢86 * bssセクションのクリア 105 87 * 106 * BSS_START ããBSS_ENDã¾ã§ãã¼ãã¯ãªã¢ããï¼88 * BSS_STARTからBSS_ENDまでをゼロクリアする. 107 89 */ 108 90 ldr r0, =BSS_START … … 125 107 #ifndef TOPPERS_OMIT_DATA_INIT 126 108 /* 127 * data ã»ã¯ã·ã§ã³ã®åæåï¼ROMå対å¿ï¼109 * dataセクションの初期化(ROM化対応) 128 110 * 129 * DATA_START ããDATA_ENDã¾ã§ã«ï¼IDATA_START以éããã³ãã¼ããï¼130 * IDATA_START ããIDATA_ENDã¾ã§ãï¼DATA_START以éã«ã³ãã¼ããï¼111 * DATA_STARTからDATA_ENDまでに,IDATA_START以降からコピーする. 112 * IDATA_STARTからIDATA_ENDまでを,DATA_START以降にコピーする. 131 113 */ 132 114 ldr r0, =DATA_START … … 149 131 150 132 /* 151 * software_init_hook ã®å¼åºãï¼0ã§ãªãå ´åï¼133 * software_init_hookの呼出し(0でない場合) 152 134 * 153 * ã½ããã¦ã§ã¢ç°å¢ï¼ç¹ã«ã©ã¤ãã©ãªï¼ã«ä¾åãã¦å¿ 154 è¦ãªåæåå¦çã 155 * ããå ´åã¯ï¼software_init_hookã¨ããé¢æ°ãç¨æããã°ããï¼ 135 * ソフトウェア環境(特にライブラリ)に依存して必要な初期化処理が 136 * ある場合は,software_init_hookという関数を用意すればよい. 156 137 */ 157 138 ldr r0, =software_init_hook … … 161 142 162 143 /* 163 * ã«ã¼ãã«ã®èµ·å144 * カーネルの起動 164 145 */ 165 146 b sta_ker
Note:
See TracChangeset
for help on using the changeset viewer.