Changeset 318 for asp3_gr_sakura/trunk/arch/rx630_gcc/start.S
- Timestamp:
- Aug 3, 2017, 10:46:41 PM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
asp3_gr_sakura/trunk/arch/rx630_gcc/start.S
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain; charset=UTF-8
r317 r318 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 責ãããã¨ï¼ 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 ;* 免責すること. 48 34 ;* 49 ;* æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 50 ã 51 ;* ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç 52 ;* ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ 53 ;* ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ã 54 ;* ã®è²¬ä»»ãè² ããªãï¼ 35 ;* 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 36 ;* よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 37 ;* に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 38 ;* アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 39 ;* の責任を負わない. 55 40 ;* 56 41 ;* @(#) $Id$ … … 58 43 59 44 #define TOPPERS_MACRO_ONLY 60 #define UINT_C(val) (val) /* uint_t åã®å®æ°ãä½ããã¯ã*/61 #define ULONG_C(val) (val) /* ulong_t åã®å®æ°ãä½ããã¯ã*/62 #define CAST(type, val) (val) /* åãã£ã¹ããè¡ããã¯ã*/45 #define UINT_C(val) (val) /* uint_t型の定数を作るマクロ */ 46 #define ULONG_C(val) (val) /* ulong_t型の定数を作るマクロ */ 47 #define CAST(type, val) (val) /* 型キャストを行うマクロ */ 63 48 #include "kernel_impl.h" 64 49 #include "sectrx.inc" 65 50 66 51 ; 67 ; ã¡ã¢ãªãããã®å®ç¾©(ã¿ã¼ã²ããä¾åé¨)52 ; メモリマップの定義(ターゲット依存部) 68 53 ; 69 54 70 .equ DFLRE, 007FC440H ; DFLRE ã¬ã¸ã¹ã¿55 .equ DFLRE, 007FC440H ; DFLREレジスタ 71 56 72 57 .equ DB_BLOCK_ENABLE, 02D0FH 73 58 74 59 ; 75 ; åæåã«ã¼ãã³60 ; 初期化ルーチン 76 61 ; 77 62 .section P, CODE … … 86 71 _start: 87 72 ; 88 ; é»æºæå 89 ¥å¾ã¯ã¬ãã«0, å 90 ¨å²è¾¼ã¿ç¦æ¢ç¶æ 91 ã§ãã. 92 ; ã«ã¼ãã«ã§ã¯é«éå²è¾¼ã¿ã使ç¨ããªããããBPC, BPSWåã³FINTV 93 ; ã®åæåã¯è¡ããªã. 73 ; 電源投入後はレベル0, 全割込み禁止状態である. 74 ; カーネルでは高速割込みを使用しないため、BPC, BPSW及びFINTV 75 ; の初期化は行わない. 94 76 ; 95 77 96 78 ; 97 ; å 98 èµROMï¼ãã¼ã¿ãã©ãã·ã¥ï¼é åã®è¨å® 79 ; 内蔵ROM(データフラッシュ)領域の設定 99 80 ; 100 ; ãªã»ããå¾, ãã¼ã¿ãã©ãã·ã¥é åã¯èªã¿åºãç¦æ¢ã¨ãªã£ã¦ãã101 ; ãã, èªã¿åºã許å¯ã«è¨å®ãã.81 ; リセット後, データフラッシュ領域は読み出し禁止となっている 82 ; ため, 読み出し許可に設定する. 102 83 ; 103 84 mov.l #DFLRE, r5 … … 105 86 106 87 ; 107 ; ã¹ã¿ãã¯ãã¤ã³ã¿ã®è¨å®88 ; スタックポインタの設定 108 89 ; 109 ; ã¦ã¼ã¶ã«ã¦éã¿ã¹ã¯ã³ã³ããã¹ãç¨ã¹ã¿ãã¯é åãç¨æããå ´å,110 ; ã¦ã¼ã¶é åãè¨å®ãã.111 ; kernel_cfg.c ã«ã¦"_kernel_istkpt"ã®å¤ã決å®ãã.90 ; ユーザにて非タスクコンテキスト用スタック領域を用意した場合, 91 ; ユーザ領域を設定する. 92 ; kernel_cfg.cにて"_kernel_istkpt"の値を決定する. 112 93 ; 113 94 mov.l #__kernel_istkpt, r5 114 mov.l [r5], r0 ; éã¿ã¹ã¯ã³ã³ããã¹ãç¨ã¹ã¿ãã¯é åãè¨å®95 mov.l [r5], r0 ; 非タスクコンテキスト用スタック領域を設定 115 96 116 97 ; 117 ; å¯å¤ãã¯ã¿ãã¼ãã«ã®è¨å®98 ; 可変ベクタテーブルの設定 118 99 ; 119 ; mvtc #VVECTOR_TOP, intb ; ãã¯ã¿ãã¼ãã«ã®è¨å®120 mvtc #_vvector_table, intb ; ãã¯ã¿ãã¼ãã«ã®è¨å®100 ; mvtc #VVECTOR_TOP, intb ; ベクタテーブルの設定 101 mvtc #_vvector_table, intb ; ベクタテーブルの設定 121 102 122 103 ; 123 ; ãã¼ãã¦ã§ã¢åºæã®åæåã«ã¼ãã³ã®å¼åºã104 ; ハードウェア固有の初期化ルーチンの呼出し 124 105 ; 125 106 mov.l #_hardware_init_hook, r5 … … 129 110 130 111 ; 131 ; åæå¤ããå¤æ°é åã®åæå112 ; 初期値あり変数領域の初期化 132 113 ; 133 114 init_D: 134 115 mov.l #(_edata - _data), r3 135 116 cmp #0, r3 136 beq.b clear_B ; ãµã¤ãº0ãªãåæåå¿ 137 è¦ãªã 117 beq.b clear_B ; サイズ0なら初期化必要なし 138 118 mov.l #(_data), r1 139 119 mov.l #(_mdata), r2 … … 141 121 142 122 ; 143 ; åæå¤ãªãå¤æ°é åã®åæå123 ; 初期値なし変数領域の初期化 144 124 ; 145 125 clear_B: … … 150 130 151 131 ; 152 ; software_init_hook ãå¼åºãï¼0 ã§ãªãå ´åï¼132 ; software_init_hook を呼出し(0 でない場合) 153 133 ; 154 ; ã½ããã¦ã§ã¢ç°å¢ï¼ç¹ã«ã©ã¤ãã©ãªï¼ã«ä¾åãã¦å¿ 155 è¦ãªåæåå¦ç 156 ; ãããå ´åã¯ï¼software_init_hook ã¨ããé¢æ°ãç¨æããã°ãã. 134 ; ソフトウェア環境(特にライブラリ)に依存して必要な初期化処理 135 ; がある場合は,software_init_hook という関数を用意すればよい. 157 136 ; 158 137 mov.l #_software_init_hook, r5 … … 162 141 163 142 ; 164 ; ã«ã¼ãã«ã¹ã¿ã¼ã143 ; カーネルスタート 165 144 ; 166 145 kernel_link:
Note:
See TracChangeset
for help on using the changeset viewer.