source: anotherchoice/tags/jsp-1.4.4-full-UTF8/config/h8-renesas/cpu_defs.h@ 26

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

initial

File size: 7.7 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) 2000-2004 by Embedded and Real-Time Systems Laboratory
7 * Toyohashi Univ. of Technology, JAPAN
8 * Copyright (C) 2001-2007 by Industrial Technology Institute,
9 * Miyagi Prefectural Government, JAPAN
10 * Copyright (C) 2001-2004 by Dep. of Computer Science and Engineering
11 * Tomakomai National College of Technology, JAPAN
12 *
13 * 上記著作権者
14は,以下の (1)〜(4) の条件か,Free Software Foundation
15 * によってå…
16¬è¡¨ã•ã‚Œã¦ã„ã‚‹ GNU General Public License の Version 2 に記
17 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア
18 * を改変したものを含む.以下同じ)を使用・複製・改変・再é…
19å¸ƒï¼ˆä»¥ä¸‹ï¼Œ
20 * 利用と呼ぶ)することを無償で許諾する.
21 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
22 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー
23 * スコード中に含まれていること.
24 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
25 * 用できる形で再é…
26å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é…
27å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
28 * 者
29マニュアルなど)に,上記の著作権表示,この利用条件および下記
30 * の無保証規定を掲載すること.
31 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
32 * 用できない形で再é…
33å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
34 * と.
35 * (a) 再é…
36å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€…
37マニュアルなど)に,上記の著
38 * 作権表示,この利用条件および下記の無保証規定を掲載すること.
39 * (b) 再é…
40å¸ƒã®å½¢æ…
41‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
42 * 報告すること.
43 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
44 * 害からも,上記著作権者
45およびTOPPERSプロジェクトをå…
46è²¬ã™ã‚‹ã“と.
47 *
48 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者
49お
50 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
51 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
52 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
53 *
54 * @(#) $Id: cpu_defs.h,v 1.7 2007/03/23 07:58:33 honda Exp $
55 */
56
57/*
58 * プロセッサに依存する定義(H8用)
59 *     アプリケーションが必
60要とする定義
61 *
62 * このインクルードファイルは,kernel.h と sil.h でインクルードされる.
63 * 他のファイルから直接インクルードすることはない.このファイルをイン
64 * クルードする前に,t_stddef.h と itron.h がインクルードされるので,
65 * それらに依存してもよい.
66 */
67
68#ifndef _CPU_DEFS_H_
69#define _CPU_DEFS_H_
70
71/*
72 * ユーザー定義情
73å ±
74 */
75#include <user_config.h> /* SUPPORT_VXGET_TIMマクロの定義 */
76
77#include <h8.h>
78
79#define H8
80
81/* カーネル起動時のメッセージ */
82#define COPYRIGHT_CPU \
83"Copyright (C) 2001-2007 by Industrial Technology Institute,\n" \
84" Miyagi Prefectural Government, JAPAN\n" \
85"Copyright (C) 2001-2004 by Dep. of Computer Science and Engineering,\n" \
86" Tomakomai National College of Technology, JAPAN\n"
87
88/*
89 * CPU のバイト順に関する定義
90 */
91
92#define SIL_ENDIAN SIL_ENDIAN_BIG
93
94#ifndef _MACRO_ONLY
95
96typedef UINT INHNO; /* 割込みハンドラ番号 */
97typedef UINT EXCNO; /* CPU例外ハンドラ番号 */
98
99/*
100 * ターゲットシステム依存のサービスコール
101 */
102
103/*
104 * 割込みマスクの型と割込みマスクの変更/参ç…
105§
106 */
107typedef UB IPM; /* 割込みマスク */
108
109#endif /* _MACRO_ONLY */
110/*
111 * レベル0 すべての割込みを受け付ける
112 */
113#define IPM_LEVEL0 0u
114
115/*
116 * レベル1 NMIおよびプライオリティレベル1の割込みのみを受け付ける
117 */
118#define IPM_LEVEL1 CCR_I
119
120/*
121 * レベル2 NMI以外の割込みを受け付けない
122 */
123#define IPM_LEVEL2 (CCR_I | CCR_UI)
124
125#ifndef _MACRO_ONLY
126
127#ifdef SUPPORT_CHG_IPM
128extern ER chg_ipm(IPM ipm) throw();
129extern ER get_ipm(IPM *p_ipm) throw();
130#endif /* SUPPORT_CHG_IPM */
131
132
133/*
134 * プライオリティレベル設定用のデータ構造
135 */
136typedef struct {
137 UB *ipr; /* 設定するIPRレジスタの番地 */
138 UB bit; /* IPRレジスタの該当するビット番号 */
139 IPM ipm; /* 設定する割込みレベル */
140 /* IPM_LEVEL0,IPM_LEVEL1のいずれか */
141} IRC; /* IRC:Interrupt Request Controller */
142
143
144/*
145 * 性能評価用システム時刻計測機能
146 */
147#ifdef SUPPORT_VXGET_TIM
148
149typedef UW SYSUTIM; /* 性能評価用システム時刻 */
150
151extern ER vxget_tim(SYSUTIM *pk_sysutim) throw();
152
153#endif /* SUPPORT_VXGET_TIM */
154
155/*
156 * システムの中断処理
157 */
158Inline void
159kernel_abort(void)
160{
161 while (1) {}
162}
163
164/*
165 * 微少時間待
166ち
167 *   注意事項
168:
169 *    標準ではdlytimはUINT型だが16ビットしかないので、
170 *    UW型に変更している。
171 *    sil_dly_nse()は内
172部でsil_dly_nse_long()を呼び出す。
173 */
174extern void sil_dly_nse_long(UW dlytim) throw();
175
176
177/*
178 * エンディアンの反転
179 */
180#define SIL_REV_ENDIAN_H(data) \
181 ((VH)((((UH)(data) & 0xff) << 8) | (((UH)(data) >> 8) & 0xff)))
182
183#define SIL_REV_ENDIAN_W(data) \
184 ((VW)((((UW)(data) & 0xff) << 24) | (((UW)(data) & 0xff00) << 8) \
185 | (((UW)(data)>> 8) & 0xff00) | (((UW)(data) >> 24) & 0xff)))
186
187/*
188 * メモリ空間アクセス関数
189 *
190 * コンパイラの警告を回避するため、機種依存部でアクセス関数を用意する。
191 * 処理内
192容はjsp/include/sil.hとまったく同じ。
193 * 定義する順番の都合上、上記の「エンディアンの反転」もダブって定義している。
194 */
195#define OMIT_SIL_ACCESS
196
197/*
198 * 8ビット単位の読出し/書込み
199 */
200Inline VB
201sil_reb_mem(VP mem)
202{
203 VB data = *((volatile VB *) mem);
204 return(data);
205}
206
207Inline void
208sil_wrb_mem(VP mem, VB data)
209{
210 *((volatile VB *) mem) = data;
211}
212
213/*
214 * 16ビット単位の読出し/書込み
215 */
216Inline VH
217sil_reh_mem(VP mem)
218{
219 VH data = *((volatile VH *) mem);
220 return(data);
221}
222
223Inline void
224sil_wrh_mem(VP mem, VH data)
225{
226 *((volatile VH *) mem) = data;
227}
228
229#define sil_reh_bem(mem) sil_reh_mem(mem)
230#define sil_wrh_bem(mem, data) sil_wrh_mem(mem, data)
231
232Inline VH
233sil_reh_lem(VP mem)
234{
235 VH data = *((volatile VH *) mem);
236 return(SIL_REV_ENDIAN_H(data));
237}
238
239Inline void
240sil_wrh_lem(VP mem, VH data)
241{
242 *((volatile VH *) mem) = SIL_REV_ENDIAN_H(data);
243}
244
245/*
246 * 32ビット単位の読出し/書込み
247 */
248Inline VW
249sil_rew_mem(VP mem)
250{
251 VW data = *((volatile VW *) mem);
252 return(data);
253}
254
255Inline void
256sil_wrw_mem(VP mem, VW data)
257{
258 *((volatile VW *) mem) = data;
259}
260
261#define sil_rew_bem(mem) sil_rew_mem(mem)
262#define sil_wrw_bem(mem, data) sil_wrw_mem(mem, data)
263
264Inline VW
265sil_rew_lem(VP mem)
266{
267 VW data= *((volatile VW *) mem);
268 return(SIL_REV_ENDIAN_W(data));
269}
270
271Inline void
272sil_wrw_lem(VP mem, VW data)
273{
274 *((volatile VW *) mem) = SIL_REV_ENDIAN_W(data);
275}
276
277#endif /* _MACRO_ONLY */
278
279#endif /* _CPU_DEFS_H_ */
Note: See TracBrowser for help on using the repository browser.