source: anotherchoice/tags/jsp-1.4.4-full-UTF8/config/xstormy16/cpu_config.h@ 26

Last change on this file since 26 was 26, checked in by ykominami, 10 years ago

initial

File size: 5.8 KB
Line 
1/*
2 * TOPPERS/JSP Kernel
3 * Toyohashi Open Platform for Embedded Real-Time Systems/
4 * Just Standard Profile Kernel
5 *
6 * Copyright (C) 2003 by Embedded and Real-Time Systems Laboratory
7 * Toyohashi Univ. of Technology, JAPAN
8 * Copyright (C) 2004-2010 by Embedded and Real-Time Systems Laboratory
9 * Graduate School of Information Science, Nagoya Univ., JAPAN
10 *
11 * 上記著作権者
12は,以下の (1)〜(4) の条件を満たす場合に限り,本ソフトウェ
13 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改変・
14 * 再é…
15å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
16 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作権
17 * 表示,この利用条件および下記の無保証規定が,そのままの形でソース
18 * コード中に含まれていること.
19 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使用
20 * できる形で再é…
21å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é…
22å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€…
23マ
24 * ニュアルなど)に,上記の著作権表示,この利用条件および下記の無保
25 * 証規定を掲載すること.
26 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使用
27 * できない形で再é…
28å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこと.
29 * (a) 再é…
30å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€…
31マニュアルなど)に,上記の著作
32 * 権表示,この利用条件および下記の無保証規定を掲載すること.
33 * (b) 再é…
34å¸ƒã®å½¢æ…
35‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに報
36 * 告すること.
37 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損害
38 * からも,上記著作権者
39およびTOPPERSプロジェクトをå…
40è²¬ã™ã‚‹ã“と.また,
41 * 本ソフトウェアのユーザまたはエンドユーザからのいかなる理由に基づ
42 * く請求からも,上記著作権者
43およびTOPPERSプロジェクトをå…
44è²¬ã™ã‚‹ã“と.
45 *
46 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者
47およ
48 * びTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的に対す
49 * る適合性も含めて,いかなる保証も行わない.また,本ソフトウェアの利用
50 * により直接的または間接的に生じたいかなる損害に関しても,その責任を負
51 * わない.
52 */
53
54/*
55 * プロセッサ依存モジュール(Xstormy16用)
56 */
57
58#ifndef _CPU_CONFIG_H_
59#define _CPU_CONFIG_H_
60
61/*
62 * カーネルの内
63部識別名のリネーム
64 */
65#include <cpu_rename.h>
66
67/*
68 * プロセッサの特殊命令のインライン関数定義
69 */
70#include <cpu_insn.h>
71
72/*
73 * chg_ipm/get_ipm はサポートしない
74 */
75#undef SUPPORT_CHG_IPM
76
77/*
78 * calltex は使用しない
79 */
80#define OMIT_CALLTEX
81
82/*
83 * シリアルポート数の定義
84 */
85#define TNUM_PORT 2 /* サポートするシリアルポートの数 */
86
87/*
88 * シリアルポート番号に関する定義
89 */
90#define LOGTASK_PORTID 1 /* システムログに用いるシリアルポート番号 */
91
92/*
93 * ログタスクの必
94要スタックサイズ
95 */
96#define LOGTASK_STACK_SIZE 256
97
98/*
99 * ログバッファのサイズ
100 */
101#define TCNT_SYSLOG_BUFFER 8
102
103/*
104 * TCB 中のフィールドのビット幅
105の定義
106 */
107#define TBIT_TCB_TSTAT 8 /* tstat フィールドのビット幅
108 */
109#define TBIT_TCB_PRIORITY 4 /* priority フィールドのビット幅
110 */
111
112#ifndef _MACRO_ONLY
113
114/*
115 * タスクコンテキストブロックの定義
116 */
117typedef struct task_context_block {
118 unsigned short sp; /* スタックポインタ */
119 unsigned short mode; /* dispatcherの復帰å…
120ˆ */
121} CTXB;
122
123/*
124 * タスク/非タスク参ç…
125§ç”¨ã‚°ãƒ­ãƒ¼ãƒãƒ«å¤‰æ•°
126 */
127extern unsigned short _kernel_intnest ;
128
129/*
130 * システム状æ…
131‹å‚ç…
132§
133 */
134#define sense_context() ( _kernel_intnest > 0)
135#define sense_lock() (!( __PSW & 0x0080 ))
136#define t_sense_lock sense_lock
137#define i_sense_lock sense_lock
138#define t_lock_cpu() ({__asm__( "clr1 psw,#7" );})
139#define t_unlock_cpu() ({__asm__( "set1 psw,#7" );})
140#define i_lock_cpu t_lock_cpu
141#define i_unlock_cpu t_unlock_cpu
142
143/*
144 * CPU例外の発生した時のコンテキストの参ç…
145§
146 */
147#define exc_sense_context(p_excinf) ( _kernel_intnest > 1 )
148
149/*
150 * CPU例外の発生した時のCPUロック状æ…
151‹ã®å‚ç…
152§
153 */
154#define exc_sense_lock(p_excinf) (!(((unsigned short*)p_excinf)[-1] & 0x0080))
155
156/*
157 * 割込みハンドラ生成マクロ
158 */
159#define INTHDR_ENTRY(inthdr) extern void inthdr(void)
160#define INT_ENTRY(inthdr) inthdr
161
162/*
163 * CPU例外生成マクロ
164 */
165#define EXCHDR_ENTRY(exchdr) extern void exchdr(VP sp)
166#define EXC_ENTRY(exchdr) exchdr
167
168/*
169 * プロセッサ依存の初期化
170 */
171extern void cpu_initialize(void);
172
173/*
174 * プロセッサ依存の終了時処理
175 */
176extern void cpu_terminate(void);
177
178/*
179 * 割込みハンドラの設定
180 */
181extern void define_inh(INHNO inhno, FP inthdr) ;
182
183/*
184 * CPU例外ハンドラの設定
185 */
186extern void define_exc(EXCNO excno, FP exchdr) ;
187
188/*
189 * ターゲットシステムの文字出力
190 */
191extern void sys_putc(char c);
192
193/*
194 * タスクディスパッチャ
195 * 最高優å…
196ˆé †ä½ã‚¿ã‚¹ã‚¯ã¸ã®ãƒ‡ã‚£ã‚¹ãƒ‘ッチ(cpu_support.S内
197)
198 */
199extern void dispatch(void);
200
201/*
202 * タスクディスパッチャ
203 * 現在のコンテキストを捨ててディスパッチ(cpu_support.S内
204)
205 */
206extern void exit_and_dispatch(void);
207
208#endif /* _MACRO_ONLY */
209#endif /* _CPU_CONFIG_H_ */
Note: See TracBrowser for help on using the repository browser.