source: anotherchoice/tags/jsp-1.4.4-full-UTF8/pdic/simple_sio/tl16pir552.h@ 26

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

initial

File size: 6.6 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) 2000-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 */
53
54#ifndef _TL16PIR552_H_
55#define _TL16PIR552_H_
56
57#include <s_services.h> /* デバイスドライバ用標準インクルードファイル */
58
59/*
60 * シリアル/パラレル I/O TL16PIR552(TI) 関連の定義
61 */
62/* TL16PIR552のレジスタのアドレス */
63#define RBR 0x00 /* Receiver Buffer (読み出し) */
64#define THR 0x00 /* Transmitter Holding Register (書き出し) */
65#define DLL 0x00 /* Divisor Latch (LSB) */
66#define IER 0x10 /* Interrupt-Enable Register */
67#define DLM 0x10 /* Divisor Latch (MSB) */
68#define IIR 0x20 /* Interrupt-Ident Register (読み出し) */
69#define FCR 0x20 /* FIFO Control Register (書き出し) */
70#define LCR 0x30 /* Line-Control Register */
71#define MCR 0x40 /* Modem-Control Register */
72#define LSR 0x50 /* Line-Status Register */
73#define MSR 0x60 /* Modem-Status Register */
74#define SCR 0x70 /* Scratch Register */
75
76/* for LCR */
77#define WORD_LENGTH_8 (BIT1 | BIT0)
78#define STOP_BITS_1 0u /* BIT2 */
79#define PARITY_NON 0u /* BIT3, 4 */
80/* BIT5,6 省略 */
81#define DIVISOR_LATCH_ACC BIT7
82
83/* for IER */
84#define DIS_INT 0u
85#define RECEIVE_DATA_AVAILABLE BIT0
86#define TRANS_REG_EMPTY BIT1
87#define RECEIVE_LINE_STATUS BIT2
88#define MODEM_STATUS BIT3
89
90/* for MCR */
91#define DTR BIT0
92#define RTS BIT1
93#define ENABLE_EXT_INT BIT3
94#define AUTOFLOW_CONTROL BIT5
95
96/* for FCR */
97#define FIFO_ENABLE BIT0
98#define RECEIVE_FIFO_RESET BIT1
99#define TRANS_FIFO_RESET BIT2
100#define RECEIVE_TRIG_1_BYTE 0u /* BIT6, 7 */
101#define RECEIVE_TRIG_4_BYTE BIT6
102#define RECEIVE_TRIG_8_BYTE BIT7
103#define RECEIVE_TRIG_14_BYTE (BIT6 | BIT7)
104
105/* for IIR */
106#define INT_MASK 0x0f
107#define INT_RECEIVE_DATA BIT2
108#define INT_CHAR_TIME_OUT (BIT3 | BIT2)
109#define INT_TRANS_EMPTY BIT1
110
111/* for LSR */
112#define THRE BIT5
113#define TEMT BIT6
114
115/* ボーレート定義関係 */
116#define PRE_DIVISOR 4
117#define DIVISOR XIN_CLOCK / (8 * DEVIDE_RATIO * PRE_DIVISOR)
118
119#ifndef _MACRO_ONLY
120
121/*
122 * シリアルI/Oポート管理ブロックの定義
123 */
124typedef struct sio_port_control_block SIOPCB;
125
126#endif /* _MACRO_ONLY */
127
128/*
129 * SIO用システムインタフェースレイヤー
130 */
131/* x : ポートのベースアドレス、y : レジスタオフセット、z : レジスタ値 */
132#define tl16pir552_wrb( x, y, z ) sil_wrb_mem( (VP)(x + y), z )
133#define tl16pir552_reb( x, y ) sil_reb_mem( (VP)(x + y) )
134
135/*
136 * コールバックルーチンの識別番号
137 */
138#define SIO_ERDY_SND 1u /* 送信可能コールバック */
139#define SIO_ERDY_RCV 2u /* 受信通知コールバック */
140
141#ifndef _MACRO_ONLY
142
143/*
144 * SIOドライバの初期化ルーチン
145 */
146extern void tl16pir552_initialize(void);
147
148/*
149 * オープンしているポートがあるか?
150 */
151extern BOOL tl16pir552_openflag(void);
152
153/*
154 * シリアルI/Oポートのオープン
155 */
156extern SIOPCB *tl16pir552_opn_por(ID siopid, VP_INT exinf);
157
158/*
159 * シリアルI/Oポートのクローズ
160 */
161extern void tl16pir552_cls_por(SIOPCB *siopcb);
162
163/*
164 * シリアルI/Oポートへの文字送信
165 */
166extern BOOL tl16pir552_snd_chr(SIOPCB *siopcb, char c);
167
168/*
169 * シリアルI/Oポートからの文字受信
170 */
171extern INT tl16pir552_rcv_chr(SIOPCB *siopcb);
172
173/*
174 * シリアルI/Oポートからのコールバックの許可
175 */
176extern void tl16pir552_ena_cbr(SIOPCB *siopcb, UINT cbrtn);
177
178/*
179 * シリアルI/Oポートからのコールバックの禁止
180 */
181extern void tl16pir552_dis_cbr(SIOPCB *siopcb, UINT cbrtn);
182
183/*
184 * SIOの割込みサービスルーチン
185 */
186extern void tl16pir552_uart0_isr(void);
187extern void tl16pir552_uart1_isr(void);
188
189/*
190 * シリアルI/Oポートからの送信可能コールバック
191 */
192extern void tl16pir552_ierdy_snd(VP_INT exinf);
193
194/*
195 * シリアルI/Oポートからの受信通知コールバック
196 */
197extern void tl16pir552_ierdy_rcv(VP_INT exinf);
198
199/*
200 * カーネル起動時用の初期化 (sys_putcで利用)
201 */
202extern void tl16pir552_init(void);
203
204/*
205 * シリアルI/Oポートへの文字送信(ポーリング)
206 */
207extern void tl16pir552_putchar_pol(char c);
208
209#endif /* _MACRO_ONLY */
210#endif /* _TL16PIR552_H_ */
Note: See TracBrowser for help on using the repository browser.