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

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

SVNプロパティを設定

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
  • Property svn:mime-type set to text/x-gas; charset=UTF-8
File size: 5.2 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;* 上記著作権者は,Free Software Foundation によって公表されている
14;* GNU General Public License の Version 2 に記述されている条件か,以
15;* 下の(1)~(4)の条件を満たす場合に限り,本ソフトウェア(本ソフトウェ
16;* アを改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下,
17;* 利用と呼ぶ)することを無償で許諾する.
18;* (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
19;* 権表示,この利用条件および下記の無保証規定が,そのままの形でソー
20;* スコード中に含まれていること.
21;* (2) 本ソフトウェアを再利用可能なバイナリコード(リロケータブルオブ
22;* ジェクトファイルやライブラリなど)の形で利用する場合には,利用
23;* に伴うドキュメント(利用者マニュアルなど)に,上記の著作権表示,
24;* この利用条件および下記の無保証規定を掲載すること.
25;* (3) 本ソフトウェアを再利用不可能なバイナリコードの形または機器に組
26;* み込んだ形で利用する場合には,次のいずれかの条件を満たすこと.
27;* (a) 利用に伴うドキュメント(利用者マニュアルなど)に,上記の著作
28;* 権表示,この利用条件および下記の無保証規定を掲載すること.
29;* (b) 利用の形態を,別に定める方法によって,上記著作権者に報告する
30;* こと.
31;* (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
32;* 害からも,上記著作権者を免責すること.
33;*
34;* 本ソフトウェアは,無保証で提供されているものである.上記著作権者は,
35;* 本ソフトウェアに関して,その適用可能性も含めて,いかなる保証も行わ
36;* ない.また,本ソフトウェアの利用により直接的または間接的に生じたい
37;* かなる損害に関しても,その責任を負わない.
38;*
39
40
41 ;
42 ; メモリマップの定義(ターゲット依存部)
43 ;
44 .include sectrx.inc
45
46DFLRE .equ 007FC440H ; DFLREレジスタ
47
48DB_BLOCK_ENABLE .equ 02D0FH
49
50;
51; 初期化ルーチン
52;
53 .section P_START, CODE
54
55 .glb _start
56 .glb _sta_ker
57 .glb _software_init_hook
58 .glb _hardware_init_hook
59 .glb __kernel_istkpt
60
61_start:
62 ;
63 ; 電源投入後はレベル0, 全割込み禁止状態である.
64 ; カーネルでは高速割込みを使用しないため、BPC, BPSW及びFINTV
65 ; の初期化は行わない.
66 ;
67
68 ;
69 ; 内蔵ROM(データフラッシュ)領域の設定
70 ;
71 ; リセット後, データフラッシュ領域は読み出し禁止となっている
72 ; ため, 読み出し許可に設定する.
73 ;
74 mov.l #DFLRE, r5
75 mov.w #DB_BLOCK_ENABLE, [R5]
76
77 ;
78 ; スタックポインタの設定
79 ;
80 ; ユーザにて非タスクコンテキスト用スタック領域を用意した場合,
81 ; ユーザ領域を設定する.
82 ; kernel_cfg.cにて"_kernel_istkpt"の値を決定する.
83 ;
84 mov.l #__kernel_istkpt, r5
85 mov.l [r5], r0 ; 非タスクコンテキスト用スタック領域を設定
86
87 ;
88 ; 可変ベクタテーブルの設定
89 ;
90 mvtc #VVECTOR_TOP, intb ; ベクタテーブルの設定
91
92 ;
93 ; ハードウェア固有の初期化ルーチンの呼出し
94 ;
95 mov.l #_hardware_init_hook, r5
96 cmp #0, r5
97 beq.b init_D
98 jsr r5
99
100 ;
101 ; 初期値あり変数領域の初期化
102 ;
103init_D:
104 mov.l #(sizeof R), r3
105 cmp #0, r3
106 beq.b init_D_2 ; サイズ0なら初期化必要なし
107 mov.l #(topof R), r1
108 mov.l #(topof D), r2
109 smovf
110
111init_D_2:
112 mov.l #(sizeof R_2), r3
113 cmp #0, r3
114 beq.b init_D_1 ; サイズ0なら初期化必要なし
115 mov.l #(topof R_2), r1
116 mov.l #(topof D_2), r2
117 smovf
118
119init_D_1:
120 mov.l #(sizeof R_1), r3
121 cmp #0, r3
122 beq.b clear_B ; サイズ0なら初期化必要なし
123 mov.l #(topof R_1), r1
124 mov.l #(topof D_1), r2
125 smovf
126
127 ;
128 ; 初期値なし変数領域の初期化
129 ;
130clear_B:
131 mov.l #0, r2
132 mov.l #(topof B), r1
133 mov.l #(sizeof B) , r3
134 sstr.b
135
136clear_B_2:
137 mov.l #0, r2
138 mov.l #(topof B_2), r1
139 mov.l #(sizeof B_2) , r3
140 sstr.b
141
142clear_B_1:
143 mov.l #0, r2
144 mov.l #(topof B_1), r1
145 mov.l #(sizeof B_1) , r3
146 sstr.b
147
148 ;
149 ; software_init_hook を呼出し(0 でない場合)
150 ;
151 ; ソフトウェア環境(特にライブラリ)に依存して必要な初期化処理
152 ; がある場合は,software_init_hook という関数を用意すればよい.
153 ;
154 mov.l #_software_init_hook, r5
155 cmp #0, r5
156 beq.b kernel_link
157 jsr r5
158
159 ;
160 ; カーネルスタート
161 ;
162kernel_link:
163 bra.a _sta_ker ; --> _sta_ker()
164
165 .end
166
Note: See TracBrowser for help on using the repository browser.