source: anotherchoice/tags/jsp-1.4.4-full-UTF8/config/h8s/hw_serial.h@ 26

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

initial

File size: 6.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-2004 by Dep. of Computer Science and Engineering
9 * Tomakomai National College of Technology, JAPAN
10 * Copyright (C) 2001-2004 by Industrial Technology Institute,
11 * Miyagi Prefectural Government, 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
55/*
56 * シリアルI/Oデバイス(SIO)ドライバ(H8Sファミリー用)
57 */
58#ifndef _HW_SERIAL_H_
59#define _HW_SERIAL_H_
60
61#include <h8s_sci.h>
62
63/*
64 * SIOの割込みハンドラのベクタ番号
65 */
66/* ポート1 */
67#define INHNO_SERIAL1_ERROR IRQ_ERI0
68#define INHNO_SERIAL1_IN IRQ_RXI0
69#define INHNO_SERIAL1_OUT IRQ_TXI0
70#if TNUM_PORT >= 2
71/* ポート2 */
72#define INHNO_SERIAL2_ERROR IRQ_ERI1
73#define INHNO_SERIAL2_IN IRQ_RXI1
74#define INHNO_SERIAL2_OUT IRQ_TXI1
75#endif /* TNUM_PORT */
76
77/*
78 * SIOドライバの初期化ルーチン
79 */
80#define sio_initialize h8s_sci_initialize
81
82/*
83 * カーネル起動時用の初期化 (sys_putcで利用)
84 */
85#define sio_init h8s_sci_init
86
87#ifndef _MACRO_ONLY
88
89/*
90 * シリアルI/Oポートのオープン
91 */
92Inline SIOPCB *
93sio_opn_por(ID siopid, VP_INT exinf)
94{
95 SIOPCB *siopcb;
96 BOOL openflag;
97
98 /*
99 * オープンしたポートがあるかを openflag に読んでおく。
100 */
101 openflag = h8s_sci_openflag();
102
103 /*
104 * モジュールストップモード解除
105 */
106#if TNUM_SIOP < 2
107 h8s_andh( (VP) MSTPCR, ~( BIT5 ) );
108#else /* TNUM_SIOP < 2 */
109 h8s_andh( (VP) MSTPCR, ~( BIT6 | BIT5 ) );
110#endif /* TNUM_SIOP < 2 */
111
112 /*
113 * デバイス依存のオープン処理
114 */
115 siopcb = h8s_sci_opn_por(siopid, exinf);
116
117 /*
118 * シリアルI/O割込みの割込みレベルを設定する。
119 */
120 if (!openflag) {
121 /* 割込みレベル設定 */
122#ifndef GDB_STUB /* SCI0 は GDB_STUB で利用する。 */
123 icu_set_ilv( (VP) IPRJ, IPR_LOW, SCI0_INT_LVL );
124#endif /* GDB_STUB */
125#if TNUM_SIOP >= 2
126 icu_set_ilv( (VP) IPRK, IPR_UPR, SCI1_INT_LVL );
127#endif /* TNUM_SIOP >= 2 */
128 }
129 return(siopcb);
130}
131
132/*
133 * シリアルI/Oポートのクローズ
134 */
135Inline void
136sio_cls_por(SIOPCB *siopcb)
137{
138 /*
139 * デバイス依存のクローズ処理
140 */
141 h8s_sci_cls_por(siopcb);
142
143 /*
144 * モジュールストップモードセット
145 */
146#if TNUM_SIOP < 2
147 h8s_orh( (VP) MSTPCR, BIT5 );
148#else /* TNUM_SIOP < 2 */
149 h8s_orh( (VP) MSTPCR, ( BIT6 | BIT5 ) );
150#endif /* TNUM_SIOP < 2 */
151
152 /*
153 * シリアルI/O割込みをマスクする。
154 */
155 if (!h8s_sci_openflag()) {
156 /* 割込みマスク処理 */
157#ifndef GDB_STUB /* SCI0 は GDB_STUB で利用する。 */
158 icu_set_ilv( (VP) IPRJ, IPR_LOW, 0 );
159#endif /* GDB_STUB */
160#if TNUM_SIOP >= 2
161 icu_set_ilv( (VP) IPRK, IPR_UPR, 0 );
162#endif /* TNUM_SIOP >= 2 */
163 }
164}
165
166#endif /* _MACRO_ONLY */
167
168/*
169 * SIOの割込みハンドラ
170 * sio1_handler_in : 受信割込みハンドラ
171 * sio1_handler_out : 送信割込みハンドラ
172 * sio1_handler_error : 受信エラー割込みハンドラ
173 */
174/* ポート1 */
175#define sio1_handler_in h8s_sci0_isr_in
176#define sio1_handler_out h8s_sci0_isr_out
177#define sio1_handler_error h8s_sci0_isr_error
178#if TNUM_SIOP >= 2
179/* ポート2 */
180#define sio2_handler_in h8s_sci1_isr_in
181#define sio2_handler_out h8s_sci1_isr_out
182#define sio2_handler_error h8s_sci1_isr_error
183#endif /* TNUM_SIOP >= 2 */
184
185/*
186 * シリアルI/Oポートへの文字送信
187 */
188#define sio_snd_chr h8s_sci_snd_chr
189
190/*
191 * シリアルI/Oポートへの文字送信(ポーリング)
192 */
193#define sio_snd_chr_pol h8s_sci0_putchar_pol
194
195/*
196 * シリアルI/Oポートからの文字受信
197 */
198#define sio_rcv_chr h8s_sci_rcv_chr
199
200/*
201 * シリアルI/Oポートからのコールバックの許可
202 */
203#define sio_ena_cbr h8s_sci_ena_cbr
204
205/*
206 * シリアルI/Oポートからのコールバックの禁止
207 */
208#define sio_dis_cbr h8s_sci_dis_cbr
209
210/*
211 * シリアルI/Oポートからの送信可能コールバック
212 */
213#define sio_ierdy_snd h8s_sci_ierdy_snd
214
215/*
216 * シリアルI/Oポートからの受信通知コールバック
217 */
218#define sio_ierdy_rcv h8s_sci_ierdy_rcv
219
220#endif /* _HW_SERIAL_H_ */
Note: See TracBrowser for help on using the repository browser.