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

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

initial

File size: 9.6 KB
Line 
1
2/*
3 * TOPPERS/JSP Kernel
4 * Toyohashi Open Platform for Embedded Real-Time Systems/
5 * Just Standard Profile Kernel
6 *
7 * Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
8 * Toyohashi Univ. of Technology, JAPAN
9 *
10 * 上記著作権者
11は,以下の (1)〜(4) の条件か,Free Software Foundation
12 * によってå…
13¬è¡¨ã•ã‚Œã¦ã„ã‚‹ GNU General Public License の Version 2 に記
14 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア
15 * を改変したものを含む.以下同じ)を使用・複製・改変・再é…
16å¸ƒï¼ˆä»¥ä¸‹ï¼Œ
17 * 利用と呼ぶ)することを無償で許諾する.
18 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
19 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー
20 * スコード中に含まれていること.
21 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
22 * 用できる形で再é…
23å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é…
24å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
25 * 者
26マニュアルなど)に,上記の著作権表示,この利用条件および下記
27 * の無保証規定を掲載すること.
28 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
29 * 用できない形で再é…
30å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
31 * と.
32 * (a) 再é…
33å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€…
34マニュアルなど)に,上記の著
35 * 作権表示,この利用条件および下記の無保証規定を掲載すること.
36 * (b) 再é…
37å¸ƒã®å½¢æ…
38‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
39 * 報告すること.
40 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
41 * 害からも,上記著作権者
42およびTOPPERSプロジェクトをå…
43è²¬ã™ã‚‹ã“と.
44 *
45 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者
46お
47 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
48 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
49 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
50 *
51 * @(#) $Id: sh3.h,v 1.8 2006/04/10 09:58:15 honda Exp $
52 */
53
54/*
55 * SH3(SH7729R,SH7709A,SH7709,SH7708)の内
56部レジスタ定義
57 */
58
59#ifndef _SH3_H_
60#define _SH3_H_
61
62#ifndef _MACRO_ONLY
63#include <itron.h>
64#include <sil.h>
65#endif /* _MACRO_ONLY */
66
67/*
68 * 例外イベントレジスタ
69 */
70#define TRA 0xFFFFFFD0
71#define EXPEVT 0xFFFFFFD4
72#define INTEVT 0xFFFFFFD8
73#define INTEVT2 0xA4000000
74
75/*
76 * INTEVT(2) の最大値
77 */
78#ifdef SH7709A
79
80#define MAX_INTIVT (0x980)
81
82#elif defined(SH7727)
83
84#define MAX_INTIVT (0xB80)
85
86#elif defined(SH7729R)
87
88#define MAX_INTIVT (0x980)
89
90#elif defined(SH7750)
91
92#define MAX_INTIVT (0x7E0)
93
94#else
95
96#define MAX_INTIVT (0xB80)
97
98#endif
99
100
101
102/*
103 * バスステートコントローラ関連
104 */
105#define RFCR 0xffffff74 /* H */
106
107#define RFCR_CLEAR 0xa400
108
109
110/*
111 * 割り込みによってINTEVT2レジスタに設定される値
112 */
113#define TMU0_INTEVT 0x400
114#define IRQ0_INTEVT 0x600
115#define SCI_RXI_INTEVT 0x500
116#define SCI_TXI_INTEVT 0x520
117#define SCI_BRI_INTEVT 0x4ed
118#define PINT0_7_INTEVT 0x700
119#define PINT8_15_INTEVT 0x720
120#define SCI1_RXI_INTEVT 0x8a0
121#define SCI1_TXI_INTEVT 0x8e0
122#define SCI1_BRI_INTEVT 0x8c0
123#define SCIF_RXI_INTEVT 0x920
124#define SCIF_TXI_INTEVT 0x960
125#define SCIF_BRI_INTEVT 0x940
126
127
128/*
129 * 割り込みコントローラーレジスター
130 */
131#define ICR0 0xfffffee0 /* H */
132#define ICR1 0xa4000010 /* H */
133#define ICR2 0xa4000012 /* H */
134#define PINTER 0xa4000014 /* H */
135#define IPRA 0xfffffee2 /* H */
136#define IPRB 0xfffffee4 /* H */
137#define IPRC 0xa4000016 /* H */
138#define IPRD 0xa4000018 /* H */
139#define IPRE 0xa400001a /* H */
140#define IRR0 0xa4000004 /* B */
141#define IRR1 0xa4000006 /* B */
142#define IRR2 0xa4000008 /* B */
143
144#define ICR2_PINT7S 0x80
145#define ICR2_PINT6S 0x40
146#define PINTER_PINT7E 0x80
147#define PINTER_PINT6E 0x40
148
149/*
150 * タイマーレジスタ
151 */
152#define TMU_TOCR 0xfffffe90 /* B */
153#define TMU_TSTR 0xfffffe92 /* B */
154#define TMU_TCOR0 0xfffffe94 /* W */
155#define TMU_TCNT0 0xfffffe98 /* W */
156#define TMU_TCR0 0xfffffe9c /* H */
157#define TMU_TCOR1 0xfffffea0 /* W */
158#define TMU_TCNT1 0xfffffea4 /* W */
159#define TMU_TCR1 0xfffffea8 /* H */
160#define TMU_TCOR2 0xfffffeac /* W */
161#define TMU_TCNT2 0xfffffeb0 /* W */
162#define TMU_TCR2 0xfffffeb4 /* H */
163
164#define TMU_STR0 0x01
165#define TMU_STR1 0x02
166#define TMU_STR2 0x04
167#define TCR_UNF 0x0100
168
169
170/*
171 * シリアルコミュニケーションインターフェース(SCI)
172 */
173#define SCI_SCSMR 0xfffffe80 /* B */
174#define SCI_SCBRR 0xfffffe82 /* B */
175#define SCI_SCSCR 0xfffffe84 /* B */
176#define SCI_SCTDR 0xfffffe86 /* B */
177#define SCI_SCSSR 0xfffffe88 /* B */
178#define SCI_SCRDR 0xfffffe8a /* B */
179
180/*
181 * シリアルコミュニケーションインターフェース(SCI)の
182 * ポートSCコントロール/データレジスタ
183 * SH7709及びSH7709Aのみ
184 */
185#define SCPDR 0xa4000136 /* B */
186#define SCPCR 0xa4000116 /* H */
187
188
189/*
190 * シリアルコミュニケーションインターフェース(SCI)の
191 * シリアルポートレジスタ
192 * SH7708のみ
193 */
194#define SCSPTR 0xffffff7c /* H */
195
196#define SCSMR_CHR 0x0040
197#define SCSMR_PE 0x0020
198#define SCSMR_OE 0x0010
199#define SCSMR_STOP 0x0008
200#define SCSMR_CKS1 0x0002
201#define SCSMR_CKS0 0x0001
202
203#define SCSCR_TIE 0x0080
204#define SCSCR_RIE 0x0040
205#define SCSCR_TE 0x0020
206#define SCSCR_RE 0x0010
207#define SCSCR_CKE1 0x0002
208#define SCSCR_CKE0 0x0001
209
210#define SCSSR_TDRE 0x80
211#define SCSSR_RDRF 0x40
212#define SCSSR_ORER 0x20
213#define SCSSR_FER 0x10
214#define SCSSR_PER 0x08
215#define SCSSR_TEND 0x04
216#define SCSSR_MPB 0x02
217#define SCSSR_MPBT 0x01
218
219
220/*
221 * FIFO付きシリアルコミュニケーションインターフェース(SCIF)レジスタ
222 * SH7709及びSH7709Aのみ
223 */
224#define SCIF_SCSMR2 0xa4000150 /* B */
225#define SCIF_SCBRR2 0xa4000152 /* B */
226#define SCIF_SCSCR2 0xa4000154 /* B */
227#define SCIF_SCFTDR2 0xa4000156 /* B */
228#define SCIF_SCSSR2 0xa4000158 /* H */
229#define SCIF_SCFRDR2 0xa400015a /* B */
230#define SCIF_SCFCR2 0xa400015c /* B */
231#define SCIF_SCFDR2 0xa400015e /* H */
232
233#define SCSMR2_CHR 0x0040
234#define SCSMR2_PE 0x0020
235#define SCSMR2_OE 0x0010
236#define SCSMR2_STOP 0x0008
237#define SCSMR2_CKS1 0x0002
238#define SCSMR2_CKS0 0x0001
239
240#define SCSCR2_TIE 0x0080
241#define SCSCR2_RIE 0x0040
242#define SCSCR2_TE 0x0020
243#define SCSCR2_RE 0x0010
244#define SCSCR2_CKE1 0x0002
245#define SCSCR2_CKE0 0x0001
246
247#define SCSSR2_ER 0x0080
248#define SCSSR2_TEND 0x0040
249#define SCSSR2_TDFE 0x0020
250#define SCSSR2_BRK 0x0010
251#define SCSSR2_FER 0x0008
252#define SCSSR2_PER 0x0004
253#define SCSSR2_RDF 0x0002
254#define SCSSR2_DR 0x0001
255
256
257#define SCFCR2_RTRG1 0x0080
258#define SCFCR2_RTRG0 0x0040
259#define SCFCR2_TTRG1 0x0020
260#define SCFCR2_TTRG0 0x0010
261#define SCFCR2_MCE 0x0008
262#define SCFCR2_TFRST 0x0004
263#define SCFCR2_RFRST 0x0002
264#define SCFCR2_LOOP 0x0001
265
266
267/*
268 * IrDA (SCI1)レジスタ
269 * SH7709及びSH7709Aのみ
270 */
271#define SCI1_SCSMR1 0xa4000140 /* B */
272#define SCI1_SCBRR1 0xa4000142 /* B */
273#define SCI1_SCSCR1 0xa4000144 /* B */
274#define SCI1_SCFTDR1 0xa4000146 /* B */
275#define SCI1_SCSSR1 0xa4000148 /* H */
276#define SCI1_SCFRDR1 0xa400014a /* B */
277#define SCI1_SCFCR1 0xa400014c /* B */
278#define SCI1_SCFDR1 0xa400014e /* H */
279
280#define SCSMR1_IRMOD 0x0080
281#define SCSMR1_CHR 0x0040
282#define SCSMR1_PE 0x0020
283#define SCSMR1_OE 0x0010
284#define SCSMR1_STOP 0x0008
285#define SCSMR1_CKS1 0x0002
286#define SCSMR1_CKS0 0x0001
287
288#define SCSCR1_TIE 0x0080
289#define SCSCR1_RIE 0x0040
290#define SCSCR1_TE 0x0020
291#define SCSCR1_RE 0x0010
292#define SCSCR1_CKE1 0x0002
293#define SCSCR1_CKE0 0x0001
294
295#define SCSSR1_ER 0x0080
296#define SCSSR1_TEND 0x0040
297#define SCSSR1_TDFE 0x0020
298#define SCSSR1_BRK 0x0010
299#define SCSSR1_FER 0x0008
300#define SCSSR1_PER 0x0004
301#define SCSSR1_RDF 0x0002
302#define SCSSR1_DR 0x0001
303
304
305#define SCFCR1_RTRG1 0x0080
306#define SCFCR1_RTRG0 0x0040
307#define SCFCR1_TTRG1 0x0020
308#define SCFCR1_TTRG0 0x0010
309#define SCFCR1_MCE 0x0008
310#define SCFCR1_TFRST 0x0004
311#define SCFCR1_RFRST 0x0002
312#define SCFCR1_LOOP 0x0001
313
314
315
316/*
317 * キャッシュ制御レジスタ
318 */
319#define CCR 0xffffffec /* W */
320
321#define CCR_DISABLE 0x00000008 /* キャッシュの無効化 */
322
323#ifndef _MACRO_ONLY
324
325/*
326 * SH7709A及びSH7709のSCIFへのポーリングでの出力
327 */
328Inline int
329scif_putc(int c)
330{
331 /* Wait TDRD = 1 */
332 while((sil_reb_mem((VP)SCIF_SCSSR2) & SCSSR2_TDFE)==0);
333
334 sil_wrb_mem((VP)SCIF_SCFTDR2, c);
335 sil_wrh_mem((VP)SCIF_SCSSR2,
336 (sil_reh_mem((VP)SCIF_SCSSR2) & ~SCSSR2_TDFE));
337 return(c);
338}
339
340
341/*
342 * SCIによる出力
343 */
344Inline int
345sci_putc(int c)
346{
347
348 /* Wait TDRD = 1 */
349 while((sil_reb_mem((VP)SCI_SCSSR) & SCSSR_TDRE) == 0);
350
351 sil_wrb_mem((VP)SCI_SCTDR, c);
352 sil_wrb_mem((VP)SCI_SCSSR,
353 (sil_reb_mem((VP)SCI_SCSSR) & ~SCSSR_TDRE));
354 return(c);
355}
356
357#endif /* _MACRO_ONLY */
358#endif /* _SH3_H_ */
Note: See TracBrowser for help on using the repository browser.