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

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

initial

File size: 11.3 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#ifndef _H8S_H_
56#define _H8S_H_
57
58#include <util.h>
59
60/*
61 * H8S/2600, H8S/2000 CPU 用定義
62 * および、バスコントローラ、割込みコントローラ関連の定義
63 */
64
65/*
66 * コンディションコードレジスタ(CCR)
67 */
68#define CCR_I BIT7
69#define CCR_UI BIT6
70#define CCR_H BIT5
71#define CCR_U BIT4
72#define CCR_N BIT3
73#define CCR_Z BIT2
74#define CCR_V BIT1
75#define CCR_C BIT0
76
77/*
78 * エクステンドレジスタ(EXR)
79 */
80#define EXR_T BIT7 /* トレースビット */
81#define EXR_I2 BIT2 /* 割込みマスクビット */
82#define EXR_I1 BIT1 /* 割込みマスクビット */
83#define EXR_I0 BIT0 /* 割込みマスクビット */
84
85/* 割込みマスクビット取得用マスク */
86#define EXR_I_MASK (EXR_I2|EXR_I1|EXR_I0)
87
88/*
89 * MCU動作モード関連のレジスタ
90 */
91
92/* レジスタのアドレス */
93#define MDCR 0xff3b
94#define SYSCR 0xff39
95
96/* 各レジスタのビットパターン */
97
98/* MDCR */
99#define MDS2 BIT2
100#define MDS1 BIT1
101#define MDS0 BIT0
102
103/* SYSCR */
104#define INTM1 BIT5
105#define INTM0 BIT4
106#define NMIEG BIT3
107#define RAME BIT0
108
109#define RAME_BIT 0x0
110
111/*
112 * 割込みコントローラ
113 */
114/* レジスタのアドレス */
115/* システムコントロールレジスタは、既に定義済み */
116#define ISCRH 0xff2c /* IRQセンスコントロールレジスタH */
117#define ISCRL 0xff2d /* IRQセンスコントロールレジスタL */
118#define IER 0xff2e /* IRQイネーブルレジスタ */
119#define ISR 0xff2f /* IRQステータスレジスタ */
120#define IPRA 0xfec4 /* インタラプトプライオリティレジスタA */
121#define IPRB 0xfec5 /* インタラプトプライオリティレジスタB */
122#define IPRC 0xfec6 /* インタラプトプライオリティレジスタC */
123#define IPRD 0xfec7 /* インタラプトプライオリティレジスタD */
124#define IPRE 0xfec8 /* インタラプトプライオリティレジスタE */
125#define IPRF 0xfec9 /* インタラプトプライオリティレジスタF */
126#define IPRG 0xfeca /* インタラプトプライオリティレジスタG */
127#define IPRH 0xfecb /* インタラプトプライオリティレジスタH */
128#define IPRI 0xfecc /* インタラプトプライオリティレジスタI */
129#define IPRJ 0xfecd /* インタラプトプライオリティレジスタJ */
130#define IPRK 0xfece /* インタラプトプライオリティレジスタK */
131
132/* 各レジスタのビットパターン */
133
134/* IPRx (x = A-K) */
135#define IPR6 BIT6
136#define IPR5 BIT5
137#define IPR4 BIT4
138#define IPR2 BIT2
139#define IPR1 BIT1
140#define IPR0 BIT0
141
142/* icu_set_ilv用 */
143#define IPR_UPR TRUE
144#define IPR_LOW FALSE
145#define IPR_UPR_MASK (IPR6|IPR5|IPR4) /* IPR上位ビットマスク */
146#define IPR_LOW_MASK (IPR2|IPR1|IPR0) /* IPR下位ビットマスク */
147
148/* IER */
149#define IRQ7E BIT7
150#define IRQ6E BIT6
151#define IRQ5E BIT5
152#define IRQ4E BIT4
153#define IRQ3E BIT3
154#define IRQ2E BIT2
155#define IRQ1E BIT1
156#define IRQ0E BIT0
157
158/* ISCRH */
159#define IRQ7SCB BIT7
160#define IRQ7SCA BIT6
161#define IRQ6SCB BIT5
162#define IRQ6SCA BIT4
163#define IRQ5SCB BIT3
164#define IRQ5SCA BIT2
165#define IRQ4SCB BIT1
166#define IRQ4SCA BIT0
167
168/* ISCRL */
169#define IRQ3SCB BIT7
170#define IRQ3SCA BIT6
171#define IRQ2SCB BIT5
172#define IRQ2SCA BIT4
173#define IRQ1SCB BIT3
174#define IRQ1SCA BIT2
175#define IRQ0SCB BIT1
176#define IRQ0SCA BIT0
177
178/* ISR */
179#define IRQ7F BIT7
180#define IRQ6F BIT6
181#define IRQ5F BIT5
182#define IRQ4F BIT4
183#define IRQ3F BIT3
184#define IRQ2F BIT2
185#define IRQ1F BIT1
186#define IRQ0F BIT0
187
188/* 割込み例外処理ベクタテーブルのベクタ番号 */
189 /* 要求発生å…
190ƒ */
191#define IRQ_POWRESET 0 /* パワーオンリセット */
192#define IRQ_MANRESET 1 /* マニュアルリセット */
193/* 2-4 は、例外処理ベクタテーブルに対応するので、省略 */
194#define IRQ_TRACE 5 /* トレース */
195/* 6 は、例外処理ベクタテーブルに対応するので、省略 */
196#define IRQ_NMI 7 /* 外部端子 */
197#define IRQ_TRAP0 8 /* トラップ命令 */
198#define IRQ_TRAP1 9 /* トラップ命令 */
199#define IRQ_TRAP2 10 /* トラップ命令 */
200#define IRQ_TRAP3 11 /* トラップ命令 */
201/* 12-15 は、例外処理ベクタテーブルに対応するので、省略 */
202#define IRQ_IRQ0 16 /* 外部端子 */
203#define IRQ_IRQ1 17 /* 外部端子 */
204#define IRQ_IRQ2 18 /* 外部端子 */
205#define IRQ_IRQ3 19 /* 外部端子 */
206#define IRQ_IRQ4 20 /* 外部端子 */
207#define IRQ_IRQ5 21 /* 外部端子 */
208#define IRQ_IRQ6 22 /* 外部端子 */
209#define IRQ_IRQ7 23 /* 外部端子 */
210#define IRQ_SWDTEND 24 /* DTC */
211#define IRQ_WOVI 25 /* ウォッチドッグタイマ */
212#define IRQ_CMI 26 /* リフレッシュコントローラ */
213/* 27 番は、リザーブ */
214#define IRQ_ADI 28 /* A/D */
215/* 29, 30, 31 番は、リザーブ */
216#define IRQ_TGI0A 32 /* TPUチャネル0 */
217#define IRQ_TGI0B 33 /* TPUチャネル0 */
218#define IRQ_TGI0C 34 /* TPUチャネル0 */
219#define IRQ_TGI0D 35 /* TPUチャネル0 */
220#define IRQ_TCI0V 36 /* TPUチャネル0 */
221/* 37, 38, 39 番は、リザーブ */
222#define IRQ_TGI1A 40 /* TPUチャネル1 */
223#define IRQ_TGI1B 41 /* TPUチャネル1 */
224#define IRQ_TCI1V 42 /* TPUチャネル1 */
225#define IRQ_TCI1U 43 /* TPUチャネル1 */
226#define IRQ_TGI2A 44 /* TPUチャネル2 */
227#define IRQ_TGI2B 45 /* TPUチャネル2 */
228#define IRQ_TCI2V 46 /* TPUチャネル2 */
229#define IRQ_TCI2U 47 /* TPUチャネル2 */
230#define IRQ_TGI3A 48 /* TPUチャネル3 */
231#define IRQ_TGI3B 49 /* TPUチャネル3 */
232#define IRQ_TGI3C 50 /* TPUチャネル3 */
233#define IRQ_TGI3D 51 /* TPUチャネル3 */
234#define IRQ_TCI3V 52 /* TPUチャネル3 */
235/* 53, 54, 55 番は、リザーブ */
236#define IRQ_TGI4A 56 /* TPUチャネル4 */
237#define IRQ_TGI4B 57 /* TPUチャネル4 */
238#define IRQ_TCI4V 58 /* TPUチャネル4 */
239#define IRQ_TCI4U 59 /* TPUチャネル4 */
240#define IRQ_TGI5A 60 /* TPUチャネル5 */
241#define IRQ_TGI5B 61 /* TPUチャネル5 */
242#define IRQ_TCI5V 62 /* TPUチャネル5 */
243#define IRQ_TCI5U 63 /* TPUチャネル5 */
244/* 64, 65, 66, 67, 68, 69, 70, 71 番は、リザーブ */
245#define IRQ_DEND0A 72 /* DMAC */
246#define IRQ_DEND0B 73 /* DMAC */
247#define IRQ_DEND1A 74 /* DMAC */
248#define IRQ_DEND1B 75 /* DMAC */
249/* 76, 77, 78, 79 番は、リザーブ */
250#define IRQ_ERI0 80 /* SCIチャネル0 */
251#define IRQ_RXI0 81 /* SCIチャネル0 */
252#define IRQ_TXI0 82 /* SCIチャネル0 */
253#define IRQ_TEI0 83 /* SCIチャネル0 */
254#define IRQ_ERI1 84 /* SCIチャネル1 */
255#define IRQ_RXI1 85 /* SCIチャネル1 */
256#define IRQ_TXI1 86 /* SCIチャネル1 */
257#define IRQ_TEI1 87 /* SCIチャネル1 */
258/* 88, 89, 90, 91 番は、リザーブ */
259
260/*
261 * バスコントローラ
262 */
263/* レジスタのアドレス */
264#define ABWCR 0xfed0 /* バス幅
265コントロールレジスタ */
266#define ASTCR 0xfed1 /* アクセスステートコントロールレジスタ */
267#define WCRH 0xfed2 /* ウェイトコントロールレジスタH */
268#define WCRL 0xfed3 /* ウェイトコントロールレジスタL */
269#define BCRH 0xfed4 /* バスコントロールレジスタH */
270#define BCRL 0xfed5 /* バスコントロールレジスタL */
271#define MCR 0xfed6 /* メモリコントロールレジスタ */
272#define DRAMCR 0xfed7 /* DRAMコントロールレジスタ */
273#define RTCNT 0xfed8 /* リフレッシュタイマカウンタ */
274#define RTCOR 0xfed9 /* リフレッシュタイマコンスタントレジスタ */
275
276/* 各レジスタのビットパターン */
277
278/* ASTCR */
279#define AST7 BIT7
280#define AST6 BIT6
281#define AST5 BIT5
282#define AST4 BIT4
283#define AST3 BIT3
284#define AST2 BIT2
285#define AST1 BIT1
286#define AST0 BIT0
287
288/* WCRH */
289#define W71 BIT7
290#define W70 BIT6
291#define W61 BIT5
292#define W60 BIT4
293#define W51 BIT3
294#define W50 BIT2
295#define W41 BIT1
296#define W40 BIT0
297
298/* WCRL */
299#define W31 BIT7
300#define W30 BIT6
301#define W21 BIT5
302#define W20 BIT4
303#define W11 BIT3
304#define W10 BIT2
305#define W01 BIT1
306#define W00 BIT0
307
308/* BCRH */
309#define ICIS1 BIT7
310#define ICIS0 BIT6
311#define BRSTRM BIT5
312#define BRSTS1 BIT4
313#define BRSTS0 BIT3
314#define RMTS2 BIT2
315#define RMTS1 BIT1
316#define RMTS0 BIT0
317
318/*
319 * 割込み時のスタックにおけるEXRレジスタのオフセット
320 */
321#define EXR_offset 28
322
323/*
324 * 未定義割込み発生時のエラー出力時のスタック構造の定義
325 */
326#ifndef _MACRO_ONLY
327
328typedef struct exc_stack {
329 UW er6;
330 UW er5;
331 UW er4;
332 UW er3;
333 UW er2;
334 UW er1;
335 UW er0;
336 UB exr;
337 UB tmp;
338 UH ccr; /* 1 byte : 1 byte = CCR : PC(上位1バイト) */
339 UH pc; /* 1 byte : 1 byte = PC(下位2バイト) */
340} EXCSTACK;
341
342#endif /* _MACRO_ONLY */
343
344#endif /* _H8S_H_ */
Note: See TracBrowser for help on using the repository browser.