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

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

initial

File size: 11.8 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.16 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_3048f.h>
79
80/*
81 * 起動メッセージのターゲット名
82 */
83
84#define TARGET_NAME "AKI-H8/3048F"
85
86/*
87 * chg_ipmをサポートするかどうかの定義
88 */
89#define SUPPORT_CHG_IPM
90
91/*
92 * vxget_tim をサポートするかどうかの定義
93 */
94#define SUPPORT_VXGET_TIM
95
96/*
97 * スタック領域の定義
98 */
99
100 /* 非タスクコンテキスト用スタックの初期値 */
101#define STACKTOP (H8IN_RAM_BASE + H8IN_RAM_SIZE)
102#define str_STACKTOP _TO_STRING(STACKTOP)
103
104#ifndef _MACRO_ONLY
105
106/*
107 * ターゲットシステム依存の初期化
108 */
109
110extern void sys_initialize(void);
111
112/*
113 * ターゲットシステムの終了
114 *
115 * システムを終了する時に使う.ROMモニタ呼出しで実現することを想定し
116 * ている.
117 */
118
119extern void sys_exit(void);
120
121/*
122 * ターゲットシステムの文字出力
123 *
124 * システムの低レベルの文字出力ルーチン.ROMモニタ呼出しで実現するこ
125 * とを想定している.
126 */
127
128extern void cpu_putc(char c);
129
130Inline void
131sys_putc(char c)
132{
133 cpu_putc(c);
134};
135
136#endif /* _MACRO_ONLY */
137
138/*
139 * (1) シリアルポートの設定
140 * (2) タイマーの設定
141 * (3) 外部アドレス空間制御
142 */
143
144/*
145 * サポートするシリアルディバイスの数は最大 2
146 *
147 * サンプルプログラムを動かす場合は
148 * sys_defs.hにあるTASK_PORTIDの定義にも注意
149 */
150#define TNUM_PORT 2
151
152/*
153 * SCI å…
154±é€šå®šæ•°ã€ãƒžã‚¯ãƒ­
155 */
156
157#define CONSOLE_PORTID SYSTEM_PORTID /* コンソールに用いるシリアルポート番号 */
158#define LOGTASK_PORTID SYSTEM_PORTID /* システムログを出力するシリアルポート番号 */
159
160#define H8_MIN_BAUD_RATE 9600 /* SCI をクローズする前の待
161ち時間の計算に使用する。*/
162
163/* エラー割り込みを、å…
164¥åŠ›å‰²ã‚Šè¾¼ã¿ã¨åˆ¥ã«æ“ä½œã™ã‚‹å ´åˆã¯ã‚³ãƒ¡ãƒ³ãƒˆã‚’はずす。*/
165/*#define H8_CFG_SCI_ERR_HANDLER*/
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#if TNUM_PORT == 1
185
186#define SYSTEM_BAUD_RATE 38400 /* bps */
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#ifdef SUPPORT_PPP
210
211#define USER_BAUD_RATE 9600 /* bps */
212
213#else /* of #ifdef SUPPORT_PPP */
214
215#define USER_BAUD_RATE 38400 /* bps */
216
217#endif /* of #ifdef SUPPORT_PPP */
218
219#define SYSTEM_BAUD_RATE 38400 /* bps */
220
221#define USER_PORTID 1
222#define SYSTEM_PORTID 2
223
224#define INHNO_SERIAL_IN IRQ_RXI0
225#define INHNO_SERIAL_OUT IRQ_TXI0
226#define INHNO_SERIAL_ERR IRQ_ERI0
227
228#define INHNO_SERIAL2_IN IRQ_RXI1
229#define INHNO_SERIAL2_OUT IRQ_TXI1
230#define INHNO_SERIAL2_ERR IRQ_ERI1
231
232#else /* of #if TNUM_PORT == 1 */
233
234#error TNUM_PORT <= 2
235
236#endif /* of #if TNUM_PORT == 1 */
237
238/* プライオリティレベル設定用のデータ */
239
240/* 割込み要求のレベル設定 */
241#define SYSTEM_SCI_IPM IPM_LEVEL0
242#define USER_SCI_IPM IPM_LEVEL0
243
244/*
245 * 割込みハンドラ実行中の割込みマスクの値
246 *   他の割込みをマスクするための設定
247 *   自分と同じレベルの割込み要求をブロックするため、
248 *   上記の割込み要求レベルより1つ高いレベルに設定する。
249 */
250#if TNUM_PORT == 1 /* ポート1:システム・ポート */
251
252/* システム・ポート */
253#if SYSTEM_SCI_IPM == IPM_LEVEL0
254#define sio_in_handler_intmask IPM_LEVEL1
255#elif SYSTEM_SCI_IPM == IPM_LEVEL1
256#define sio_in_handler_intmask IPM_LEVEL2
257#endif /* SYSTEM_SCI_IPM == IPM_LEVEL0 */
258
259
260#elif TNUM_PORT == 2 /* of #if TNUM_PORT == 1 */
261 /* ポート1:ユーザー・ポート */
262 /* ポート2:システム・ポート */
263/* ユーザー・ポート */
264#if USER_SCI_IPM == IPM_LEVEL0
265#define sio_in_handler_intmask IPM_LEVEL1
266#elif USER_SCI_IPM == IPM_LEVEL1
267#define sio_in_handler_intmask IPM_LEVEL2
268#endif /* USER_SCI_IPM == IPM_LEVEL0 */
269
270/* システム・ポート */
271#if SYSTEM_SCI_IPM == IPM_LEVEL0
272#define sio_in2_handler_intmask IPM_LEVEL1
273#elif SYSTEM_SCI_IPM == IPM_LEVEL1
274#define sio_in2_handler_intmask IPM_LEVEL2
275#endif /* SYSTEM_SCI_IPM == IPM_LEVEL0 */
276
277#endif /* of #if TNUM_PORT == 1 */
278
279#define sio_out_handler_intmask sio_in_handler_intmask
280#define sio_err_handler_intmask sio_in_handler_intmask
281#define sio_out2_handler_intmask sio_in2_handler_intmask
282#define sio_err2_handler_intmask sio_in2_handler_intmask
283
284
285/*
286 * タイマの設定
287 */
288
289#define SYSTEM_TIMER H8ITU0
290
291#define SYSTEM_TIMER_CNT (SYSTEM_TIMER + H8TCNT)
292#define SYSTEM_TIMER_TCR (SYSTEM_TIMER + H8TCR)
293#define SYSTEM_TIMER_TIOR (SYSTEM_TIMER + H8TIOR)
294#define SYSTEM_TIMER_IER (SYSTEM_TIMER + H8TIER)
295#define SYSTEM_TIMER_IFR (SYSTEM_TIMER + H8TSR)
296#define SYSTEM_TIMER_TSTR H8ITU_TSTR
297#define SYSTEM_TIMER_GR (SYSTEM_TIMER + H8GRA)
298
299#define SYSTEM_TIMER_STR H8TSTR_STR0
300#define SYSTEM_TIMER_STR_BIT H8TSTR_STR0_BIT
301#define SYSTEM_TIMER_IE H8TIER_IMIEA /* interrupt mask */
302#define SYSTEM_TIMER_IE_BIT H8TIER_IMIEA_BIT
303#define SYSTEM_TIMER_IF H8TSR_IMIFA /* match flag */
304#define SYSTEM_TIMER_IF_BIT H8TSR_IMIFA_BIT
305
306#define INHNO_TIMER IRQ_IMIA0
307
308#define SYSTEM_TIMER_TCR_BIT (H8TCR_CCLR0 | H8TCR_TPSC1 | H8TCR_TPSC0)
309#define SYSTEM_TIMER_TIOR_BIT (0)
310
311#define TIMER_CLOCK ((CPU_CLOCK)/8000)
312 /* 16MHz / 8 = 2MHz = 2000KHz */
313
314/* プライオリティレベル設定用のデータ */
315
316/* 割込み要求のレベル設定 */
317#define SYSTEM_TIMER_IPR H8IPRA
318#define SYSTEM_TIMER_IP_BIT H8IPR_ITU0_BIT
319#define SYSTEM_TIMER_IPM IPM_LEVEL1
320
321/*
322 * 割込みハンドラ実行中の割込みマスクの値
323 *   他の割込みをマスクするための設定
324 *   自分と同じレベルの割込み要求をブロックするため、
325 *   上記の割込み要求レベルより1つ高いレベルに設定する。
326 */
327#if SYSTEM_TIMER_IPM == IPM_LEVEL0
328#define timer_handler_intmask IPM_LEVEL1
329#elif SYSTEM_TIMER_IPM == IPM_LEVEL1
330#define timer_handler_intmask IPM_LEVEL2
331#endif /* SYSTEM_TIMER_IPM == IPM_LEVEL0 */
332
333
334
335/*
336 * 外部アドレス空間制御
337 */
338
339#if 0
340#define ENABLE_LOWER_DATA
341#define ENABLE_P8_CS (H8P8DDR_CS0|H8P8DDR_CS1|H8P8DDR_CS2|H8P8DDR_CS3)
342#define ENABLE_PA_CS (H8PADDR_CS4|H8PADDR_CS5|H8PADDR_CS6)
343#define ENABLE_PB_CS H8PBDDR_CS7
344
345#define ENABLE_PA_A21_A23 (H8BRCR_A23E|H8BRCR_A22E|H8BRCR_A21E)
346
347#endif
348
349
350/*
351 * 微少時間待
352ちのための定義
353 */
354
355#ifdef ROM
356
357#define SIL_DLY_TIM1 9400
358#define SIL_DLY_TIM2 701
359
360#else /* of #ifdef ROM */
361
362#define SIL_DLY_TIM1 24900
363#define SIL_DLY_TIM2 5260
364
365#endif /* of #ifdef ROM */
366
367/*
368 * DDRの初期値の定義
369 */
370#define H8P1DDR0 0xff /* ポート1 */
371#define H8P2DDR0 0xff /* ポート2 */
372#define H8P3DDR0 0xff /* ポート3 */
373
374#ifdef ENABLE_LOWER_DATA
375#define H8P4DDR0 0xff /* ポート4 */
376#else /* #if ENABLE_LOWER_DATA */
377#define H8P4DDR0 DUMMY /* ポート4 */
378#endif /* #if ENABLE_LOWER_DATA */
379
380#define H8P5DDR0 0xff /* ポート5 */
381#define H8P6DDR0 DUMMY /* ポート6 */
382
383/* ポート7はå…
384¥åŠ›å°‚用でDDRレジスタがないため、省略している。 */
385
386#ifdef ENABLE_P8_CS
387#define H8P8DDR0 ENABLE_P8_CS /* ポート8 */
388#else /* #ifdef ENABLE_P8_CS */
389#define H8P8DDR0 DUMMY /* ポート8 */
390#endif /* #ifdef ENABLE_P8_CS */
391
392#define H8P9DDR0 DUMMY /* ポート9 */
393
394#ifdef ENABLE_PA_CS
395#define H8PADDR0 ENABLE_PA_CS /* ポートA */
396#elif defined(ENABLE_PA_A21_A23)
397#define H8PADDR0 ENABLE_PA_A21_A23 /* ポートA */
398#else
399#define H8PADDR0 DUMMY /* ポートA */
400#endif /* #ifdef ENABLE_PA_CS */
401
402#ifdef ENABLE_PB_CS
403#define H8PBDDR0 ENABLE_PB_CS /* ポートB */
404#else /* #ifdef ENABLE_PB_CS */
405#define H8PBDDR0 DUMMY /* ポートB */
406#endif /* #ifdef ENABLE_PB_CS */
407
408#endif /* _SYS_CONFIG_H_ */
Note: See TracBrowser for help on using the repository browser.