source: UsbWattMeter/trunk/asp_dcre/arch/rx630_ccrx/start.src@ 167

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

MIMEにSJISを設定

  • Property svn:mime-type set to text/plain; charset=SHIFT_JIS
File size: 4.5 KB
RevLine 
[164]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;*
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;* 免責すること.
34;*
35;* 本ソフトウェアは,無保証で提供されているものである.上記著作権者お
36;* よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
37;* に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
38;* アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
39;* の責任を負わない.
40;*
41;* @(#) $Id: start.src 536 2014-10-09 23:11:40Z coas-nagasima $
42;*
43
44 .include sectrx.inc
45
46 ;
47 ; メモリマップの定義(ターゲット依存部)
48 ;
49
50DFLRE .equ 007FC440H ; DFLREレジスタ
51
52DB_BLOCK_ENABLE .equ 02D0FH
53
54;
55; 初期化ルーチン
56;
57 .section P, CODE
58
59 .glb _start
60 .glb _sta_ker
61 .glb _software_init_hook
62 .glb _hardware_init_hook
63 .glb __kernel_istkpt
64
65_start:
66 ;
67 ; 電源投入後はレベル0, 全割込み禁止状態である.
68 ; カーネルでは高速割込みを使用しないため、BPC, BPSW及びFINTV
69 ; の初期化は行わない.
70 ;
71
72 ;
73 ; 内蔵ROM(データフラッシュ)領域の設定
74 ;
75 ; リセット後, データフラッシュ領域は読み出し禁止となっている
76 ; ため, 読み出し許可に設定する.
77 ;
78 mov.l #DFLRE, r5
79 mov.w #DB_BLOCK_ENABLE, [R5]
80
81 ;
82 ; スタックポインタの設定
83 ;
84 ; ユーザにて非タスクコンテキスト用スタック領域を用意した場合,
85 ; ユーザ領域を設定する.
86 ; kernel_cfg.cにて"_kernel_istkpt"の値を決定する.
87 ;
88 mov.l #__kernel_istkpt, r5
89 mov.l [r5], r0 ; 非タスクコンテキスト用スタック領域を設定
90
91 ;
92 ; 可変ベクタテーブルの設定
93 ;
94 mvtc #(topof C$VECT), intb ; ベクタテーブルの設定
95
96 ;
97 ; ハードウェア固有の初期化ルーチンの呼出し
98 ;
99 mov.l #_hardware_init_hook, r5
100 cmp #0, r5
101 beq.b init_D
102 jsr r5
103
104 ;
105 ; 初期値あり変数領域の初期化
106 ;
107init_D:
108 mov.l #(sizeof R), r3
109 cmp #0, r3
110 beq.b init_D_2 ; サイズ0なら初期化必要なし
111 mov.l #(topof R), r1
112 mov.l #(topof D), r2
113 smovf
114
115init_D_2:
116 mov.l #(sizeof R_2), r3
117 cmp #0, r3
118 beq.b init_D_1 ; サイズ0なら初期化必要なし
119 mov.l #(topof R_2), r1
120 mov.l #(topof D_2), r2
121 smovf
122
123init_D_1:
124 mov.l #(sizeof R_1), r3
125 cmp #0, r3
126 beq.b clear_B ; サイズ0なら初期化必要なし
127 mov.l #(topof R_1), r1
128 mov.l #(topof D_1), r2
129 smovf
130
131 ;
132 ; 初期値なし変数領域の初期化
133 ;
134clear_B:
135 mov.l #0, r2
136 mov.l #(topof B), r1
137 mov.l #(sizeof B) , r3
138 sstr.b
139
140clear_B_2:
141 mov.l #0, r2
142 mov.l #(topof B_2), r1
143 mov.l #(sizeof B_2) , r3
144 sstr.b
145
146clear_B_1:
147 mov.l #0, r2
148 mov.l #(topof B_1), r1
149 mov.l #(sizeof B_1) , r3
150 sstr.b
151
152 ;
153 ; software_init_hook を呼出し(0 でない場合)
154 ;
155 ; ソフトウェア環境(特にライブラリ)に依存して必要な初期化処理
156 ; がある場合は,software_init_hook という関数を用意すればよい.
157 ;
158 mov.l #_software_init_hook, r5
159 cmp #0, r5
160 beq.b kernel_link
161 jsr r5
162
163 ;
164 ; カーネルスタート
165 ;
166kernel_link:
167 bra.a _sta_ker ; --> _sta_ker()
168
169 .end
170
Note: See TracBrowser for help on using the repository browser.