source: anotherchoice/tags/jsp-1.4.4-full-UTF8/config/powerpc32/mpc860t/sys_support.S@ 26

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

initial

File size: 20.1 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-2004 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: sys_support.S,v 1.2 2004/10/07 17:10:56 honda Exp $
53 */
54
55/*
56 * ターゲットシステム依存モジュール アセンブリ言語部
57 *     カーネル内
58部で使用する定義(MPC860T TB6102S用)
59 *
60 *   ボード依存を分離すると、このファイルはほとんど空になって
61 *   しまうので、そのままにしている。
62 *
63 */
64
65#define _MACRO_ONLY
66#include "jsp_kernel.h"
67
68/*
69 * メモリコマンドレジスタMCRに設定するWRITEオペコード
70 *
71 *     OP=00:WRITE
72 *     UM=0:UPMA
73 *     MB=000:RUNコマンドのみ有効
74 *     MCLF=0:RUNコマンドのみ有効
75 *     MAD=0:メモリアレイインデックス
76 *         (空にしておいて、別のデータをå…
77¥ã‚Œã‚‹ï¼‰
78 *
79 */
80#define MCR_WRITE_OP 0
81
82/*
83 * 低レベルのターゲットシステム依存の初期化
84 *
85 * スタートアップモジュールの中で,メモリの初期化の前に呼び出される.
86 *
87 * レジスタ割り当て
88 *   r10:内
89部レジスタ領域のå…
90ˆé ­ã‚¢ãƒ‰ãƒ¬ã‚¹
91 *
92 */
93 .text
94 .globl hardware_init_hook
95hardware_init_hook:
96 /* ipm_tableをSPRG3にコピー */
97 LI32(r4, ipm_table)
98 mtspr SPRG3, r4
99
100 /* 内
101部メモリマップレジスタIMMRの初期化 */
102 /*  内
103部レジスタ領域のå…
104ˆé ­ã‚¢ãƒ‰ãƒ¬ã‚¹ã®è¨­å®š */
105 lis r10, IMMR_UPPER_2BYTE /* 上位2バイト */
106 mtspr IMMR, r10 /* 下位2バイトは上書きしても破壊されない */
107
108#ifdef DOWNLOAD_TO_RAM /* デバッグ用 */
109
110 /*
111 * RAM上にダウンロードする場合
112 *
113 *   例外ベクタのオフセットを0x000x,xxxxにする。
114 */
115 li r5, 0
116 mtmsr r5 /* MSR.IP←0 */
117 blr
118
119#else /* DOWNLOAD_TO_RAM */ /* ROM化 */
120
121
122 /* バスコントローラの初期化 */
123
124 /*
125 * ソフトウェア・ウォッチドックタイマの初期化
126 */
127
128 /* ウォッチドックタイマをクリア */
129 li r6, SWSR_CLEAR1
130 sth r6, TADR_SIU_SWSR(r10)
131 ori r6, r0, SWSR_CLEAR2
132 sth r6, TADR_SIU_SWSR(r10)
133
134 /*
135 *  ウォッチドックタイマをディセーブルにする
136 *   SYPCR.SWE←0
137 */
138 lwz r5, TADR_SIU_SYPCR(r10)
139 ori r5, r5, SYPCR_SWE
140 xori r5, r5, SYPCR_SWE
141 stw r5, TADR_SIU_SYPCR(r10)
142
143
144 /*
145 * FlashROMバスコントローラの初期化
146 *  2MB
147 *  アドレスマップ:0x1000,0000-0x101f,ffff
148 *  チップセレクト信号:CS0
149 *  メモリコントローラ:汎用チップ・セレクト・マシンGPCM
150 *  16ビットアクセス
151 *  
152 *  ブートチップセレクトCS0に関しては
153 *  BR0→OR0の順に設定しなければならない
154 *  
155 */
156
157 /*
158 * 外部バス分周係数の設定
159 *  SCCR.EBDF=00:CLKOUTはGCLK2の1の分周比
160 */
161 LI32(r4, UNLOCK_KEY)
162 stw r4, TADR_SCCRK(r10) /* SCCRアンロック */
163 lwz r5, TADR_SCCR(r10)
164 oris r6, r5, (SCCR_EBDF>>16)
165 xoris r7, r6, (SCCR_EBDF>>16)
166 stw r7, TADR_SCCR(r10)
167 li r0, 0
168 stw r0, TADR_SCCRK(r10) /* SCCRロック */
169
170
171 /*
172 * ベースレジスタBR0 = 0x1000,0801
173 *   BA=0x1000(0b):アクセス範囲 0x1000,0000〜
174 *   PS=10:ポートサイズ 16ビット
175 *   PARE=0:パリティ・ディセーブル
176 *   WP=0:リード/ライト許可(保護なし) 要検討
177 *   MS=00:UPMAを使用
178 *   V=1:BR0,OR0が有効
179 *
180 *   ハードウェア・マニュアルにはBR0はリードオンリーと
181 *   あるが、誤訳らしい
182 */
183 LI32(r3, 0x10000801)
184 stw r3, TADR_BR0(r10)
185
186 /*
187 * オプション・レジスタOR0 = 0xffe0,0936
188 *   MA=0xffe0(0b):アクセス範囲21ビット(=2MB)
189 *   CSNT=1:チップ・セレクト・ネゲート期間
190 *   ACS=00:CSをアドレスラインと同時に出力
191 *   BIH=1:バースト禁止(GPCMならセットしなければならない)
192 *   SYC=3:サイクル長
193 *   SETA=0:内
194部/外部の転送アクノリッジは最初のアクセスを認識
195 *   TRLX=1:タイミング緩和
196 *   EHTR=1:リード時のホールド時間延長
197 */
198 LI32(r4, 0xffe00936)
199 stw r4, TADR_OR0(r10)
200
201 /* MSR.IP=0(A20=L)の場合の絶対番地にジャンプ */
202 LI32(r5, activate_A20_line)
203 mtctr r5
204 bctr
205
206 /* A20信号の活性化 */
207activate_A20_line:
208 /* 汎用I/O機能選択:PBPAR.DD27←0 */
209 lhz r6, (TADR_PBPAR + 2)(r10)
210 andi. r6, r6, (~PBPAR_DD27 & 0xffff)
211 sth r6, (TADR_PBPAR + 2)(r10)
212
213 /* å…
214¥å‡ºåŠ›æ–¹å‘選択(出力):PBDIR.DR27←1 */
215 lhz r7, (TADR_PBDIR + 2)(r10)
216 ori r7, r7, PBDIR_DR27
217 sth r7, (TADR_PBDIR + 2)(r10)
218
219 /* アクティブにドライブ:PBODR.OD27←0 */
220 lhz r8, (TADR_PBODR + 2)(r10)
221 andi. r8, r8, (~PBODR_OD27 & 0xffff)
222 sth r8, (TADR_PBODR + 2)(r10)
223
224 /* A20=1を出力:PBDAT.D27←1 */
225 lhz r9, (TADR_PBDAT + 2)(r10)
226 ori r9, r9, PBDAT_D27
227 sth r9, (TADR_PBDAT + 2)(r10)
228 nop
229 nop
230 nop
231
232
233 /*
234 * SDRAMバスコントローラの初期化
235 *  50MHz
236 *  16MB
237 *  アドレスマップ:0x0000,0000-0x00ff,ffff
238 *  チップセレクト信号:CS2
239 *  メモリコントローラ:ユーザ・プログラマブル・マシンUPMA
240 *  32ビットアクセス
241 *  
242 *  レジスタ割り当て
243 *   r10:内
244部レジスタ領域のå…
245ˆé ­ã‚¢ãƒ‰ãƒ¬ã‚¹
246 *  
247 *  備考
248 *    UPMレジスタ→ORx→BRxの順に設定する
249 *  
250 *  
251 */
252
253 /*
254 * メモリコントローラUPMAの設定レジスタ初期化
255 *  
256 *  リフレッシュ周期=1CLK周期×プリスケーラ値×タイマ周期
257 *          =20nsec ×   32    × 24
258 *          =15.36μsec
259 */
260
261 /*
262 * メモリ周期タイマ・プリスケーラ・レジスタMPTPR = 0x0200
263 *   PTP=0x2:32による分周
264 */
265 ori r3, r0, 0x0200
266 sth r3, TADR_MPTPR(r10)
267
268 /*
269 * マシンAモード・レジスタMAMR = 0x1880,2111
270 *   PTx=24:リフレッシュ周期
271 *   PTxE=1:周期タイマイネーブル
272 *   AMx=0:アドレス多重サイズ
273 *   DSx=00:ディセーブル期間 1サイクル
274 *   G0CLx=001:GPL0に対するアドレスライン出力はA11
275 *   GPLx4DIS=0:UPWAIT/GPL_x4はGPL_x4に定義
276 *   RLFx=0001:リードサイクルのループ 1回
277 *   WLFx=0001:ライトサイクルのループ 1回
278 *   TLFx=0001:周期タイマサービスサイクルのループ 1回
279 */
280 LI32(r4, 0x18802111)
281 stw r4, TADR_MAMR(r10)
282
283 /*
284 * オプション・レジスタOR2 = 0xff00,0600
285 *   MA=0xff00(0b):アクセス範囲24ビット(=16MB)
286 *   SAM=0:多重化アドレスなし
287 *   G5LA=1:GPL_A5で内
288部GPL5信号を出力
289 *   G5LS=1:GPL5はGCLK1_50の立ち上がりエッジでHにドライブ
290 *   BIH=0:バーストアクセスをサポート
291 */
292 LI32(r5, 0xff000600)
293 stw r5, TADR_OR2(r10)
294
295 /*
296 * ベース・レジスタBR2 = 0x0000,0081
297 *   BA=0x0000(0b):アクセス範囲 0x0000,0000〜
298 *   PS=00:ポートサイズ 32ビット
299 *   PARE=0:パリティ・ディセーブル
300 *   WP=0:リード/ライト許可(保護なし)
301 *   MS=10:UPMAを使用
302 *   V=1:BR2,OR2が有効
303 */
304 ori r6, r0, 0x0081
305 stw r6, TADR_BR2(r10)
306
307 /*
308 * RAMアレイの初期化
309 *  RAMアレイはMPC860の内
310蔵メモリであり、外部メモリにアクセス
311 *  する際の各サイクルにおけるピンの状æ…
312‹ã‚’規定する。
313 *  
314 *  レジスタ割り当て
315 *   r3:ポインタテーブルへのポインタ
316 *   r4:書き込むワード数(残り数)
317 *   r5:å…
318ƒãƒ‡ãƒ¼ã‚¿ã®ã‚¢ãƒ‰ãƒ¬ã‚¹
319 *   r6:転送å…
320ˆã®ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹
321 *   r10:内
322部レジスタ領域のå…
323ˆé ­ã‚¢ãƒ‰ãƒ¬ã‚¹
324 */
325 /*  lwzu命令が使いやすくなるよう */
326 /*  アドレスを-4している */
327 LI32(r3, (RAM_array_index-4))
328
329 /* ブロックデータ書き込みループ */
330RAM_array_block_init_loop:
331 lwzu r4, 4(r3) /* ワード数 */
332 /* r3がインクリメントされる点に注意 */
333 cmpwi crf0, r4, 0 /* テーブルに指定されたワード数が */
334 beq SDRAM_init /* ゼロならば、デバイスの初期化へ */
335 lwzu r5, 4(r3) /* å…
336ƒãƒ‡ãƒ¼ã‚¿ã®ã‚¢ãƒ‰ãƒ¬ã‚¹ */
337 /*  lwzu命令が使いやすくなるよう */
338 /*  アドレスは-4されて格納されている */
339 lwzu r6, 4(r3) /* 転送å…
340ˆã®ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ */
341 /* r3がインクリメントされる点に注意 */
342
343 /*
344 * ワードデータ書き込みループ
345 *  メモリデータレジスタMDRに書き込んだデータが
346 *  WRITEオペコードによりRAMアレイに転送される
347 */
348RAM_array_word_init_loop:
349 lwzu r8, 4(r5) /* å…
350ƒãƒ‡ãƒ¼ã‚¿ */
351 /* r5がインクリメントされる点に注意 */
352 stw r8, TADR_MDR(r10) /* 書き込みデータ準備 */
353 ori r9, r6, MCR_WRITE_OP
354 stw r9, TADR_MCR(r10) /* WRITEコマンド発行 */
355 subi r4, r4, 1
356 addi r6, r6, 1
357 cmpwi crf0, r4, 0 /* 書き込むべきデータが残っていれば */
358 bne RAM_array_word_init_loop /* 次のワードデータの処理へ */
359 /* データが残っていなければ、次のブロックの処理へ */
360 b RAM_array_block_init_loop
361
362
363 /* SDRAM(デバイス自体)の初期化 */
364SDRAM_init:
365 /*
366 * å…
367¨ãƒãƒ³ã‚¯ãƒ»ãƒ—リチャージ
368 *
369 *   メモリコマンドレジスタMCR = 0x8000,4105
370 *     OP=10:RUN
371 *     UM=0:UPMA
372 *     MB=010:CS2
373 *     MCLF=1:ループ1回
374 *     MAD=5:メモリアレイインデックス
375 *         (å…
376¨ãƒãƒ³ã‚¯ãƒ—リチャージの命令がå…
377¥ã£ã¦ã„る)
378 */
379 LI32(r3, 0x80004105)
380 stw r3, TADR_MCR(r10)
381
382 /*
383 * オートリフレッシュ 8回
384 *
385 *   メモリコマンドレジスタMCR = 0x8000,4830
386 *     OP=10:RUN
387 *     UM=0:UPMA
388 *     MB=010:CS2
389 *     MCLF=8:ループ 8回 (リフレッシュ回数)
390 *     MAD=0x30:メモリアレイインデックス
391 *         (オートリフレッシュの命令がå…
392¥ã£ã¦ã„る)
393 */
394 LI32(r4, 0x80004830)
395 stw r4, TADR_MCR(r10)
396
397
398 /*
399 * 動作モード設定
400 *  CASレイテンシ:2
401 *  バースト長  :4
402 *
403 *   メモリアドレスレジスタMAR = 0x0000,0088
404 *     アドレスバスに出力され、SDRAMへの命令となる
405 *
406 *   メモリコマンドレジスタMCR = 0x8000,4106
407 *     OP=10:RUN
408 *     UM=0:UPMA
409 *     MB=010:CS2
410 *     MCLF=1:ループ 1回
411 *     MAD=6:メモリアレイインデックス
412 *         (動作モード設定の命令がå…
413¥ã£ã¦ã„る)
414 */
415 ori r5, r0, 0x0088
416 stw r5, TADR_MAR(r10)
417 LI32(r6, 0x80004106)
418 stw r6, TADR_MCR(r10)
419
420
421/*
422 * 例外ベクタのコピー
423 */
424copy_exception_vector:
425 /* lwzu命令を使うため-4している */
426 LI32(r7, EXCEPTION_VECTOR_START_SRC - 4)
427 LI32(r8, EXCEPTION_VECTOR_END_SRC - 4)
428 LI32(r9, EXCEPTION_VECTOR_START_DST - 4)
429copy_exception_vector_1:
430 lwzu r10, 4(r7) /* r7の更新も1命令で実行される */
431 stwu r10, 4(r9) /* r9の更新も1命令で実行される */
432 cmpw crf0, r7, r8
433 blt copy_exception_vector_1
434
435 /*
436 * MSR.IP←0
437 *  例外プレフィックス:0x000n,nnnn
438 */
439 li r3, MSR_IP
440 mfmsr r4
441 or r4, r4, r3
442 xor r4, r4, r3
443 mtmsr r4
444
445 LI32(r10, start_1)
446 mtctr r10
447 bctr
448 nop
449 nop
450 nop
451 nop
452
453/*
454 * RAMアレイの初期化に使用するデータへのポインタテーブル
455 *  ワード数、å…
456ƒãƒ‡ãƒ¼ã‚¿ã®ã‚¢ãƒ‰ãƒ¬ã‚¹ã€è»¢é€å…
457ˆã®ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ã§
458 *  1セット(1ブロック分)
459 *  å…
460ƒãƒ‡ãƒ¼ã‚¿ã®ã‚¢ãƒ‰ãƒ¬ã‚¹ã¯lwzu命令が使いやすくなるよう
461 *  -4している。
462 *  
463 *  最後はワード数0のデータをé…
464ç½®ã—、ループ終了の判定に用いる
465 */
466RAM_array_index:
467 /*
468 * リード・シングル・ビート要求(計 16ワード)
469 *   ・リード・シングル・ビート要求(5ワード)
470 *   ・å…
471¨ãƒãƒ³ã‚¯ãƒ—リチャージ(1ワード)
472 *   ・モード設定(2ワード)
473 *   ・リード・バースト要求(8ワード)
474 */
475 .int 16 /* ワード数 */
476 .int RAM_array_RSS - 4 /* å…
477ƒãƒ‡ãƒ¼ã‚¿ã®ã‚¢ãƒ‰ãƒ¬ã‚¹ */
478 .int 0x0 /* 転送å…
479ˆã®ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ */
480
481 /*
482 * ライト・シングル・ビート要求
483 */
484 .int 4 /* ワード数 */
485 .int RAM_array_WSS - 4 /* å…
486ƒãƒ‡ãƒ¼ã‚¿ã®ã‚¢ãƒ‰ãƒ¬ã‚¹ */
487 .int 0x18 /* 転送å…
488ˆã®ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ */
489
490 /*
491 * ライト・バースト要求
492 */
493 .int 7 /* ワード数 */
494 .int RAM_array_WBS - 4 /* å…
495ƒãƒ‡ãƒ¼ã‚¿ã®ã‚¢ãƒ‰ãƒ¬ã‚¹ */
496 .int 0x20 /* 転送å…
497ˆã®ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ */
498
499 /*
500 * 周期タイマ要求(オートリフレッシュ)
501 */
502 .int 5 /* ワード数 */
503 .int RAM_array_TPS - 4 /* å…
504ƒãƒ‡ãƒ¼ã‚¿ã®ã‚¢ãƒ‰ãƒ¬ã‚¹ */
505 .int 0x30 /* 転送å…
506ˆã®ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ */
507
508 /*
509 * 例外条件要求
510 */
511 .int 1 /* ワード数 */
512 .int RAM_array_EXS - 4 /* å…
513ƒãƒ‡ãƒ¼ã‚¿ã®ã‚¢ãƒ‰ãƒ¬ã‚¹ */
514 .int 0x3c /* 転送å…
515ˆã®ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ */
516
517 /*
518 * ループ終了判定用データ
519 */
520 .int 0 /* ワード数 */
521
522
523/*
524 * RAMアレイにコピーするデータ
525 */
526
527 /*
528 * 以下の4つの命令群を連続した領域にé…
529ç½®ï¼ˆè¨ˆ 16ワード)
530 *   ・リード・シングル・ビート要求(5ワード)
531 *   ・å…
532¨ãƒãƒ³ã‚¯ãƒ—リチャージ(1ワード)
533 *   ・モード設定(2ワード)
534 *   ・リード・バースト要求(8ワード)
535 */
536RAM_array_RSS:
537 /* リード・シングル・ビート要求 */
538 .int 0x1f07fc04 /* 0 */
539 .int 0xeeaef004 /* 1 */
540 .int 0x11adf004 /* 2 */
541 .int 0xefbbbc00 /* 3 */
542 .int 0x1ff77c47 /* 4 */
543 /* å…
544¨ãƒãƒ³ã‚¯ãƒ—リチャージ */
545 .int 0x1ff77c07 /* 5 */
546 /* モード設定用データ */
547 .int 0xefcab034 /* 6 */
548 .int 0x1f357405 /* 7 */
549 /* リード・バースト要求 */
550 .int 0x1f07fc04 /* 8 */
551 .int 0xeeaef004 /* 9 */
552 .int 0x10adf004 /* a */
553 .int 0xf0affc00 /* b */
554 .int 0xf0affc00 /* c */
555 .int 0xf1affc00 /* d */
556 .int 0xefbbbc00 /* e */
557 .int 0x1ff77c47 /* f */
558
559 /*
560 * ライト・シングル・ビート要求
561 */
562RAM_array_WSS:
563 .int 0x1f07fc04 /* 0x18 + 0 */
564 .int 0xeeaeb000 /* 0x18 + 1 */
565 .int 0x01b93004 /* 0x18 + 2 */
566 .int 0x1ff77c47 /* 0x18 + 3 */
567
568 /*
569 * ライト・バースト要求
570 */
571RAM_array_WBS:
572 .int 0x1f07fc04 /* 0x20 + 0 */
573 .int 0xeeaeb000 /* 0x20 + 1 */
574 .int 0x10ad7000 /* 0x20 + 2 */
575 .int 0xf0affc00 /* 0x20 + 3 */
576 .int 0xf0affc00 /* 0x20 + 4 */
577 .int 0xe1bbbc04 /* 0x20 + 5 */
578 .int 0x1ff77c47 /* 0x20 + 6 */
579
580 /*
581 * 周期タイマ要求(オートリフレッシュ)
582 */
583RAM_array_TPS:
584 .int 0x1ff5fc84 /* 0x30 + 0 */
585 .int 0xfffffc04 /* 0x30 + 1 */
586 .int 0xfffffc04 /* 0x30 + 2 */
587 .int 0xfffffc84 /* 0x30 + 3 */
588 .int 0xfffffc05 /* 0x30 + 4 */
589
590 /*
591 * 例外条件要求
592 */
593RAM_array_EXS:
594 .int 0xfffffc07 /* 0x3c + 0 */
595
596
597#endif /* DOWNLOAD_TO_RAM */
598/* end of file */
Note: See TracBrowser for help on using the repository browser.