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-BF531/2/3共用)
52 * このインクルードファイルは,t_config.h のみからインクルードされる.
53 * 他のファイルから直接インクルードしてはならない.
57 * ターゲットシステムのハードウェア資源の定義
59 * DEVICE_INTERRUPT_COUNTはSIC_IMASKのビット数
61 * ADSP-BF533のビット数は24なので、値は24である。
64 #define DEVICE_INTERRUPT_COUNT 24
71 #define PLLCLOCK (CLKIN*MSELVAL)
72 #define SYSCLOCK (PLLCLOCK / SSELVAL)
73 #define CORECLOCK (PLLCLOCK / CSELVAL)
81 #define INHNO_TIMER INHNO_CORE_TIMER
83 #define INHNO_TIMER INHNO_GP_TIMER2
89 * sil_dly_nseの呼び出しオーバーヘッドとループボディーサイクルを
90 * nSで表す。関数はcpu_support.asmに定義してある。
91 * SIL_DLY_TIM1は24サイクル。32nS( 750MHz ), 40nS( 600MHz )
92 * SIL_DLY_TIM2は12サイクル。16nS( 750MHz ), 20nS( 600MHz )
96 #define SIL_DLY_TIM1 (24*1000000000/CORECLOCK)
97 #define SIL_DLY_TIM2 (12*1000000000/CORECLOCK)
99 /*************************************************************************
103 /* シリアルの割込みハンドラのベクタ番号 */
104 #define INHNO_SIO0_TX INHNO_UART_TX
105 #define INHNO_SIO0_RX INHNO_UART_RX
108 * UARTレジスタの配置境界。ADSP-BF533の内蔵UARTは4バイト周期でレジスタが
109 * 並んでいるので、ここには4を指定する。
111 #define UART_BOUNDARY 4
113 /* UARTレジスタにsil_xxb_iop()を使ってアクセスするときにはUART_IOP_ACCESSを 宣言する。*/
114 #define UART_IOP_ACCESS
117 #define UART0_ADDRESS 0xFFC00400 // 内蔵UART THRのアドレス。
119 /* UARTのボーレートジェネレータに設定すべき値. */
120 #define UART0_DIVISOR SYSCLOCK/16/UART0_BAUD_RATE
122 /* 内蔵UARTを使う場合は、UARTx_BLACKFIN_UCENを宣言してUCENを初期化しなければならない。*/
123 #define UART0_BLACKFIN_UCEN
128 *************************************************************************/
135 * この定義はコンフィグレーションファイルでDEF_INHの引数として使う
136 * SIC_ISRにおけるビット番号である。
140 #define INHNO_DMA_ERROR 1
141 #define INHNO_PPI_ERROR 2
142 #define INHNO_SPORT0_ERROR 3
143 #define INHNO_SPORT2_ERROR 4
144 #define INHNO_SPI_ERROR 5
145 #define INHNO_UART_ERROR 6
148 #define INHNO_SPORT0_RX 9
149 #define INHNO_SPORT0_TX 10
150 #define INHNO_SPORT1_RX 11
151 #define INHNO_SPORT1_TX 12
153 #define INHNO_UART_RX 14
154 #define INHNO_UART_TX 15
155 #define INHNO_GP_TIMER0 16
156 #define INHNO_GP_TIMER1 17
157 #define INHNO_GP_TIMER2 18
160 #define INHNO_MEMORY_DMA0 21
161 #define INHNO_MEMORY_DMA1 22
165 #define INHNO_HW_ERROR 24
166 #define INHNO_CORE_TIMER 25
167 #define INHNO_RAISE 26
173 * この定義はena_int, dis_intの引数として使う。
177 #define INTNO_DMA_ERROR 1
178 #define INTNO_PPI_ERROR 2
179 #define INTNO_SPORT0_ERROR 3
180 #define INTNO_SPORT2_ERROR 4
181 #define INTNO_SPI_ERROR 5
182 #define INTNO_UART_ERROR 6
185 #define INTNO_SPORT0_RX 9
186 #define INTNO_SPORT0_TX 10
187 #define INTNO_SPORT1_RX 11
188 #define INTNO_SPORT1_TX 12
190 #define INTNO_UART_RX 14
191 #define INTNO_UART_TX 15
192 #define INTNO_GP_TIMER0 16
193 #define INTNO_GP_TIMER1 17
194 #define INTNO_GP_TIMER2 18
197 #define INTNO_MEMORY_DMA0 21
198 #define INTNO_MEMORY_DMA1 22
206 * SIC_IARxを解析して、イベント順位ごとに割り当てられている割り込み
207 * のビットマップを作る。SIC_IARxのフィールド値は優先順位-7なので
210 void make_priority_mask( void );
215 extern void sys_initialize(void);
220 * システムを終了する時に使う.ROMモニタ/GDB STUB呼出しで実現する.
222 extern void sys_exit(void);
227 * システムの低レベルの文字出力ルーチン.ROMモニタ/GDB STUB呼出しで実
230 extern void sys_putc(char c);
233 * SIC_IARxを解析して、イベント順位ごとに割り当てられている割り込み
234 * のビットマップを作る。SIC_IARxのフィールド値は優先順位-7なので
237 void make_priority_mask( void );
243 typedef unsigned int INTNO;
244 extern ER ena_int( INTNO intno );
245 extern ER dis_int( INTNO intno );
252 typedef unsigned int IMS;
253 extern ER chg_ims( IMS ims );
254 extern ER get_ims( IMS * p_ims );
259 void spurious_exc_handler(VP p_excinf);
260 void spurious_int_handler();
265 extern void device_dispatcher( unsigned int priority, unsigned int imask );
267 #endif /* _MACRO_ONLY */
268 #endif /* _CHIP_CONFIG_H_ */