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

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

initial

File size: 7.4 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.7 2007/03/23 07:58:33 honda Exp $
53;
54
55; H8用スタートアップモジュール
56;  カーネルはアプリケーションとリンクして使用するので、
57;  このモジュールはJSPカーネル起動時のみ使用する。
58
59 .CPU 300HA
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_asm.inc"
69 .INCLUDE "cpu_config_asm.inc"
70
71 .IMPORT _kernel_start
72
73 .AIFDEF HARDWARE_INIT_HOOK
74 .IMPORT HARDWARE_INIT_HOOK
75 .AENDI ; HARDWARE_INIT_HOOK
76
77 .AIFDEF SOFTWARE_INIT_HOOK
78 .IMPORT SOFTWARE_INIT_HOOK
79 .AENDI ; SOFTWARE_INIT_HOOK
80
81 .AIFDEF WITHOUT_INNER_RAM
82 .GLOBAL start_1
83 .AENDI ; WITHOUT_INNER_RAM
84
85
86 .GLOBAL _start
87_start:
88 ;
89 ; 非タスクコンテキストのスタックポインタをSTACKTOPに初期化する
90 ;  H8ではリセット時にスタックポインタが初期化されないため、
91 ;  スタートアップルーチンのå…
92ˆé ­ã§åˆæœŸåŒ–する必
93要がある
94 ;  (STACKTOPは、user_config_asm.incで定義)
95 ;
96 mov.l #STACKTOP, sp
97
98 ;
99 ; モードコントロールレジスタMDCRの読み出し
100 ;  E10T上で実行する際に必
101要な初期化処理
102 ;
103 .AIFDEF E10T
104 mov.b @H8MDCR, er0
105 .AENDI ; E10T
106
107 ;
108 ; CCRを初期化する。(割込み禁止)
109 ;
110 orc.b #CCR_DISINT_ALL, ccr
111
112 ;
113 ; ハードウェア初期化関数の呼び出し
114 ;
115 ; ハードウェア依存に必
116要な初期化処理がある場合は,
117 ; ハードウェア初期化関数を用意し、そのå…
118ˆé ­ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’
119 ; HARDWARE_INIT_HOOKマクロとして定義する。
120 ; å…
121·ä½“的にはROM化の際、RAMを使用可能にするための
122 ; バス・ステート・コントローラの初期化等を行う。
123 ; ハードウェア初期化関数の実装
124はsys_support.src 内
125で行い、
126 ; HARDWARE_INIT_HOOKマクロをsys_config_asm.incで定義する
127 ; のを標準とする。
128
129 .AIFDEF HARDWARE_INIT_HOOK
130start_0:
131 .AIFDEF WITHOUT_INNER_RAM
132 ; 内
133蔵RAMを使用しない場合は、外部RAMが有効にならないとスタッ
134 ; クエリアが使えない。そのため、戻り番地をスタックに積むH8プ
135 ; ロセッサの関数呼び出しは(アセンブラであっても)このタイミ
136 ; ングではまだできない。つまり、HARDWARE_INIT_HOOKからは無
137 ; 条件分岐命令で戻ってくる。
138 ; (ラベルstart_1をエクスポートする。)
139
140 jmp @HARDWARE_INIT_HOOK
141 .AELSE ; WITHOUT_INNER_RAM
142 jsr @HARDWARE_INIT_HOOK
143 .AENDI ; WITHOUT_INNER_RAM
144
145 .AENDI ; HARDWARE_INIT_HOOK
146
147
148 ; Bセクションをクリア
149start_1:
150 mov.l @_bss_start_k, er0
151 mov.l @_end_k, er1
152 sub.l er2, er2
153start_2:
154 mov.l er2, @er0
155 add.l #4, er0
156 cmp.l er1, er0
157 blo start_2 ; er1 > er0
158
159 ;
160 ; Dセクションを初期化する(ROM化対応).
161 ;
162 ; __idata_start から __idata_end までを,__data_start 以降に
163 ; コピーする.
164 ;
165 ; eepmov.w命令を使う方が効率的だが、最大転送バイト数が
166 ; 65,535バイトに制限されるため、使用していない。
167start_3:
168 mov.l @__idata_start_k, er0
169 mov.l @__idata_end_k, er1
170 mov.l @__data_start_k, er2
171start_4:
172 mov.l @er0+, er4 ; *er2++ = *er0 ++;
173 mov.l er4, @er2
174 add.l #4, er2
175 cmp.l er1, er0
176 blo start_4 ; er1 > er0
177
178 ;
179 ; ソフトウェア環境初期化関数の呼び出し
180 ;
181 ; ソフトウェア環境(特にライブラリ)に依存して必
182要な初期化処
183 ; 理がある場合は,ソフトウェア環境初期化関数を用意し、そのå…
184ˆé ­
185 ; アドレスをSOFTWARE_INIT_HOOKマクロとして定義する。
186 ; software_init_hook関数の実装
187はsys_support.src 内
188で行い、
189 ; SOFTWARE_INIT_HOOKマクロをuser_config_asm.incで定義する
190 ; のを標準とする。
191 .AIFDEF SOFTWARE_INIT_HOOK
192start_5:
193 jsr @SOFTWARE_INIT_HOOK
194 .AENDI ; SOFTWARE_INIT_HOOK
195
196 ; カーネルを起動する
197
198start_6:
199 jmp @_kernel_start
200
201
202 .ALIGN 4
203_bss_start_k:
204 .DATA.L STARTOF B
205_end_k:
206 .DATA.L STARTOF B + SIZEOF B
207__idata_start_k:
208 .DATA.L STARTOF D
209__idata_end_k:
210 .DATA.L STARTOF D + SIZEOF D
211__data_start_k:
212 .DATA.L STARTOF R
213
214 .END
Note: See TracBrowser for help on using the repository browser.