source: anotherchoice/tags/jsp-1.4.4-full-UTF8/config/h8s-renesas/start.src@ 26

Last change on this file since 26 was 26, checked in by ykominami, 10 years ago

initial

File size: 7.5 KB
Line 
1;
2; TOPPERS/JSP Kernel
3; Toyohashi Open Platform for Embedded Real-Time Systems/
4; Just Standard Profile Kernel
5;
6; Copyright (C) 2000-2004 by Embedded and Real-Time Systems Laboratory
7; Toyohashi Univ. of Technology, JAPAN
8; Copyright (C) 2001-2007 by Industrial Technology Institute,
9; Miyagi Prefectural Government, JAPAN
10;
11; 上記著作権者
12は,以下の (1)〜(4) の条件か,Free Software Foundation
13; によってå…
14¬è¡¨ã•ã‚Œã¦ã„ã‚‹ GNU General Public License の Version 2 に記
15; 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア
16; を改変したものを含む.以下同じ)を使用・複製・改変・再é…
17å¸ƒï¼ˆä»¥ä¸‹ï¼Œ
18; 利用と呼ぶ)することを無償で許諾する.
19; (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
20; 権表示,この利用条件および下記の無保証規定が,そのままの形でソー
21; スコード中に含まれていること.
22; (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
23; 用できる形で再é…
24å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é…
25å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
26; 者
27マニュアルなど)に,上記の著作権表示,この利用条件および下記
28; の無保証規定を掲載すること.
29; (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
30; 用できない形で再é…
31å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
32; と.
33; (a) 再é…
34å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€…
35マニュアルなど)に,上記の著
36; 作権表示,この利用条件および下記の無保証規定を掲載すること.
37; (b) 再é…
38å¸ƒã®å½¢æ…
39‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
40; 報告すること.
41; (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
42; 害からも,上記著作権者
43およびTOPPERSプロジェクトをå…
44è²¬ã™ã‚‹ã“と.
45;
46; 本ソフトウェアは,無保証で提供されているものである.上記著作権者
47お
48; よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
49; 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
50; 接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
51;
52; @(#) $Id: start.src,v 1.2 2007/03/23 07:59:26 honda Exp $
53;
54
55; H8S用スタートアップモジュール
56;  カーネルはアプリケーションとリンクして使用するので、
57;  このモジュールはJSPカーネル起動時のみ使用する。
58
59 .CPU 2000A
60
61 ; STARTOF演算子、SIZEOF演算子を有効にするためのセクション宣言
62 .SECTION D,DATA,ALIGN=2
63 .SECTION R,DATA,ALIGN=2
64 .SECTION B,DATA,ALIGN=2
65
66 .SECTION P,CODE,ALIGN=2
67
68 .INCLUDE "sys_config.inc"
69 .INCLUDE "cpu_config.inc"
70
71 .IMPORT _kernel_start
72
73 .AIFDEF HARDWARE_INIT_HOOK
74 .IMPORT HARDWARE_INIT_HOOK
75 .GLOBAL _clear_b_section
76 .AENDI ; HARDWARE_INIT_HOOK
77
78 .AIFDEF SOFTWARE_INIT_HOOK
79 .IMPORT SOFTWARE_INIT_HOOK
80 .AENDI ; SOFTWARE_INIT_HOOK
81
82
83 .GLOBAL _start
84_start:
85 ;
86 ; 非タスクコンテキストのスタックポインタをSTACKTOPに初期化する
87 ;  (STACKTOPは、user_config.incで定義)
88 ;
89 ;  プログラムのå…
90ˆé ­å‘½ä»¤ã¯ SP の初期化命令でなければならない。
91 ;  ハードウェアマニュアル 「4.2.4 リセット直後の割込み」(P90)参ç…
92§
93 ;
94 mov.l #STACKTOP, sp
95
96 ;
97 ; CCRの初期化(割込み禁止)
98 ;
99 ; ・割込み制御モード0 における割込み禁止 (I = 1 ; CCR)
100 ; (cpu_initialize()内
101で割込み制御モードを変更するまでは、
102 ; 割込み制御モードは0である。)
103 ;
104 ldc.b #CCR_I, ccr
105
106 ;
107 ; EXRの初期化
108 ; ・割込み制御モード2 における割込み禁止 (I2, I1, I0 = 1 ; CCR)
109 ; ・カーネル管理外の割込みも含めて禁止する
110 ;
111 ldc.b #EXR_I_MASK, exr
112
113 ;
114 ; ハードウェア初期化関数の呼び出し
115 ;
116 ; ハードウェア依存に必
117要な初期化処理がある場合は,
118 ; ハードウェア初期化関数を用意し、そのå…
119ˆé ­ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’
120 ; HARDWARE_INIT_HOOKマクロとして定義する。
121 ; å…
122·ä½“的にはROM化の際、RAMを使用可能にするための
123 ; バス・ステート・コントローラの初期化等を行う。
124 ; ハードウェア初期化関数の実装
125はsys_support.src 内
126で行い、
127 ; HARDWARE_INIT_HOOKマクロをsys_config.incで定義する
128 ; のを標準とする。
129start_0:
130 ; 内
131蔵RAMを使用しない場合は、外部RAMが有効にならないとスタッ
132 ; クエリアが使えない。そのため、戻り番地をスタックに積む
133 ; jsr命令はこのタイミングではまだ使用できない。つまり、
134 ; HARDWARE_INIT_HOOKへはjmp命令(無条件分岐命令)で分岐し、
135 ; jmp命令で戻ってくる。
136 ; (ラベルclear_b_sectionをエクスポートしている。)
137
138 .AIFDEF HARDWARE_INIT_HOOK
139 jmp @HARDWARE_INIT_HOOK
140 .AENDI ; HARDWARE_INIT_HOOK
141
142
143 ; Bセクションをクリア
144_clear_b_section:
145start_1:
146 mov.l @_bss_start_k, er0
147 mov.l @_end_k, er1
148 sub.l er2, er2
149start_2:
150 mov.l er2, @er0
151 add.l #4, er0
152 cmp.l er1, er0
153 blo start_2 ; er1 > er0
154
155 ;
156 ; Dセクションを初期化する(ROM化対応).
157 ;
158 ; __idata_start から __idata_end までを,__data_start 以降に
159 ; コピーする.
160 ;
161 ; eepmov.w命令を使う方が効率的だが、最大転送バイト数が
162 ; 65,535バイトに制限されるため、使用していない。
163start_3:
164 mov.l @__idata_start_k, er0
165 mov.l @__idata_end_k, er1
166 mov.l @__data_start_k, er2
167start_4:
168 mov.l @er0+, er4 ; *er2++ = *er0 ++;
169 mov.l er4, @er2
170 add.l #4, er2
171 cmp.l er1, er0
172 blo start_4 ; er1 > er0
173
174 ;
175 ; ソフトウェア環境初期化関数の呼び出し
176 ;
177 ; ソフトウェア環境(特にライブラリ)に依存して必
178要な初期化処
179 ; 理がある場合は,ソフトウェア環境初期化関数を用意し、そのå…
180ˆé ­
181 ; アドレスをSOFTWARE_INIT_HOOKマクロとして定義する。
182 ; software_init_hook関数の実装
183はsys_support.src 内
184で行い、
185 ; SOFTWARE_INIT_HOOKマクロをuser_config.incで定義する
186 ; のを標準とする。
187 .AIFDEF SOFTWARE_INIT_HOOK
188start_5:
189 jsr @SOFTWARE_INIT_HOOK
190 .AENDI ; SOFTWARE_INIT_HOOK
191
192 ; カーネルを起動する
193
194start_6:
195 jmp @_kernel_start
196
197
198 .ALIGN 4
199_bss_start_k:
200 .DATA.L STARTOF B
201_end_k:
202 .DATA.L STARTOF B + SIZEOF B
203__idata_start_k:
204 .DATA.L STARTOF D
205__idata_end_k:
206 .DATA.L STARTOF D + SIZEOF D
207__data_start_k:
208 .DATA.L STARTOF R
209
210 .END
Note: See TracBrowser for help on using the repository browser.