source: rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/start.src@ 313

Last change on this file since 313 was 313, checked in by coas-nagasima, 7 years ago

ソースを追加

File size: 5.4 KB
Line 
1;*
2;* TOPPERS/ASP Kernel
3;* Toyohashi Open Platform for Embedded Real-Time Systems/
4;* Advanced Standard Profile Kernel
5;*
6;* Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
7;* Toyohashi Univ. of Technology, JAPAN
8;* Copyright (C) 2005,2006 by Embedded and Real-Time Systems Laboratory
9;* Graduate School of Information Science, Nagoya Univ., JAPAN
10;* Copyright (C) 2008-2010 by Witz Corporation, JAPAN
11;* Copyright (C) 2013 by Mitsuhiro Matsuura
12;*
13;* 上記著作権者
14は,Free Software Foundation によってå…
15¬è¡¨ã•ã‚Œã¦ã„ã‚‹
16;* GNU General Public License の Version 2 に記述されている条件か,以
17;* 下の(1)~(4)の条件を満たす場合に限り,本ソフトウェア(本ソフトウェ
18;* アを改変したものを含む.以下同じ)を使用・複製・改変・再é…
19å¸ƒï¼ˆä»¥ä¸‹ï¼Œ
20;* 利用と呼ぶ)することを無償で許諾する.
21;* (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
22;* 権表示,この利用条件および下記の無保証規定が,そのままの形でソー
23;* スコード中に含まれていること.
24;* (2) 本ソフトウェアを再利用可能なバイナリコード(リロケータブルオブ
25;* ジェクトファイルやライブラリなど)の形で利用する場合には,利用
26;* に伴うドキュメント(利用者
27マニュアルなど)に,上記の著作権表示,
28;* この利用条件および下記の無保証規定を掲載すること.
29;* (3) 本ソフトウェアを再利用不可能なバイナリコードの形または機器に組
30;* み込んだ形で利用する場合には,次のいずれかの条件を満たすこと.
31;* (a) 利用に伴うドキュメント(利用者
32マニュアルなど)に,上記の著作
33;* 権表示,この利用条件および下記の無保証規定を掲載すること.
34;* (b) 利用の形æ…
35‹ã‚’,別に定める方法によって,上記著作権者
36に報告する
37;* こと.
38;* (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
39;* 害からも,上記著作権者
40をå…
41è²¬ã™ã‚‹ã“と.
42;*
43;* 本ソフトウェアは,無保証で提供されているものである.上記著作権者
44は,
45;* 本ソフトウェアに関して,その適用可能性も含めて,いかなる保証も行わ
46;* ない.また,本ソフトウェアの利用により直接的または間接的に生じたい
47;* かなる損害に関しても,その責任を負わない.
48;*
49
50
51 ;
52 ; メモリマップの定義(ターゲット依存部)
53 ;
54 .include sectrx.inc
55
56DFLRE .equ 007FC440H ; DFLREレジスタ
57
58DB_BLOCK_ENABLE .equ 02D0FH
59
60;
61; 初期化ルーチン
62;
63 .section P_START, CODE
64
65 .glb _start
66 .glb _sta_ker
67 .glb _software_init_hook
68 .glb _hardware_init_hook
69 .glb __kernel_istkpt
70
71_start:
72 ;
73 ; 電源投å…
74¥å¾Œã¯ãƒ¬ãƒ™ãƒ«0, å…
75¨å‰²è¾¼ã¿ç¦æ­¢çŠ¶æ…
76‹ã§ã‚ã‚‹.
77 ; カーネルでは高速割込みを使用しないため、BPC, BPSW及びFINTV
78 ; の初期化は行わない.
79 ;
80
81 ;
82 ; 内
83蔵ROM(データフラッシュ)領域の設定
84 ;
85 ; リセット後, データフラッシュ領域は読み出し禁止となっている
86 ; ため, 読み出し許可に設定する.
87 ;
88 mov.l #DFLRE, r5
89 mov.w #DB_BLOCK_ENABLE, [R5]
90
91 ;
92 ; スタックポインタの設定
93 ;
94 ; ユーザにて非タスクコンテキスト用スタック領域を用意した場合,
95 ; ユーザ領域を設定する.
96 ; kernel_cfg.cにて"_kernel_istkpt"の値を決定する.
97 ;
98 mov.l #__kernel_istkpt, r5
99 mov.l [r5], r0 ; 非タスクコンテキスト用スタック領域を設定
100
101 ;
102 ; 可変ベクタテーブルの設定
103 ;
104 mvtc #VVECTOR_TOP, intb ; ベクタテーブルの設定
105
106 ;
107 ; ハードウェア固有の初期化ルーチンの呼出し
108 ;
109 mov.l #_hardware_init_hook, r5
110 cmp #0, r5
111 beq.b init_D
112 jsr r5
113
114 ;
115 ; 初期値あり変数領域の初期化
116 ;
117init_D:
118 mov.l #(sizeof R), r3
119 cmp #0, r3
120 beq.b init_D_2 ; サイズ0なら初期化必
121要なし
122 mov.l #(topof R), r1
123 mov.l #(topof D), r2
124 smovf
125
126init_D_2:
127 mov.l #(sizeof R_2), r3
128 cmp #0, r3
129 beq.b init_D_1 ; サイズ0なら初期化必
130要なし
131 mov.l #(topof R_2), r1
132 mov.l #(topof D_2), r2
133 smovf
134
135init_D_1:
136 mov.l #(sizeof R_1), r3
137 cmp #0, r3
138 beq.b clear_B ; サイズ0なら初期化必
139要なし
140 mov.l #(topof R_1), r1
141 mov.l #(topof D_1), r2
142 smovf
143
144 ;
145 ; 初期値なし変数領域の初期化
146 ;
147clear_B:
148 mov.l #0, r2
149 mov.l #(topof B), r1
150 mov.l #(sizeof B) , r3
151 sstr.b
152
153clear_B_2:
154 mov.l #0, r2
155 mov.l #(topof B_2), r1
156 mov.l #(sizeof B_2) , r3
157 sstr.b
158
159clear_B_1:
160 mov.l #0, r2
161 mov.l #(topof B_1), r1
162 mov.l #(sizeof B_1) , r3
163 sstr.b
164
165 ;
166 ; software_init_hook を呼出し(0 でない場合)
167 ;
168 ; ソフトウェア環境(特にライブラリ)に依存して必
169要な初期化処理
170 ; がある場合は,software_init_hook という関数を用意すればよい.
171 ;
172 mov.l #_software_init_hook, r5
173 cmp #0, r5
174 beq.b kernel_link
175 jsr r5
176
177 ;
178 ; カーネルスタート
179 ;
180kernel_link:
181 bra.a _sta_ker ; --> _sta_ker()
182
183 .end
184
Note: See TracBrowser for help on using the repository browser.