3 * Toyohashi Open Platform for Embedded Real-Time Systems/
4 * Just Standard Profile Kernel
6 * Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
7 * Toyohashi Univ. of Technology, JAPAN
9 * TOPPERS/JSP for Blackfin
11 * Copyright (C) 2004,2006,2006 by Takemasa Nakamura
12 * Copyright (C) 2004 by Ujinosuke
14 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation
15 * によって公表されている GNU General Public License の Version 2 に記
16 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア
17 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下,
19 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
20 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー
22 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
23 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用
24 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記
26 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
27 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ
29 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
30 * 作権表示,この利用条件および下記の無保証規定を掲載すること.
31 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
33 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
34 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
36 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お
37 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
38 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
39 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
45 #ifndef _CHIP_CONFIG_H_
46 #define _CHIP_CONFIG_H_
50 * ターゲットシステム依存モジュール(ADSP-BF592共用)
52 * このインクルードファイルは,t_config.h のみからインクルードされる.
53 * 他のファイルから直接インクルードしてはならない.
57 * ターゲットシステムのハードウェア資源の定義
59 * DEVICE_INTERRUPT_COUNTはSIC_IMASKのビット数
61 * ADSP-BF592のビット数は32なので、値は32である。
64 #define DEVICE_INTERRUPT_COUNT 32
71 * 変更してはならない。パラメータはsys_config.hで与える。
73 #define PLLCLOCK (CLKIN*MSELVAL)
74 #define SYSCLOCK (PLLCLOCK / SSELVAL)
75 #define CORECLOCK (PLLCLOCK / CSELVAL)
83 #define INHNO_TIMER INHNO_CORE_TIMER
85 #define INHNO_TIMER INHNO_GP_TIMER2
91 * sil_dly_nseの呼び出しオーバーヘッドとループボディーサイクルを
92 * nSで表す。関数はcpu_support.asmに定義してある。
93 * SIL_DLY_TIM1は24サイクル。60nS( 400MHz )
94 * SIL_DLY_TIM2は12サイクル。30nS( 400MHz )
98 #define SIL_DLY_TIM1 (24*1000000000/CORECLOCK)
99 #define SIL_DLY_TIM2 (12*1000000000/CORECLOCK)
101 /*************************************************************************
105 /* シリアルの割込みハンドラのベクタ番号 */
106 #define INHNO_SIO0_TX INHNO_UART0_TX
107 #define INHNO_SIO0_RX INHNO_UART0_RX
110 * UARTレジスタの配置境界。ADSP-BF592の内蔵UARTは4バイト周期でレジスタが
111 * 並んでいるので、ここには4を指定する。
113 #define UART_BOUNDARY 4
115 /* UARTレジスタにsil_xxb_iop()を使ってアクセスするときにはUART_IOP_ACCESSを 宣言する。*/
116 #define UART_IOP_ACCESS
119 #define UART0_ADDRESS 0xFFC00400 // 内蔵UART THRのアドレス。
121 /* UARTのボーレートジェネレータに設定すべき値. */
122 #define UART0_DIVISOR SYSCLOCK/16/UART0_BAUD_RATE
124 /* 内蔵UARTを使う場合は、UARTx_BLACKFIN_UCENを宣言してUCENを初期化しなければならない。*/
125 #define UART0_BLACKFIN_UCEN
130 *************************************************************************/
137 * この定義はコンフィグレーションファイルでDEF_INHの引数として使う
138 * SIC_ISRにおけるビット番号である。
142 #define INHNO_DMA_ERROR 1
143 #define INHNO_PPI_ERROR 2
144 #define INHNO_SPORT0_ERROR 3
145 #define INHNO_SPORT1_ERROR 4
146 #define INHNO_SPI0_ERROR 5
147 #define INHNO_SPI1_ERROR 6
148 #define INHNO_UART0_ERROR 7
150 #define INHNO_SPORT0_RX 9
151 #define INHNO_SPORT0_TX 10
152 #define INHNO_SPORT1_RX 11
153 #define INHNO_SPORT1_TX 12
154 #define INHNO_SPI0 13
155 #define INHNO_SPI1 14
156 #define INHNO_UART0_RX 15
157 #define INHNO_UART0_TX 16
160 #define INHNO_GP_TIMER0 19
161 #define INHNO_GP_TIMER1 20
162 #define INHNO_GP_TIMER2 21
166 #define INHNO_MEMORY_DMA0 29
167 #define INHNO_MEMORY_DMA1 30
171 #define INHNO_HW_ERROR 32
172 #define INHNO_CORE_TIMER 33
173 #define INHNO_RAISE 34
179 * この定義はena_int, dis_intの引数として使う。
183 #define INTNO_DMA_ERROR 1
184 #define INTNO_PPI_ERROR 2
185 #define INTNO_SPORT0_ERROR 3
186 #define INTNO_SPORT1_ERROR 4
187 #define INTNO_SPI0_ERROR 5
188 #define INTNO_SPI1_ERROR 6
189 #define INTNO_UART0_ERROR 7
191 #define INTNO_SPORT0_RX 9
192 #define INTNO_SPORT0_TX 10
193 #define INTNO_SPORT1_RX 11
194 #define INTNO_SPORT1_TX 12
195 #define INTNO_SPI0 13
196 #define INTNO_SPI1 14
197 #define INTNO_UART0_RX 15
198 #define INTNO_UART0_TX 16
201 #define INTNO_GP_TIMER0 19
202 #define INTNO_GP_TIMER1 20
203 #define INTNO_GP_TIMER2 21
207 #define INTNO_MEMORY_DMA0 29
208 #define INTNO_MEMORY_DMA1 30
216 * SIC_IARxを解析して、イベント順位ごとに割り当てられている割り込み
217 * のビットマップを作る。SIC_IARxのフィールド値は優先順位-7なので
220 void make_priority_mask( void );
225 extern void sys_initialize(void);
230 * システムを終了する時に使う.ROMモニタ/GDB STUB呼出しで実現する.
232 extern void sys_exit(void);
237 * システムの低レベルの文字出力ルーチン.ROMモニタ/GDB STUB呼出しで実
240 extern void sys_putc(char c);
243 * SIC_IARxを解析して、イベント順位ごとに割り当てられている割り込み
244 * のビットマップを作る。SIC_IARxのフィールド値は優先順位-7なので
247 void make_priority_mask( void );
253 typedef unsigned int INTNO;
254 extern ER ena_int( INTNO intno );
255 extern ER dis_int( INTNO intno );
262 typedef unsigned int IMS;
263 extern ER chg_ims( IMS ims );
264 extern ER get_ims( IMS * p_ims );
269 void spurious_exc_handler(VP p_excinf);
270 void spurious_int_handler();
275 extern void device_dispatcher( unsigned int priority, unsigned int imask );
277 #endif /* _MACRO_ONLY */
278 #endif /* _CHIP_CONFIG_H_ */