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

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

initial

File size: 11.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 * Copyright (C) 2001-2004 by Dep. of Computer Science and Engineering
11 * Tomakomai National College of Technology, JAPAN
12 *
13 * 上記著作権者
14は,以下の (1)〜(4) の条件か,Free Software Foundation
15 * によってå…
16¬è¡¨ã•ã‚Œã¦ã„ã‚‹ GNU General Public License の Version 2 に記
17 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア
18 * を改変したものを含む.以下同じ)を使用・複製・改変・再é…
19å¸ƒï¼ˆä»¥ä¸‹ï¼Œ
20 * 利用と呼ぶ)することを無償で許諾する.
21 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
22 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー
23 * スコード中に含まれていること.
24 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
25 * 用できる形で再é…
26å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é…
27å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
28 * 者
29マニュアルなど)に,上記の著作権表示,この利用条件および下記
30 * の無保証規定を掲載すること.
31 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
32 * 用できない形で再é…
33å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
34 * と.
35 * (a) 再é…
36å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€…
37マニュアルなど)に,上記の著
38 * 作権表示,この利用条件および下記の無保証規定を掲載すること.
39 * (b) 再é…
40å¸ƒã®å½¢æ…
41‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
42 * 報告すること.
43 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
44 * 害からも,上記著作権者
45およびTOPPERSプロジェクトをå…
46è²¬ã™ã‚‹ã“と.
47 *
48 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者
49お
50 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
51 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
52 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
53 *
54 * @(#) $Id: sys_config.h,v 1.14 2007/03/23 07:22:15 honda Exp $
55 */
56
57/*
58 * ターゲットシステム依存モジュール
59 *
60 * このインクルードファイルは,t_config.h のみからインクルードされる.
61 * 他のファイルから直接インクルードしてはならない.
62 */
63
64#ifndef _SYS_CONFIG_H_
65#define _SYS_CONFIG_H_
66
67/*
68 * カーネルの内
69部識別名のリネーム
70 */
71
72#include <sys_rename.h>
73
74/*
75 * ターゲットシステムのハードウェア資源の定義
76 */
77#include <h8.h>
78#include <h8_3052f.h>
79
80/*
81 * 起動メッセージのターゲット名
82 */
83
84#define TARGET_NAME "AKI-H8/3052F"
85
86/*
87 * chg_ipmをサポートするかどうかの定義
88 */
89#define SUPPORT_CHG_IPM
90
91/*
92 * vxget_tim をサポートするかどうかの定義
93 */
94
95#define SUPPORT_VXGET_TIM
96
97/*
98 * スタック領域の定義
99 */
100
101 /* 非タスクコンテキスト用スタックの初期値 */
102#define STACKTOP (H8IN_RAM_BASE + H8IN_RAM_SIZE)
103#define str_STACKTOP _TO_STRING(STACKTOP)
104
105#ifndef _MACRO_ONLY
106
107/*
108 * ターゲットシステム依存の初期化
109 */
110
111extern void sys_initialize(void);
112
113/*
114 * ターゲットシステムの終了
115 *
116 * システムを終了する時に使う.ROMモニタ呼出しで実現することを想定し
117 * ている.
118 */
119
120extern void sys_exit(void);
121
122/*
123 * ターゲットシステムの文字出力
124 *
125 * システムの低レベルの文字出力ルーチン.ROMモニタ呼出しで実現するこ
126 * とを想定している.
127 */
128
129extern void cpu_putc(char c);
130
131Inline void
132sys_putc(char c)
133{
134 cpu_putc(c);
135};
136
137#endif /* _MACRO_ONLY */
138
139/*
140 * (1) シリアルポートの設定
141 * (2) タイマーの設定
142 * (3) 外部アドレス空間制御
143 */
144
145/*
146 * サポートするシリアルディバイスの数は最大 2
147 */
148#define TNUM_PORT 1
149
150/*
151 * SCI å…
152±é€šå®šæ•°ã€ãƒžã‚¯ãƒ­
153 */
154
155#define CONSOLE_PORTID SYSTEM_PORTID /* コンソールに用いるシリアルポート番号 */
156#define LOGTASK_PORTID SYSTEM_PORTID /* システムログを出力するシリアルポート番号 */
157
158#define H8_MIN_BAUD_RATE 9600 /* SCI をクローズする前の待
159ち時間の計算に使用する。*/
160
161/* エラー割り込みを、å…
162¥åŠ›å‰²ã‚Šè¾¼ã¿ã¨åˆ¥ã«æ“ä½œã™ã‚‹å ´åˆã¯ã‚³ãƒ¡ãƒ³ãƒˆã‚’はずす。*/
163#if 0
164#define H8_CFG_SCI_ERR_HANDLER
165#endif
166
167/*
168 * SYSTEM 用 SCI の設定値
169 */
170
171#define SYSTEM_SCI H8SCI1
172
173#define SYSTEM_SCI_IPR H8IPRB
174#define SYSTEM_SCI_IP_BIT H8IPR_SCI1_BIT
175
176#define SYSTEM_SCI_SMR 0
177 /* 送受信フォーマット */
178 /* 調歩同期式 */
179 /* キャラクタレングス:8ビット */
180 /* パリティなし */
181 /* ストップビットレングス:1 */
182 /* クロックセレクト(分周比):1 */
183
184#define SYSTEM_BAUD_RATE 38400 /* bps */
185
186#if TNUM_PORT == 1
187
188#define SYSTEM_PORTID 1
189
190#define INHNO_SERIAL_IN IRQ_RXI1
191#define INHNO_SERIAL_OUT IRQ_TXI1
192#define INHNO_SERIAL_ERR IRQ_ERI1
193
194#elif TNUM_PORT == 2 /* of #if TNUM_PORT == 1 */
195
196#define USER_SCI H8SCI0
197
198#define USER_SCI_IPR H8IPRB
199#define USER_SCI_IP_BIT H8IPR_SCI0_BIT
200
201#define USER_SCI_SMR 0
202 /* 送受信フォーマット */
203 /* 調歩同期式 */
204 /* キャラクタレングス:8ビット */
205 /* パリティなし */
206 /* ストップビットレングス:1 */
207 /* クロックセレクト(分周比):1 */
208
209#define USER_BAUD_RATE 38400 /* bps */
210
211#define USER_PORTID 1
212#define SYSTEM_PORTID 2
213
214#define INHNO_SERIAL_IN IRQ_RXI0
215#define INHNO_SERIAL_OUT IRQ_TXI0
216#define INHNO_SERIAL_ERR IRQ_ERI0
217
218#define INHNO_SERIAL2_IN IRQ_RXI1
219#define INHNO_SERIAL2_OUT IRQ_TXI1
220#define INHNO_SERIAL2_ERR IRQ_ERI1
221
222#else /* of #if TNUM_PORT == 1 */
223
224#error TNUM_PORT <= 2
225
226#endif /* of #if TNUM_PORT == 1 */
227
228/* プライオリティレベル設定用のデータ */
229
230/* 割込み要求のレベル設定 */
231#define SYSTEM_SCI_IPM IPM_LEVEL0
232#define USER_SCI_IPM IPM_LEVEL0
233
234/*
235 * 割込みハンドラ実行中の割込みマスクの値
236 *   他の割込みをマスクするための設定
237 *   自分と同じレベルの割込み要求をブロックするため、
238 *   上記の割込み要求レベルより1つ高いレベルに設定する。
239 */
240#if TNUM_PORT == 1 /* ポート1:システム・ポート */
241
242/* システム・ポート */
243#if SYSTEM_SCI_IPM == IPM_LEVEL0
244#define sio_in_handler_intmask IPM_LEVEL1
245#elif SYSTEM_SCI_IPM == IPM_LEVEL1
246#define sio_in_handler_intmask IPM_LEVEL2
247#endif /* SYSTEM_SCI_IPM == IPM_LEVEL0 */
248
249
250#elif TNUM_PORT == 2 /* of #if TNUM_PORT == 1 */
251 /* ポート1:ユーザー・ポート */
252 /* ポート2:システム・ポート */
253/* ユーザー・ポート */
254#if USER_SCI_IPM == IPM_LEVEL0
255#define sio_in_handler_intmask IPM_LEVEL1
256#elif USER_SCI_IPM == IPM_LEVEL1
257#define sio_in_handler_intmask IPM_LEVEL2
258#endif /* USER_SCI_IPM == IPM_LEVEL0 */
259
260/* システム・ポート */
261#if SYSTEM_SCI_IPM == IPM_LEVEL0
262#define sio_in2_handler_intmask IPM_LEVEL1
263#elif SYSTEM_SCI_IPM == IPM_LEVEL1
264#define sio_in2_handler_intmask IPM_LEVEL2
265#endif /* SYSTEM_SCI_IPM == IPM_LEVEL0 */
266
267#endif /* of #if TNUM_PORT == 1 */
268
269#define sio_out_handler_intmask sio_in_handler_intmask
270#define sio_err_handler_intmask sio_in_handler_intmask
271#define sio_out2_handler_intmask sio_in2_handler_intmask
272#define sio_err2_handler_intmask sio_in2_handler_intmask
273
274
275
276/*
277 * タイマの設定
278 */
279
280#define SYSTEM_TIMER H8ITU0
281
282#define SYSTEM_TIMER_CNT (SYSTEM_TIMER + H8TCNT)
283#define SYSTEM_TIMER_TCR (SYSTEM_TIMER + H8TCR)
284#define SYSTEM_TIMER_TIOR (SYSTEM_TIMER + H8TIOR)
285#define SYSTEM_TIMER_IER (SYSTEM_TIMER + H8TIER)
286#define SYSTEM_TIMER_IFR (SYSTEM_TIMER + H8TSR)
287#define SYSTEM_TIMER_TSTR H8ITU_TSTR
288#define SYSTEM_TIMER_GR (SYSTEM_TIMER + H8GRA)
289
290#define SYSTEM_TIMER_STR H8TSTR_STR0
291#define SYSTEM_TIMER_STR_BIT H8TSTR_STR0_BIT
292#define SYSTEM_TIMER_IE H8TIER_IMIEA /* interrupt mask */
293#define SYSTEM_TIMER_IE_BIT H8TIER_IMIEA_BIT
294#define SYSTEM_TIMER_IF H8TSR_IMIFA /* match flag */
295#define SYSTEM_TIMER_IF_BIT H8TSR_IMIFA_BIT
296
297#define INHNO_TIMER IRQ_IMIA0
298
299#define SYSTEM_TIMER_TCR_BIT (H8TCR_CCLR0 | H8TCR_TPSC1 | H8TCR_TPSC0)
300#define SYSTEM_TIMER_TIOR_BIT (0)
301
302#define TIMER_CLOCK ((CPU_CLOCK)/8000)
303 /* 25MHz / 8 = 2MHz = 3125KHz */
304
305/* プライオリティレベル設定用のデータ */
306
307/* 割込み要求のレベル設定 */
308#define SYSTEM_TIMER_IPR H8IPRA
309#define SYSTEM_TIMER_IP_BIT H8IPR_ITU0_BIT
310#define SYSTEM_TIMER_IPM IPM_LEVEL1
311
312/*
313 * 割込みハンドラ実行中の割込みマスクの値
314 *   他の割込みをマスクするための設定
315 *   自分と同じレベルの割込み要求をブロックするため、
316 *   上記の割込み要求レベルより1つ高いレベルに設定する。
317 */
318#if SYSTEM_TIMER_IPM == IPM_LEVEL0
319#define timer_handler_intmask IPM_LEVEL1
320#elif SYSTEM_TIMER_IPM == IPM_LEVEL1
321#define timer_handler_intmask IPM_LEVEL2
322#endif /* SYSTEM_TIMER_IPM == IPM_LEVEL0 */
323
324
325/*
326 * 外部アドレス空間制御
327 */
328
329/*#define ENABLE_LOWER_DATA*/
330
331#define ENABLE_P8_CS (H8P8DDR_CS0|H8P8DDR_CS1|H8P8DDR_CS2|H8P8DDR_CS3)
332
333#if 0
334#define ENABLE_PA_CS (H8PADDR_CS4|H8PADDR_CS5|H8PADDR_CS6)
335#define ENABLE_PB_CS H8PBDDR_CS7
336#endif
337
338#define ENABLE_PA_A21_A23 (H8BRCR_A23E|H8BRCR_A22E|H8BRCR_A21E)
339
340/*
341 * 微少時間待
342ちのための定義
343 */
344
345#ifdef ROM
346
347
348#define SIL_DLY_TIM1 5750
349#define SIL_DLY_TIM2 430
350
351#else /* of #ifdef ROM */
352
353#define SIL_DLY_TIM1 13910
354#define SIL_DLY_TIM2 2940
355
356#endif /* of #ifdef ROM */
357
358/*
359 * DDRの初期値の定義
360 */
361#define H8P1DDR0 0xff /* ポート1 */
362#define H8P2DDR0 0xff /* ポート2 */
363#define H8P3DDR0 0xff /* ポート3 */
364
365#ifdef ENABLE_LOWER_DATA
366#define H8P4DDR0 0xff /* ポート4 */
367#else /* #if ENABLE_LOWER_DATA */
368#define H8P4DDR0 DUMMY /* ポート4 */
369#endif /* #if ENABLE_LOWER_DATA */
370
371#define H8P5DDR0 0xff /* ポート5 */
372#define H8P6DDR0 DUMMY /* ポート6 */
373
374/* ポート7はå…
375¥åŠ›å°‚用でDDRレジスタがないため、省略している。 */
376
377#ifdef ENABLE_P8_CS
378#define H8P8DDR0 ENABLE_P8_CS /* ポート8 */
379#else /* #ifdef ENABLE_P8_CS */
380#define H8P8DDR0 DUMMY /* ポート8 */
381#endif /* #ifdef ENABLE_P8_CS */
382
383#define H8P9DDR0 DUMMY /* ポート9 */
384
385#ifdef ENABLE_PA_CS
386#define H8PADDR0 ENABLE_PA_CS /* ポートA */
387#elif defined(ENABLE_PA_A21_A23)
388#define H8PADDR0 ENABLE_PA_A21_A23 /* ポートA */
389#else
390#define H8PADDR0 DUMMY /* ポートA */
391#endif /* #ifdef ENABLE_PA_CS */
392
393#ifdef ENABLE_PB_CS
394#define H8PBDDR0 ENABLE_PB_CS /* ポートB */
395#else /* #ifdef ENABLE_PB_CS */
396#define H8PBDDR0 DUMMY /* ポートB */
397#endif /* #ifdef ENABLE_PB_CS */
398
399#endif /* _SYS_CONFIG_H_ */
Note: See TracBrowser for help on using the repository browser.