source: anotherchoice/tags/jsp-1.4.4-full-UTF8/config/powerpc32/ibm_ppc_emb_sample/sys_config.h@ 26

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

initial

File size: 12.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-2003 by Embedded and Real-Time Systems Laboratory
7 * Toyohashi Univ. of Technology, JAPAN
8 * Copyright (C) 2001-2003 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_config.h,v 1.2 2004/10/07 17:10:56 honda Exp $
53 */
54
55/*
56 * ターゲットシステム依存モジュールのサンプル
57 *     カーネル内
58部で使用する定義
59 *      データ型、マクロ、関数のプロトタイプ宣言
60 *
61 * このインクルードファイルは,t_config.h のみからインクルードされる.
62 * 他のファイルから直接インクルードしてはならない.
63 */
64
65#ifndef _SYS_CONFIG_H_
66#define _SYS_CONFIG_H_
67
68/*
69 * ユーザー定義情
70å ±
71 */
72#include <user_config.h>
73
74/*
75 * カーネルの内
76部識別名のリネーム
77 */
78#include <sys_rename.h>
79
80/*
81 * ターゲットシステムのハードウェア資源の定義
82 */
83//#include <******.h>
84//#include <******.h>
85
86
87/*
88 * 起動メッセージのターゲットシステム名
89 */
90#define TARGET_NAME "Target name"
91
92/*
93 * 微少時間待
94ちのための定義
95 */
96#define SIL_DLY_TIM1 1425
97#define SIL_DLY_TIM2 350
98
99#ifndef _MACRO_ONLY
100
101/*
102 * ターゲットシステム依存の初期化
103 */
104extern void sys_initialize(void);
105
106/*
107 * ターゲットシステムの終了
108 *
109 * システムを終了する時に使う.
110 *  ROMモニタ/GDB STUB呼出しは未実装
111
112 */
113extern void sys_exit(void);
114
115/*
116 * ターゲットシステムの文字出力
117 *
118 * システムの低レベルの文字出力ルーチン.
119 *  ROMモニタ/GDB STUB呼出しは未実装
120
121 */
122extern void sys_putc(char c) throw();
123
124#endif /* _MACRO_ONLY */
125
126/* -------------------------------------------------------------- */
127/*
128 * PowerPCå…
129±é€šéƒ¨ã¨ã®ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ã‚§ãƒ¼ã‚¹ã®å®šç¾©
130 */
131
132/*
133 * MSRの初期値
134 */
135#define INIT_MSR 0
136
137/*
138 * 割込みの本数
139 */
140#define TMAX_INTNO 10
141
142/*
143 * 割込み処理のICU依存部分
144 *  処理内
145容
146 *   ・割込み要因の判別
147 *   ・割込みマスクの設定
148 *   ・割込み許可
149 *   ・C言語ルーチン呼び出し
150 *   ・割込み禁止
151 *   ・(必
152要であれば)割り込み要求フラグのクリア
153 *  
154 *  引数
155 *   label:ラベル識別用文字列
156 *       (複数箇所でこのマクロを使用できるようにするため)
157 */
158#define _PROC_ICU(label)
159
160/* マクロ引数labelを確実に展開するため、マクロを2重にしている */
161#define PROC_ICU(label) _PROC_ICU(label)
162
163
164/*
165 * 割り込みコントローラのマスクIPM関連の定義
166 */
167
168/* IPMの待
169避 */
170 /* 注意:spを4バイト境界に維持する */
171#define PUSH_ICU_IPM
172
173/* IPMの復å…
174ƒ */
175 /* 注意:spを4バイト境界に維持する */
176#define POP_ICU_IPM
177
178
179#ifdef SUPPORT_CHG_IPM
180/*
181 * ICUに設定するIPMパラメータのチェック
182 *
183 * C言語の
184 *  if (ipmの値が不正) {
185 * ercd = E_PAR;
186 * goto exit;
187 * }
188 * と同等の処理を行うマクロ
189 */
190#define CHECK_IPM(ipm)
191
192/*
193 * 割り込みコントローラのマスク取得
194 */
195#define GET_IPM(p_ipm)
196
197/*
198 * 割り込みコントローラのマスク設定
199 */
200#define CHG_IPM(ipm)
201
202#endif /* SUPPORT_CHG_IPM */
203
204
205#ifndef _MACRO_ONLY
206
207/*
208 * 割込みマスク用擬似ベクタテーブル
209 * ipm_table自体は$(CPU)とのインターフェースに含まれない
210 *   (define_ipmにより、隠蔽されている)
211 */
212extern IPM ipm_table[];
213
214/*
215 * 割り込みレベルの設定
216 * 割込み番号inhnoの割込みを受け付けたときに割込みコントローラの
217 * IPMに設定する値を定義する。
218 * デバイスドライバの初期化処理で使用されることを想定している。
219 *
220 *   引数
221 *    inhno:割込みハンドラ番号
222 *    ipm:割込みマスク
223 *
224 */
225Inline void
226define_ipm(INHNO inhno, IPM ipm)
227{
228 ipm_table[inhno] = ipm;
229}
230
231#endif /* _MACRO_ONLY */
232
233/*
234 * 省電力モードへの移行と割込み許可
235 *  実行すべきタスクがなくて割込み待
236ちになるときに
237 *  ディスパッチャの中で使用される。
238 */
239#define SAVE_POWPER /* 処理内
240容をアセンブラで記述する */
241
242
243/* ----------------------------------------------------------------- */
244/*
245 * The IBM PowerPC Embedded Environment用の定義
246 */
247
248/*
249 * 例外処理ルーチンの定義(必
250須部分)
251 */
252
253/*
254 * Critical Interrupt
255 *  オフセット:0x100
256 *  Critical Interruptはインプリメンテーション依存なので
257 *  処理内
258容はマクロ定義しておく。
259 *   マクロ名:CRITICAL_INTERRUPT_EXCEPTION_PROC
260 *  この処理内
261容は0x100バイトを超
262えてはいけない。
263 *  (超
264える場合は残りの部分を別の場所にé…
265ç½®ã—て、
266 *   そこに分岐すること)
267 *
268 *  Critical Interruptはカーネル管理外の例外とする。
269 *  (この処理ルーチン内
270でサービスコールを使用しない。)
271 *
272 *  例外クラス:Critical
273 *   リターン命令はrfci(Return From Critical Interrupt)
274 *   を用いる。
275 */
276#define CRITICAL_INTERRUPT_EXCEPTION_PROC rfci
277 /* アセンブラで記述する */
278/* このマクロ定義はデバイスに合わせて各自書き換えて下さい。 */
279
280
281/*
282 * マシン・チェック例外
283 *  この処理内
284容は0x100バイトを超
285えてはいけない。
286 *  (超
287える場合は残りの部分を別の場所にé…
288ç½®ã—て、
289 *   そこに分岐すること)
290 *
291 *  カーネル管理外の例外とする。
292 *  (この処理ルーチン内
293でサービスコールを使用しない。)
294 *
295 *  例外クラス:Critical
296 *   リターン命令はrfci(Return From Critical Interrupt)
297 *   を用いる。
298 */
299#define MACHINE_CHECK_PROC rfci
300 /* アセンブラで記述する */
301/* このマクロ定義はデバイスに合わせて各自書き換えて下さい。 */
302
303/*
304 * Programmable Interval timer
305 *  オフセット:0x1000
306 *  0x10バイトしか領域が割り当てられていないので注意
307 */
308#define PROGRAMMABLE_INTERVAL_TIMER_PROC
309 /* アセンブラで記述する */
310/* このマクロ定義はデバイスに合わせて各自書き換えて下さい。 */
311
312/*
313 * Fixed Interval timer
314 *  オフセット:0x1010
315 *  0x10バイトしか領域が割り当てられていないので注意
316 */
317#define FIXED_INTERVAL_TIMER_PROC
318 /* アセンブラで記述する */
319/* このマクロ定義はデバイスに合わせて各自書き換えて下さい。 */
320
321/*
322 * Watchdog timer
323 *  オフセット:0x1020
324 *
325 *  例外クラス:Critical
326 *   リターン命令はrfci(Return From Critical Interrupt)
327 *   を用いる。
328 *
329 *  0x10バイトしか領域が割り当てられていないので注意
330 *  カーネル管理外の例外とする。
331 *  (この処理ルーチン内
332でサービスコールを使用しない。)
333 */
334#define WATCHDOG_TIMER_PROC rfci
335 /* アセンブラで記述する */
336/* このマクロ定義はデバイスに合わせて各自書き換えて下さい。 */
337
338/*
339 * Data TLB miss
340 *  オフセット:0x1100
341 *  0x10バイトしか領域が割り当てられていないので注意
342 */
343#define DATA_TLB_MISS_PROC
344 /* アセンブラで記述する */
345/* このマクロ定義はデバイスに合わせて各自書き換えて下さい。 */
346
347/*
348 * Instruction TLB miss
349 *  オフセット:0x1200
350 *  0x10バイトしか領域が割り当てられていないので注意
351 */
352#define INSTRUCTION_TLB_MISS_PROC
353 /* アセンブラで記述する */
354/* このマクロ定義はデバイスに合わせて各自書き換えて下さい。 */
355
356
357/*
358 * Debug例外
359 *  オフセット:0x2000
360 *
361 *  例外クラス:Critical
362 *   リターン命令はrfci(Return From Critical Interrupt)
363 *   を用いる。
364 *  
365 *  要因は以下の7種類
366 *   Trap
367 *   Instruction address compare
368 *   Data address compare
369 *   Instruction complete
370 *   Branch taken
371 *   Exception
372 *   Unconditional debug event
373 *  
374 *  カーネル管理外の例外とする。
375 *  (この処理ルーチン内
376でサービスコールを使用しない。)
377 *  
378 *  0x10バイトしか領域が割り当てられていないので注意
379 */
380#define DEBUG_PROC rfci
381 /* アセンブラで記述する */
382/* このマクロ定義はデバイスに合わせて各自書き換えて下さい。 */
383
384/*
385 * インプリメンテーション専用の処理(オフセット:0xd00-0xff0)
386 * インプリメンテーション固有の例外ベクタ
387 *   オフセットの指定方法に注意すること。
388 *  å…
389·ä½“的には
390 * .org オフセット - EXCEPTION_VECTOR_BASE
391 *   のように指定する。詳しくは他の例外要因の該当個所を参ç…
392§ã€‚
393 * 例えば、PowerPC405ではオフセット0xf20に
394 * APU Unavailable例外の処理をé…
395ç½®ã™ã‚‹
396 */
397//#define IMPLEMENT_EXCEPTION_D00_PROC
398 /* アセンブラで記述する */
399/* このマクロ定義はデバイスに合わせて各自書き換えて下さい。 */
400
401/*
402 * 例外処理ルーチンの定義(オプション部分)
403 */
404/*
405 * インプリメンテーション専用の処理(オフセット:0x2010-0x2ff0)
406 * インプリメンテーション固有の例外ベクタ(1つとは限らない)や
407 * 他の用途に使用される
408 *   オフセットの指定方法に注意すること。
409 *  å…
410·ä½“的には
411 * .org オフセット - EXCEPTION_VECTOR_BASE
412 *   のように指定する。詳しくは他の例外要因の該当個所を参ç…
413§ã€‚
414 */
415// #define IMPLEMENT_EXCEPTION_02010_PROC
416 /* アセンブラで記述する */
417/* このマクロ定義はデバイスに合わせて各自書き換えて下さい。 */
418
419
420#endif /* _SYS_CONFIG_H_ */
421
422/* end of file */
Note: See TracBrowser for help on using the repository browser.