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
8 * Copyright (C) 2003-2004 Takagi Nobuhisa
10 * 上記著作権者は,以下の (1)〜(4) の条件か,Free Software Foundation
11 * によって公表されている GNU General Public License の Version 2 に記
12 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア
13 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下,
15 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
16 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー
18 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
19 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用
20 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記
22 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
23 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ
25 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
26 * 作権表示,この利用条件および下記の無保証規定を掲載すること.
27 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
29 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
30 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
32 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お
33 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
34 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
35 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
37 * @(#) $Id: cxx_sample2.h,v 1.2 2010/05/09 04:22:42 suikan Exp $
40 #include <t_services.h>
46 #define MAIN_PRIORITY 5 /* メインタスクの優先度 */
47 /* HIGH_PRIORITY より高くすること */
49 #define HIGH_PRIORITY 9 /* 並列に実行されるタスクの優先度 */
50 #define MID_PRIORITY 10
51 #define LOW_PRIORITY 11
54 * ターゲット依存の定義(CPU例外ハンドラの起動方法など)
59 #define CPUEXC1 5 /* ゼロ除算例外 */
60 #define RAISE_CPU_EXCEPTION syslog(LOG_NOTICE, "zerodiv = %d", 10 / 0)
64 #define CPUEXC1 224 /* ロードエラー例外 */
65 #define RAISE_CPU_EXCEPTION (*((volatile int *) 0xFFFFFEC1))
69 #define CPUEXC1 9 /* CPUアドレスエラー例外 */
70 #define RAISE_CPU_EXCEPTION (*((volatile int *) 0xFFFFFEC1))
72 #define STACK_SIZE 512 /* タスクのスタックサイズ */
73 #endif /* TOKIWA_SH1 */
77 #define CPUEXC1 4 /* ロードエラー例外 */
78 #define RAISE_CPU_EXCEPTION (*((volatile int *) 0xFFFFFEC1))
84 #undef CPUEXC1 /* CPU例外ハンドラをサポートしない */
85 #define TASK_PORTID 2 /* 文字入力するシリアルポートID */
89 #undef CPUEXC1 /* CPU例外ハンドラをサポートしない */
90 #define LOOP_REF 4000L /* 速度計測用のループ回数 */
92 #elif defined(MICROBLAZE)
94 #undef CPUEXC1 /* CPU例外ハンドラをサポートしない */
95 #define STACK_SIZE 2048 /* タスクのスタックサイズ */
99 #define CPUEXC1 0 /* ゼロ除算例外 */
100 #define RAISE_CPU_EXCEPTION syslog(LOG_NOTICE, "zerodiv = %d", 10 / 0)
101 #define OMIT_VGET_TIM
103 #elif defined(TMS320C54X)
105 #undef CPUEXC1 /* CPU例外ハンドラをサポートしない */
106 #define STACK_SIZE 320 /* タスクのスタックサイズ */
107 #define LOOP_REF 500000L /* 速度計測用のループ回数 */
109 #elif defined(XSTORMY16)
111 #define CPUEXC1 0 /* 無効命令例外 */
112 #define RAISE_CPU_EXCEPTION __asm__( ".hword 0x0006" )
113 #define OMIT_VGET_TIM /* vxget_tim()は非サポート */
114 #define LOOP_REF 4000L /* 速度計測用のループ回数 */
115 #define STACK_SIZE 256 /* タスクのスタックサイズ */
116 #define TASK_PORTID 2 /* SIOはポート2を用いる */
118 #elif defined(MIPS3) || defined(MIPS64)
120 #define CPUEXC1 Bp /* ブレークポイント例外(ゼロ除算時に発生) */
121 #define RAISE_CPU_EXCEPTION syslog(LOG_NOTICE, "zerodiv = %d", 10 / 0)
125 #undef CPUEXC1 /* CPU例外ハンドラをサポートしない */
126 #define OMIT_VGET_TIM
127 #define LOOP_REF 4000000 /* 速度計測用のループ回数 */
131 #define CPUEXC1 0 /* 未実装命令例外 */
132 #define RAISE_CPU_EXCEPTION Asm("div zero, zero, zero");
137 * ターゲットに依存する可能性のある定数の定義
141 #define TASK_PORTID 1 /* 文字入力するシリアルポートID */
142 #endif /* TASK_PORTID */
145 #define STACK_SIZE 1024 /* タスクのスタックサイズ */
146 #endif /* STACK_SIZE */
157 extern void main_task(VP_INT exinf);
158 extern void task(VP_INT exinf);
159 extern void _toppers_cxxrt_reset_specific(void) throw();
165 #endif /* _MACRO_ONLY */