source: anotherchoice/tags/jsp-1.4.4-full-UTF8/config/armv4/_common_lpc2388/chip_config.h@ 26

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

initial

File size: 8.1 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 * 2003 by Advanced Data Controls, Corp
9 * Copyright (C) 2009 by Suikan
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
55/*
56 * ターゲットチップ依存モジュール(LPC2388用)
57 *
58 * このインクルードファイルは,sys_config.h のみからインクルードされる.
59 * 他のファイルから直接インクルードしてはならない.
60 */
61
62
63#ifndef _CHIP_CONFIG_H_
64#define _CHIP_CONFIG_H_
65
66
67/*
68 * 割込みハンドラの最大数
69 */
70#define MAX_INT_NUM 31
71
72/*
73 * vxget_tim をサポートするかどうかの定義
74 */
75#define SUPPORT_VXGET_TIM
76
77
78
79/*
80 * 割込み待
81ち状æ…
82‹ã§ã®å®Ÿè¡Œãƒ«ãƒ¼ãƒãƒ³
83 */
84#ifdef ARM920T_CORE
85#define WAIT_INTERRUPT mcr p15, 0, r3, c7, c0, 4
86#else
87#define WAIT_INTERRUPT nop
88#endif
89
90/*
91 * プロセッサのエンディアン
92 */
93#define SIL_ENDIAN SIL_ENDIAN_LITTLE /* リトルエンディアン */
94
95
96/*
97 * ----------------------- 割り込みベクトル宣言 --------------------
98 * INTNO_UART0 ではなく INTO_U0 を使うのは、UARTをTOPPERS/JSP内
99部のデバイス名として
100 * 使っており、UARTの番号とLPC2388の非同期通信デバイスの番号が一致しないためである。
101 *
102 */
103#define INTNO_WDT 0
104/*reserverved interrupt 1*/
105#define INTNO_ARM0 2
106#define INTNO_ARM1 3
107#define INTNO_TIMER0 4
108#define INTNO_TIMER1 5
109#define INTNO_U0 6
110#define INTNO_U1 7
111#define INTNO_PWM1 8
112#define INTNO_I2C0 9
113#define INTNO_SSP0 10
114#define INTNO_SSP1 11
115#define INTNO_PLL 12
116#define INTNO_RTC 13
117#define INTNO_EINT0 14
118#define INTNO_EINT1 15
119#define INTNO_EINT2 16
120#define INTNO_EINT3 17
121#define INTNO_ADC0 18
122#define INTNO_I2C1 19
123#define INTNO_BOD 20
124#define INTNO_ETHERNET 21
125#define INTNO_USB 22
126#define INTNO_CAN 23
127#define INTNO_SD 24
128#define INTNO_GPDMA 25
129#define INTNO_TIMER2 26
130#define INTNO_TIMER3 27
131#define INTNO_U2 28
132#define INTNO_U3 29
133#define INTNO_I2C2 30
134#define INTNO_I2S 31
135
136#define INHNO_WDT 0
137/*reserverved interrupt 1*/
138#define INHNO_ARM0 2
139#define INHNO_ARM1 3
140#define INHNO_TIMER0 4
141#define INHNO_TIMER1 5
142#define INHNO_U0 6
143#define INHNO_U1 7
144#define INHNO_PWM1 8
145#define INHNO_I2C0 9
146#define INHNO_SSP0 10
147#define INHNO_SSP1 11
148#define INHNO_PLL 12
149#define INHNO_RTC 13
150#define INHNO_EINT0 14
151#define INHNO_EINT1 15
152#define INHNO_EINT2 16
153#define INHNO_EINT3 17
154#define INHNO_ADC0 18
155#define INHNO_I2C1 19
156#define INHNO_BOD 20
157#define INHNO_ETHERNET 21
158#define INHNO_USB 22
159#define INHNO_CAN 23
160#define INHNO_SD 24
161#define INHNO_GPDMA 25
162#define INHNO_TIMER2 26
163#define INHNO_TIMER3 27
164#define INHNO_U2 28
165#define INHNO_U3 29
166#define INHNO_I2C2 30
167#define INHNO_I2S 31
168
169/*
170 * SIO1,2,3にはU0,U2,U3を割り当てる
171 */
172#define INHNO_SIO INHNO_U0
173#define INHNO_SIO2 INHNO_U2
174#define INHNO_SIO3 INHNO_U3
175
176/*
177 * ----------------------- UART 設定 ---------------------------
178 */
179
180/*
181 * UARTのうち、幾つのポートをPDICとして使用するか宣言する。
182 * LPC2388版では最大3
183 */
184#define TNUM_SIOP_UART TNUM_SIOP
185
186/*
187 * UARTのレジスタが何バイト境界にé…
188ç½®ã•ã‚Œã¦ã„るかを指定する。指定できる値は1,2,4のいずれか。
189 */
190#define UART_BOUNDARY 4
191
192/*
193 * UART レジスタへのアクセスにsil_xxb_iop()使う場合にはこのマクロを宣言する。
194 * 値は不要。宣言しない場合、sil_xxb_mem()によってアクセスする。LPC2388実装
195
196 * ではmemアクセスを使用する。
197 */
198/* #define UART_IOP_ACCESS */
199
200/*
201 * UARTのベース・アドレスを指定する。ベースアドレスとはTHRのアドレスのこと。
202 * U0,2,3を使うのは、LPC2388においてU1だけ別扱いのため
203 */
204#define UART0_ADDRESS 0xE000C000
205#define UART1_ADDRESS 0xE0078000 /*U2*/
206#define UART2_ADDRESS 0xE007C000 /*U3*/
207
208/*
209 * UART内
210部の分周回路の設定値を指定する。16ビットの値。lpc2388uart.c内
211部で
212 * 上位と下位に分割してDLM/DLLレジスタに設定される。
213 *
214 * UARTのデバイザの出力は所望するボーレートの16倍でなければならない。
215 * U0,2,3を使うのは、LPC2388においてU1だけ別扱いのため
216 */
217#define UART0_DIVISOR (LP2388_SYSTEM_UART0_CLOCK/16/UART0_BAUD_RATE)
218#define UART1_DIVISOR (LP2388_SYSTEM_UART1_CLOCK/16/UART2_BAUD_RATE) /*U2*/
219#define UART2_DIVISOR (LP2388_SYSTEM_UART1_CLOCK/16/UART3_BAUD_RATE) /*U3*/
220
221
222/*
223 * ----------------------- UART 設定おわり ---------------------------
224 */
225
226
227#ifndef _MACRO_ONLY
228
229/*
230 * ターゲットシステム依存の初期化
231 */
232extern void sys_initialize(void);
233
234/*
235 * ターゲットシステムの終了
236 *
237 * システムを終了する時に使う.ROMモニタ呼出しで実現することを想定し
238 * ている.
239 */
240extern void sys_exit(void);
241
242/*
243 * ターゲットシステムの文字出力
244 *
245 * システムの低レベルの文字出力ルーチン.ROMモニタ呼出しで実現するこ
246 * とを想定している.
247 */
248extern void sys_putc(char c);
249
250
251
252/*
253 * IRQハンドラ(sys_support.S)
254 */
255extern void IRQ_Handler(void);
256
257/*
258 * 割込みハンドラの出å…
259¥å£å‡¦ç†ã®ç”Ÿæˆãƒžã‚¯ãƒ­
260 *
261 */
262#define INTHDR_ENTRY(inthdr) extern void inthdr(void)
263
264#define INT_ENTRY(inthdr) inthdr
265
266/*
267 * 割込みハンドラの設定
268 *
269 * 割込み番号 inhno の割込みハンドラの起動番地を inthdr に設定する.
270 */
271extern void define_inh(INHNO inhno, FP inthdr);
272
273extern void undef_interrupt();
274
275extern void init_IRQ();
276extern void init_vector();
277extern void init_uart0();
278
279/*
280 * 割り込みのイネーブル、ディセーブル
281 */
282
283extern ER dis_int(INTNO intno);
284extern ER ena_int(INTNO intno);
285extern ER chg_ims(unsigned int enableMask);
286extern ER get_ims(unsigned int *p_enableMask);
287
288#endif /* _MACRO_ONLY */
289#endif /* _SYS_CONFIG_H_ */
Note: See TracBrowser for help on using the repository browser.