source: anotherchoice/tags/jsp-1.4.4-full-UTF8/config/tms320c54x/c5402dsk/tl16c550cfn.h@ 26

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

initial

File size: 7.0 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 *
9 * 上記著作権者
10は,以下の (1)〜(4) の条件か,Free Software Foundation
11 * によってå…
12¬è¡¨ã•ã‚Œã¦ã„ã‚‹ GNU General Public License の Version 2 に記
13 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア
14 * を改変したものを含む.以下同じ)を使用・複製・改変・再é…
15å¸ƒï¼ˆä»¥ä¸‹ï¼Œ
16 * 利用と呼ぶ)することを無償で許諾する.
17 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
18 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー
19 * スコード中に含まれていること.
20 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
21 * 用できる形で再é…
22å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é…
23å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
24 * 者
25マニュアルなど)に,上記の著作権表示,この利用条件および下記
26 * の無保証規定を掲載すること.
27 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
28 * 用できない形で再é…
29å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
30 * と.
31 * (a) 再é…
32å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€…
33マニュアルなど)に,上記の著
34 * 作権表示,この利用条件および下記の無保証規定を掲載すること.
35 * (b) 再é…
36å¸ƒã®å½¢æ…
37‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
38 * 報告すること.
39 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
40 * 害からも,上記著作権者
41およびTOPPERSプロジェクトをå…
42è²¬ã™ã‚‹ã“と.
43 *
44 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者
45お
46 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
47 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
48 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
49 *
50 * @(#) $Id: tl16c550cfn.h,v 1.3 2003/12/04 08:25:44 honda Exp $
51 */
52
53/*
54 * TL16C550CFN用 簡易SIOドライバ
55 */
56#ifndef _TL16C550CFN_H_
57#define _TL16C550CFN_H_
58
59#include <t_config.h>
60
61/***********************************************
62 * I/O メモリ・マップド・レジスタ *
63***********************************************/
64/*
65 * complex Programmable Logic Device (CPLD) *
66 * I/O メモリ・マップド・レジスタ *
67 */
68
69/* レジスタ アドレス */
70#ifndef _MACRO_ONLY
71volatile ioport UH port0;
72volatile ioport UH port1;
73volatile ioport UH port2;
74volatile ioport UH port3;
75volatile ioport UH port4;
76volatile ioport UH port5;
77volatile ioport UH port6;
78#endif /* _MACRO_ONLY */
79
80/* CPLD レジスタ */
81#define CPLD_CTRL1 port0
82#define CPLD_STAT port1
83#define CPLD_DMCTRL port2
84#define CPLD_DBIO port3
85#define CPLD_CTRL2 port4
86#define CPLD_SEM0 port5
87#define CPLD_SEM1 port6
88
89/*
90 * UART I/O メモリ・マップド・レジスタ *
91 */
92/* レジスタ アドレス */
93#ifndef _MACRO_ONLY
94volatile ioport UH port4000;
95volatile ioport UH port4001;
96volatile ioport UH port4002;
97volatile ioport UH port4003;
98volatile ioport UH port4004;
99volatile ioport UH port4005;
100volatile ioport UH port4006;
101volatile ioport UH port4007;
102#endif /* _MACRO_ONLY */
103
104/* UART レジスタ */
105#define UART_RBR port4000
106#define UART_THR port4000
107#define UART_IER port4001
108#define UART_IIR port4002
109#define UART_FCR port4002
110#define UART_LCR port4003
111#define UART_MCR port4004
112#define UART_LSR port4005
113#define UART_MSR port4006
114#define UART_SCR port4007
115/*
116 * 以下のレジスタにアクセスする前に、
117 * DLAB=1 (b7 of LCR) をセットする必
118要がある
119 */
120#define UART_DLL port4000
121#define UART_DLM port4001
122
123/*
124 * ビットフィールドの定義
125 */
126#define FCR_FIFO 0x01
127#define FCR_RFRST 0x02
128#define FCR_TFRST 0x04
129#define FIFO_TRIG 0x00
130
131#define LCR_DLAB 0x80
132
133/* 受信送信割り込みの定義 */
134#define IER_ERBI 0x01 /* 受信割り込み */
135#define IER_RIE IER_ERBI
136#define IER_ETBEI 0x02 /* 送信割り込み */
137#define IER_TIE IER_ETBEI
138
139#define LSR_DR 0x01
140#define LSR_THRE 0x20
141#define LSR_TEMT 0x40
142
143#define IIR_RXINT 0x04
144#define IIR_TXINT 0x02
145
146/*
147 * UARTのボーレートの設定
148 */
149/*
150 * BAUD RATE 2 : 115200 bps
151 * BAUD RATE 4 : 57600 bps
152 */
153#define UART_BAUD_RATE 2
154
155
156
157#ifndef _MACRO_ONLY
158
159/*
160 * シリアルI/Oポート初期化ブロック
161 */
162typedef struct sio_port_initialization_block {
163 VP dummy;
164} SIOPINIB;
165
166/*
167 * シリアルI/Oポート管理ブロック
168 */
169typedef struct sio_port_control_block {
170 const SIOPINIB *siopinib; /* シリアルI/Oポート初期化ブロック */
171 VP_INT exinf; /* 拡張情
172å ± */
173 BOOL openflag; /* オープン済みフラグ */
174 BOOL getready; /* 文字を受信した状æ…
175‹ */
176 BOOL putready; /* 文字を受信できる状æ…
177‹ */
178} SIOPCB;
179
180/*
181 * コールバックルーチンの識別番号
182 */
183#define SIO_ERDY_SND 1u /* 送信可能コールバック */
184#define SIO_ERDY_RCV 2u /* 受信通知コールバック */
185
186/*
187 * カーネル起動時用の初期化(sys_putcを使用するため)
188 */
189extern void uart_init(void);
190
191/*
192 * SIOドライバの初期化ルーチン
193 */
194extern void uart_initialize(void);
195
196/*
197 * オープンしているポートがあるか?
198 */
199extern BOOL uart_openflag(void);
200
201/*
202 * シリアルI/Oポートのオープン
203 */
204extern SIOPCB *uart_opn_por(ID siopid, VP_INT exinf);
205
206/*
207 * シリアルI/Oポートのクローズ
208 */
209extern void uart_cls_por(SIOPCB *siopcb);
210
211/*
212 * シリアルI/Oポートへの文字送信
213 */
214extern BOOL uart_snd_chr(SIOPCB *siopcb, char chr);
215
216/*
217 * シリアルI/Oポートからの文字受信
218 */
219extern INT uart_rcv_chr(SIOPCB *siopcb);
220
221/*
222 * シリアルI/Oポートからのコールバックの許可
223 */
224extern void uart_ena_cbr(SIOPCB *siopcb, UINT cbrtn);
225
226/*
227 * シリアルI/Oポートからのコールバックの禁止
228 */
229extern void uart_dis_cbr(SIOPCB *siopcb, UINT cbrtn);
230
231/*
232 * SIOの割込みサービスルーチン
233 */
234extern void uart_isr(void);
235
236/*
237 * シリアルI/Oポートからの送信可能コールバック
238 */
239extern void uart_ierdy_snd(VP_INT exinf);
240
241/*
242 * シリアルI/Oポートからの受信通知コールバック
243 */
244extern void uart_ierdy_rcv(VP_INT exinf);
245
246/* ポーリングでシリアルに送信 */
247Inline char
248uart_putc(char c)
249{
250 while ((UART_LSR & LSR_THRE) == 0); /* 送信レジスタが空かどうか */
251 UART_THR = c;
252 return(c);
253}
254
255#endif /* _MACRO_ONLY */
256
257#endif /* _TL16C550CFN_H_ */
Note: See TracBrowser for help on using the repository browser.