OSDN Git Service

497d8ed0f9a7ef700885943738be0040fb3bafef
[trx-305dsp/dsp.git] / hirado / kernel / config / blackfin / ezkit_bf548 / sys_config.h
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  *
9  *  TOPPERS/JSP for Blackfin
10  *
11  *  Copyright (C) 2004,2006,2009 by Takemasa Nakamura
12  *  Copyright (C) 2004 by Ujinosuke
13  *  Copyright (C) 2010,2011 by Kaneko System Co., Ltd.
14  *
15  *  上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation
16  *  によって公表されている GNU General Public License の Version 2 に記
17  *  述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア
18  *  を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下,
19  *  利用と呼ぶ)することを無償で許諾する.
20  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
21  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
22  *      スコード中に含まれていること.
23  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
24  *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
25  *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
26  *      の無保証規定を掲載すること.
27  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
28  *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
29  *      と.
30  *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
31  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
32  *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
33  *        報告すること.
34  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
35  *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
36  *
37  *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
38  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
39  *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
40  *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
41  *
42  *
43  */
44
45
46 #ifndef _SYS_CONFIG_H_
47 #define _SYS_CONFIG_H_
48
49
50 /*
51  *  カーネルの内部識別名のリネーム
52  */
53 #include <sys_rename.h>
54
55 #include <chip_config.h>
56
57 /*
58  *  ターゲットシステム依存モジュール(EZKIT-BF548用)
59  *
60  *  このインクルードファイルは,t_config.h のみからインクルードされる.
61  *  他のファイルから直接インクルードしてはならない.
62 */
63
64 /*
65  * ADSP-BF548に依存せず、ボードへの実装によって決まるパラメータを
66  * ここで定義する。
67  */
68
69
70 /*
71  * どのようなクロック入力にも対応できるよう、以下でCSEL, SSEL, MSELの値
72  * とクロック入力周波数(Hz)を指定する。PLLのプログラムはsys_config.cの
73  * sys_initialize()関数で行われる。
74  *
75  * CSELVALは1,2,4,8の中から選ぶ。CLKINの単位はHz
76  */
77
78 #define CSELVAL 1
79 #define SSELVAL 4
80 #define MSELVAL 21
81 #define CLKIN 25000000
82
83 /*
84  * TIC用タイマーの選択
85  * USE_TIC_COREをdefineすると、COREタイマーが使用される
86  * コメントアウトすると、GP_TIMER_2を使用する
87  *
88  * COREタイマーはwakeup信号を生成しないため、ディスパッチャ
89  * はidle命令を使ってCOREタイマーイベントを待つことができない。
90  * そのため、USE_TIC_COREを使うとディスパッチャはidle命令を
91  * 使わずに割り込み発生をポーリングで待つ。これは消費電力の
92  * 点で不利である。
93  *
94  */
95 //#define USE_TIC_CORE
96
97 /*
98  * ハードウェア・エラー割り込みの許可
99  * QUICK_HW_ERRORをdefineすると、ハードウェア・エラー・イベント
100  * が即座に受理される。defineしない場合には、割り込み待ち状態で
101  * ハードウェア・エラー・割り込みが発生した場合、次の割り込みまで
102  * 待たされることになる。
103  *
104  */
105 //#define QUICK_HW_ERROR
106
107
108 /*
109  * 実行時初期化関数の使用
110  *
111  * マクロ USE_RUNTIME_INIT を定義すると、start.asmのなかで _mi_initialize
112  * を呼び出す。この関数はノーブートモードで起動するときにのみ必要になるので
113  * 通常は USE_RUNTIME_INITを使う必要はない。
114  * 詳細はADIのEE239に詳しい。http://tinyurl.com/2hpbk (tinyURL)
115  *
116 */
117 //#define USE_RUNTIME_INIT
118
119 /*
120  * カーネル管理外割り込みの宣言
121  *
122  * マクロUNMANAGED_INTはカーネル管理外割り込みを宣言する。この
123  * マクロは16ビットのビットマップになっており、以下にあるパターン
124  * のうちひとつを使う。なお、どのようなパターンを選んでもNMIは管理外
125  * 割込みとして扱われる。
126  * UNMANAGED_INTを宣言しない場合、NMIだけが管理外割込みとして扱われる。
127  *
128 */
129 //#define UNMANAGED_INT 0x0020          // IVHWがカーネル管理外.
130 //#define UNMANAGED_INT 0x0060          // IVTMRとIVHWがカーネル管理外.
131 //#define UNMANAGED_INT 0x00E0          // IVG7, IVTMRとIVHWがカーネル管理外.
132 //#define UNMANAGED_INT 0x01E0          // IVG8 ... IVG7, IVTMRとIVHWがカーネル管理外.
133 //#define UNMANAGED_INT 0x03E0          // IVG9 ... IVG7, IVTMRとIVHWがカーネル管理外.
134 //#define UNMANAGED_INT 0x07E0          // IVG10 ... IVG7, IVTMRとIVHWがカーネル管理外.
135 //#define UNMANAGED_INT 0x0FE0          // IVG11 ... IVG7, IVTMRとIVHWがカーネル管理外.
136 //#define UNMANAGED_INT 0x1FE0          // IVG12 ... IVG7, IVTMRとIVHWがカーネル管理外.
137 //#define UNMANAGED_INT 0x3FE0          // IVG13 ... IVG7, IVTMRとIVHWがカーネル管理外.
138
139 /*
140  * C++関連資源を用意する
141  *
142  * マクロINIT_C_PLUS_PLUSを定義すると、C++言語用のテーブルを
143  * 初期化コードを実行する。また、C++言語用のテーブルを宣言する
144  *
145 */
146 //#define INIT_C_PLUS_PLUS
147
148 /*
149  *  起動メッセージのターゲットシステム名
150  */
151 #define TARGET_NAME "EZ-KIT Lite BF548"
152
153
154 /*
155  *  シリアルポート数の定義
156  *  TNUM_SIOP_XXXは、UARTの種別ごとに宣言する。
157  *  TNUM_SIOP_UARTはBF548内蔵UARTのうち、PDICが使用するもの。
158  *  BF548はUARTを4つもっているが、UART2,3は割り込みをサポートしていないので、
159  *  ふたつに限定する。よって、2,1か0を宣言する。
160  *  TNUM_PORTは、TNUM_SIOP_XXXのうち、GDICが使用するものの総和。
161  *  uart.cで使う。
162  */
163 #define TNUM_PORT   2       /* GDICがサポートするシリアルポートの数 */
164 #define TNUM_SIOP_UART  2   /* PIDCがサポートするシリアルポートの数 */
165
166 /*
167  *  シリアルポート番号に関する定義
168  *  ログタスクがシリアルポートを使わない場合は無視していい。
169  */
170 #define LOGTASK_PORTID  2   /* システムログに用いるシリアルポート番号 */
171
172 /*  UART0のボーレート. */
173 #define UART0_BAUD_RATE 57600       /* 57600 bps*/
174 #define UART1_BAUD_RATE 57600       /* 57600 bps*/
175
176 /*
177  * PLLの初期化の強制
178  * PLLは、PLL_CTLレジスタがデフォルト値で、かつ、SDRAMコントローラが
179  * ディセーブルのときに限り初期化を行うようになっている。これは、ブート
180  * ローダーなどの初期化ソフトがSDRAMを初期化したときにそれを保護するため
181  * である。一方でVisualDSP++のデバッガはSDRAMを自分で初期化するため、
182  * この機能とうまく折り合いがつかない場合がある。
183  * 上京に関わらず常に初期化したい時には FORCE_PLL_INITIALIZE マクロを
184  * 宣言する。
185  */
186 #define FORCE_PLL_INITIALIZE
187
188 #endif /* _SYS_CONFIG_H_ */