OSDN Git Service

51d1d5bcda5901d6feeb6322b45ea2816840c7b1
[trx-305dsp/dsp.git] / hirado / kernel / tools / blackfin-vdsp / sample1_ezkit_bf506 / sample1.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  *  Copyright (C) 2005 by Embedded and Real-Time Systems Laboratory
9  *              Graduate School of Information Science, Nagoya Univ., JAPAN
10  *
11  *  上記著作権者は,以下の (1)縲・4) の条件か,Free Software Foundation
12  *  によって公表されている GNU General Public License の Version 2 に記
13  *  述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア
14  *  を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下,
15  *  利用と呼ぶ)することを無償で許諾する.
16  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
17  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
18  *      スコード中に含まれていること.
19  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
20  *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
21  *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
22  *      の無保証規定を掲載すること.
23  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
24  *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
25  *      と.
26  *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
27  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
28  *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
29  *        報告すること.
30  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
31  *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
32  *
33  *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
34  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
35  *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
36  *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
37  *
38  *  @(#) $Id: sample1.h,v 1.1 2011/11/24 04:59:47 maduki Exp $
39  */
40
41 /*
42  *  サンプルプログラム(1)のヘッダファイル
43  */
44
45 #include <t_services.h>
46
47 /*
48  *  各タスクの優先度の定義
49  */
50
51 #define MAIN_PRIORITY   5       /* メインタスクの優先度 */
52                     /* HIGH_PRIORITY より高くすること */
53
54 #define HIGH_PRIORITY   9       /* 並列に実行されるタスクの優先度 */
55 #define MID_PRIORITY    10
56 #define LOW_PRIORITY    11
57
58 /*
59  *  ターゲット依存の定義(CPU例外ハンドラの起動方法など)
60  */
61
62 #ifdef M68K
63
64 #define CPUEXC1     5       /* ゼロ除算例外 */
65 #define RAISE_CPU_EXCEPTION syslog(LOG_NOTICE, "zerodiv = %d", 10 / 0)
66
67 #elif defined(SH3)
68
69 #define CPUEXC1     224     /* ロードエラー例外 */
70 #define RAISE_CPU_EXCEPTION (*((volatile int *) 0xFFFFFEC1))
71
72 #elif defined(SH1)
73
74 #define CPUEXC1     9       /* CPUアドレスエラー例外 */
75 #define RAISE_CPU_EXCEPTION (*((volatile int *) 0xFFFFFEC1))
76 #ifdef TOKIWA_SH1
77 #define STACK_SIZE  512     /* タスクのスタックサイズ */
78 #endif /* TOKIWA_SH1 */
79
80 #elif defined(ARMV4)
81
82 #define CPUEXC1     4       /* ロードエラー例外 */
83 #define RAISE_CPU_EXCEPTION (*((volatile int *) 0xFFFFFEC1))
84
85 #elif defined(V850)
86
87 #elif defined(H8)
88
89 #undef CPUEXC1              /* CPU例外ハンドラをサポートしない */
90
91 #elif defined(H8S)
92
93 #undef CPUEXC1              /* CPU例外ハンドラをサポートしない */
94 #define LOOP_REF    4000L       /* 速度計測用のループ回数 */
95
96 #elif defined(MICROBLAZE)
97
98 #undef CPUEXC1              /* CPU例外ハンドラをサポートしない */
99 #define STACK_SIZE  2048        /* タスクのスタックサイズ */
100
101 #elif defined(IA32)
102
103 #define CPUEXC1     0       /* ゼロ除算例外 */
104 #define RAISE_CPU_EXCEPTION   syslog(LOG_NOTICE, "zerodiv = %d", 10 / 0)
105 #define OMIT_VGET_TIM
106
107 #elif defined(TMS320C54X)
108
109 #undef CPUEXC1              /* CPU例外ハンドラをサポートしない */
110 #define STACK_SIZE  320     /* タスクのスタックサイズ */
111 #define LOOP_REF    500000L     /* 速度計測用のループ回数 */
112
113 #elif defined(XSTORMY16)
114
115 #define CPUEXC1     0       /* 無効命令例外 */
116 #define RAISE_CPU_EXCEPTION __asm__( ".hword 0x0006" )
117 #define OMIT_VGET_TIM           /* vxget_tim()は非サポート */
118 #define LOOP_REF    4000L       /* 速度計測用のループ回数 */
119 #define STACK_SIZE  256     /* タスクのスタックサイズ */
120 #define TASK_PORTID 2       /* SIOはポート2を用いる */
121
122 #elif defined(MIPS3) || defined(MIPS64)
123
124 #define CPUEXC1     Bp      /* ブレークポイント例外(ゼロ除算時に発生) */
125 #define RAISE_CPU_EXCEPTION   syslog(LOG_NOTICE, "zerodiv = %d", 10 / 0)
126
127 #elif defined(M16C) && defined(OAKS16)
128
129 #define CPUEXC1     32      /* CPU例外ハンドラ番号 */
130 #define RAISE_CPU_EXCEPTION asm("   int #32") /* ソフトウェア割込み発生 */
131 #define STACK_SIZE  512     /* タスクのスタックサイズ */
132 #define TASK_PORTID 2       /* 文字入力するシリアルポートID */
133
134 #elif defined(M16C) && defined(OAKS16_MINI)
135
136 #define CPUEXC1     32      /* CPU例外ハンドラ番号 */
137 #define RAISE_CPU_EXCEPTION asm("   int #32") /* ソフトウェア割込み発生 */
138 #define STACK_SIZE  384     /* タスクのスタックサイズ */
139 #define TASK_PORTID 2       /* 文字入力するシリアルポートID */
140
141 #elif defined(M16C) && defined(M3029)
142
143 #define CPUEXC1     32      /* CPU例外ハンドラ番号 */
144 #define RAISE_CPU_EXCEPTION asm("   int #32") /* ソフトウェア割込み発生 */
145 #define STACK_SIZE  512     /* タスクのスタックサイズ */
146 #define TASK_PORTID 1       /* 文字入力するシリアルポートID */
147
148 #elif defined(BLACKFIN)
149
150 #define CPUEXC1     0      /* CPU例外ハンドラ番号 */
151 #define RAISE_CPU_EXCEPTION asm("excpt 0;") /* ソフトウェア割込み発生 */
152 #define STACK_SIZE  1024     /* タスクのスタックサイズ */
153 #define TASK_PORTID 1       /* 文字入力するシリアルポートID */
154
155 #elif defined(LINUX)
156
157 #undef CPUEXC1              /* CPU例外ハンドラをサポートしない */
158 #define OMIT_VGET_TIM
159 #define LOOP_REF    4000000     /* 速度計測用のループ回数 */
160
161 #elif defined(NIOS2)
162
163 #define CPUEXC1     0         /* 未実装命令例外 */
164 #define RAISE_CPU_EXCEPTION   Asm("div zero, zero, zero");
165
166 #elif defined(M32C)
167
168 #define CPUEXC1 32 /* CPU例外ハンドラ番号 */
169 #define RAISE_CPU_EXCEPTION asm(" int #32") /* ソフトウェア割込み発生 */
170 #define STACK_SIZE 512 /* タスクのスタックサイズ */
171 #define TASK_PORTID 1 /* 文字入力するシリアルポートID */
172
173 #elif defined(M32R)
174
175 #define CPUEXC1 EXC_TRAP00
176 #define RAISE_CPU_EXCEPTION Asm("trap 0")
177
178 #elif defined(TLCS_900) && defined(ZUP_F16_EX)
179
180 #define CPUEXC1     3      /* CPU例外ハンドラ番号 */
181 #define RAISE_CPU_EXCEPTION Asm("   swi 2") /* ソフトウェア割込み発生 */
182 #define STACK_SIZE  512     /* タスクのスタックサイズ */
183 #define TASK_PORTID 1       /* 文字入力するシリアルポートID */
184 #define OMIT_VGET_TIM
185
186 #endif
187
188 /*
189  *  ターゲットに依存する可能性のある定数の定義
190  */
191
192 #ifndef TASK_PORTID
193 #define TASK_PORTID 1       /* 文字入力するシリアルポートID */
194 #endif /* TASK_PORTID */
195
196 #ifndef STACK_SIZE
197 #define STACK_SIZE  8192        /* タスクのスタックサイズ */
198 #endif /* STACK_SIZE */
199
200 #ifndef LOOP_REF
201 #define LOOP_REF    1000000     /* 速度計測用のループ回数 */
202 #endif /* LOOP_REF */
203
204 /*
205  *  関数のプロトタイプ宣言
206  */
207 #ifndef _MACRO_ONLY
208
209 extern void task(VP_INT tskno);
210 extern void main_task(VP_INT exinf);
211 extern void tex_routine(TEXPTN texptn, VP_INT tskno);
212 extern void cyclic_handler(VP_INT exinf);
213 extern void cpuexc_handler(VP p_excinf);
214
215 #endif /* _MACRO_ONLY */