source: anotherchoice/tags/jsp-1.4.4-full-UTF8/doc/h8s.txt@ 26

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

initial

File size: 27.7 KB
Line 
1
2 = TOPPERS/JSPカーネル ユーザズマニュアル =
3 (H8S ターゲット依存部)
4
5 (Release 1.4.1 対応,最終更新: 18-OCT-2004)
6
7------------------------------------------------------------------------
8 TOPPERS/JSP Kernel
9 Toyohashi Open Platform for Embedded Real-Time Systems/
10 Just Standard Profile Kernel
11
12 Copyright (C) 2000-2004 by Embedded and Real-Time Systems Laboratory
13 Toyohashi Univ. of Technology, JAPAN
14 Copyright (C) 2001-2004 by Dep. of Computer Science and Engineering
15 Tomakomai National College of Technology, JAPAN
16 Copyright (C) 2001-2004 by Industrial Technology Institute,
17 Miyagi Prefectural Government, JAPAN
18
19 上記著作権者
20は,Free Software Foundation によってå…
21¬è¡¨ã•ã‚Œã¦ã„ã‚‹
22 GNU General Public License の Version 2 に記述されている条件か,以
23 下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェア(本ソフトウェ
24 アを改変したものを含む.以下同じ)を使用・複製・改変・再é…
25å¸ƒï¼ˆä»¥ä¸‹ï¼Œ
26 利用と呼ぶ)することを無償で許諾する.
27 (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
28 権表示,この利用条件および下記の無保証規定が,そのままの形でソー
29 スコード中に含まれていること.
30 (2) 本ソフトウェアを再利用可能なバイナリコード(リロケータブルオブ
31 ジェクトファイルやライブラリなど)の形で利用する場合には,利用
32 に伴うドキュメント(利用者
33マニュアルなど)に,上記の著作権表示,
34 この利用条件および下記の無保証規定を掲載すること.
35 (3) 本ソフトウェアを再利用不可能なバイナリコードの形または機器に組
36 み込んだ形で利用する場合には,次のいずれかの条件を満たすこと.
37 (a) 利用に伴うドキュメント(利用者
38マニュアルなど)に,上記の著作
39 権表示,この利用条件および下記の無保証規定を掲載すること.
40 (b) 利用の形æ…
41‹ã‚’,別に定める方法によって,上記著作権者
42に報告する
43 こと.
44 (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
45 害からも,上記著作権者
46をå…
47è²¬ã™ã‚‹ã“と.
48
49 本ソフトウェアは,無保証で提供されているものである.上記著作権者
50は,
51 本ソフトウェアに関して,その適用可能性も含めて,いかなる保証も行わ
52 ない.また,本ソフトウェアの利用により直接的または間接的に生じたい
53 かなる損害に関しても,その責任を負わない.
54------------------------------------------------------------------------
55
561.H8Sターゲット依存部の概要
57
581.1 ターゲットシステムと開発環境
59
60H8Sファミリーのプロセッサをサポートしている。H8Sファミリーは、内
61蔵インタ
62フェースなどの違いなどにより、様々
63なプロセッサがある。これらå…
64¨ã¦ã«ã€å¯¾å¿œ
65可能なように設計を行った。
66
67今回の実装
68においてサポートとしたターゲットボードは、以下である。
69
70 ・株式会社ミスポ製 H8S/2350 評価ボード (H8S/2350搭載)
71
72開発環境には、GCC などの GNU開発環境を用い、オブジェクトファイルフォーマッ
73トは coff を標準とする。
74
751.2 サポートする機能の概要
76
77H8Sターゲット依存部による機能としては、
78 ・割込みマスクの変更・参ç…
79§(chg_ipm、get_ipm)
80 ・性能評価用システム時刻参ç…
81§æ©Ÿèƒ½(vxget_tim)
82をサポートしている。また、
83 ・割込みの禁止と許可(dis_int、ena_int)
84はサポートしていない。(2.2.4及び3.2参ç…
85§ã€‚)
86
871.3 他のターゲットへのポーティング
88
89H8Sファミリーであれば、ポーティングは容易に出来る。しかしながら、開発機材の
90関係上、H8S/2350以外でのテストを行っていない。
91(なお、この開発機材の関係から、下記においてはH8S/2350での状況を想定して
92 いる。しかし、開発自体は、H8Sファミリーå…
93¨ä½“に有効な内
94容である。)
95
961.4 GDB スタブ
97
98現在の TOPPERS/JSP カーネル H8S 版はROM化をサポートしている。
99
100また、GDBスタブへ対応している。興味のある方は、別途お問い合わせください。
101なお、デバッグ環境としてはICEを推奨する。
102
1031.5 シリアルポート(SCI)
104
105H8Sファミリーのå…
106¨ã¦ã®ãƒ—ロセッサが、2チャンネル以上のシリアルポートを内
107蔵
108している。そこで、それらのうち、カーネルのログ出力用に1つ使用する。
109シリアルポートの設定は
110 ・8ビット
111 ・パリティなし
112 ・ストップビット:1ビット
113 ・ボーレート:38400 bps
114である。
115
116なお、ボーレートについては、BAUD_RATEマクロにて定義しているので必
117要に応じて
118変更することができる。
119(sys_config.h)
120
121(H8S/2350は2チャンネルのシリアルポートを内
122蔵している。これは、sys_config.h
123 に定義しているNUM_PORTによりサポートするポート数が決まる。現在の実装
124では、
125 2チャンネルをサポートしている。
126 また、JSPカーネルのログ出力用には、SCI0を使用している。)
127
1282.H8Sターゲット依存部の機能
129
1302.1 データ型
131
132int型および unsigned int型のサイズは 32ビットである。
133
1342.2 割込み管理機能と割込みハンドラ
135
136カーネル管理外の割込みは NMI のみである。CPUロック状æ…
137‹ã‚„初期化ルーチン内
138では
139NMI 以外の割込みはå…
140¨ã¦ç¦æ­¢ã•ã‚Œã‚‹ã€‚å…
141·ä½“的には、割込みマスクが7に設定される。
142
143割込みハンドラの登録に関しては、コンフィグファイルに対する静的APIの記述と、
144ベクタテーブルへの記述との、二つの記述を行わなければならない。
145このベクタテーブルへの記述については、後述する。
146(静的APIによる記述により、割込みハンドラ(割込み出å…
147¥å£å‡¦ç†ã‚’含む)が生成され、
148 例外処理ベクタテーブルに登録することで、この割込みハンドラが呼び出される。)
149
1502.2.1 割込み制御モード
151
152H8Sファミリーは、モード0とモード2の2つの割込み制御モードの選択が可能で
153ある。今回の実装
154では、モード2をサポートしている。
155
1562.2.2 ベクタテーブルの記述方法
157
158割込みハンドラを呼び出すためには、例外処理ベクタテーブルに登録する必
159要がある。
160このとき、H8Sファミリーは、ROM領域に例外処理ベクタテーブルをé…
161ç½®ã—てため、
162ベクタテーブルは実行中は固定となる。
163
164そのため、コンパイル前に、exception_vector.S に記載されているベクタテーブルに、
165割込みハンドラのå…
166¥å£å‡¦ç†ã®ãƒ©ãƒ™ãƒ«åã‚’直接記述する必
167要がある。
168
169このときに記述する、例外処理のå…
170¥å£å‡¦ç†ã®ãƒ©ãƒ™ãƒ«åã¯ï¼Œä»¥ä¸‹ã®ã‚ˆã†ã«è¨­å®šã™ã‚‹ã€‚
171
172 ・例外処理のC言語ルーチン名 : *******
173 ・例外処理のå…
174¥ã‚Šå£å‡¦ç†ã®ãƒ©ãƒ™ãƒ«åï¼š_*******_entry
175 (ここで、ラベル名に"_"が付いているのは、C言語ルーチンfoo()に対して
176 アセンブルすると、_fooというラベルを対応付けられるためである。)
177
178 例)SCI(シリアルコミュニケーションインターフェース)からの割込み
179 例外処理のC言語ルーチン名 : serial_in_handler
180 例外処理のå…
181¥ã‚Šå£å‡¦ç†ã®ãƒ©ãƒ™ãƒ«åï¼š_serial_in_handler_entry
182
183なお、このルールに従ったラベルを生成する、_INT_ENTRYマクロを定義しているので、
184利用してください。
185
186 例)SCI(シリアルコミュニケーションインターフェース)からの割込み
187 例外処理のC言語ルーチン名 : serial_in_handler
188 例外処理のå…
189¥ã‚Šå£å‡¦ç†ã®ãƒ©ãƒ™ãƒ«åï¼š
190 _INT_ENTRY(serial_in_handler) -> _serial_in_handler_entry を生成
191
192なお、このマクロを、exception_vector.S で利用しているので、参考にしてください。
193
1942.2.3 割込みマスク/割込み優å…
195ˆåº¦åˆ¶å¾¡
196
197割込みマスク/割込み優å…
198ˆåº¦åˆ¶å¾¡ã®ãŸã‚ã®ã€å®šç¾©ãƒ»APIは以下の通りである。
199
200(1)IPM型
201割込みマスクの値を示すデータ型である。割込みマスクは、EXR(エクステンドレジ
202スタ)の割込みマスクビット(I2-0)の値である。そのため、EXR分の1バイトあれば
203よいので、UB型で定義している。
204
205(2)icu_set_ilv 割込みレベルの設定
206
207【C言語API】
208 icu_set_ilv( IPR, MASK, LEVEL )
209
210【パラメータ】
211 VP IPR 設定するインタラプトプライオリティレジスタの
212 アドレス ( IPRA - IPRK マクロで設定 )
213 BOOL MASK 設定するインタラプトプライオリティレジスタの
214 設定範囲(上位部分または下位部分)の選択
215 ( IPR_UPR、または、IPR_LOW マクロで設定 )
216 INT LEVEL 設定する割込みレベル ( 0 - 7 )
217
218【リターンパラメータ】
219 なし
220
221【機能】
222インタラプトプライオリティレジスタの各例外要因別に、割込みレベル設定を行う。
223
224【注意】
225現在は、マクロを用いた実装
226を行っているため、エラー処理は特に行っていない。
227(cpu_config.h)
228
229なお、今回の実装
230において、割込みレベルは、
231 (低)シリアル0 = シリアル1 -> タイマ0(高)
232と定義している。
233(sys_config.h)
234
2352.2.4 割込みマスク変更・参ç…
236§ã®ãŸã‚ã®ã‚µãƒ¼ãƒ“スコールについて
237
238割込みマスク変更・参ç…
239§ã®ãŸã‚ã®ã‚µãƒ¼ãƒ“スコールは、タスクコンテキストかつ CPU
240ロック解除状æ…
241‹ã®å ´åˆã«ã®ã¿å‘¼ã³å‡ºã™ã“とができる。chg_ipm により IPM を、
242何らかの割込みが禁止されている状æ…
243‹ï¼ˆï¼ä»¥å¤–の値の場合)にした場合でも、
244ディスパッチは禁止されず、chg_ipm により変更した IPM の値は、ディスパッチ
245後のタスクに引き継がれる。
246
247chg_ipm をサポートするために、割込みハンドラの出å…
248¥å£å‡¦ç†ãªã©ã«ã‚ªãƒ¼ãƒãƒ˜ãƒƒãƒ‰
249を生じている。そこで、SUPPORT_CHG_IPM というマクロにより、これらのサービス
250コールをサポートするかどうかを切り替えられるようにしている。
251(SUPPORT_CHG_IPM は、cpu_config.h の中で #define されている。)
252
253H8Sターゲット依存の割込みマスクの変更・参ç…
254§ã®ãŸã‚ã®ã‚µãƒ¼ãƒ“スコールの仕様は
255次の通り。
256
257(1) chg_ipm 割込みマスクの変更
258
259【C言語API】
260 ER ercd = chg_ipm(IPM ipm);
261
262【パラメータ】
263 IPM ipm 設定すべき IPM の値
264
265【リターンパラメータ】
266 ER ercd エラーコード
267
268【エラーコード】
269 E_CTX コンテキストエラー
270 E_PAR パラメータエラー(ipm が不正)
271
272【機能】
273
274割込みマスクをを ipm で指定した値に設定する。指定した値が、0〜6 にå…
275¥ã£ã¦
276いない場合、E_PARエラーを返す。割込みマスクを0以外(1〜MAX_IPM-1)に設定
277した場合でも、ディスパッチは禁止されない。また、設定した割込みマスクの値は、
278ディスパッチ禁止後も引き継がれる。
279
280このサービスコールは、タスクコンテキストで CPUロック解除状æ…
281‹ã®æ™‚のみ呼び
282出すことができる。非タスクコンテキストや CPUロック状æ…
283‹ã§å‘¼ã³å‡ºã—た場合には、
284E_CTXエラーとなる。
285
286なお、このサービスコールを用いて、IPMをMAX_IPM(å…
287¨ã¦ã®å‰²è¾¼ã¿ã‚’禁止)に設定
288することはできない。IPMをMAX_IPMにしたい場合には、loc_cpuを使用すべきである。
289
290(2) get_ipm 割込みマスクの参ç…
291§
292
293【C言語API】
294 ER ercd = get_ipm(IPM *p_ipm);
295
296【パラメータ】
297 なし
298
299【リターンパラメータ】
300 ER ercd エラーコード
301 IPM ipm 現在の IPM の値
302
303【エラーコード】
304 E_CTX コンテキストエラー
305
306【機能】
307
308現在の割込みマスクの値を読み出し、ipm に返す。
309
310このサービスコールは、タスクコンテキストで CPUロック解除状æ…
311‹ã®æ™‚のみ呼
312び出すことができる。非タスクコンテキストや CPUロック状æ…
313‹ã§å‘¼ã³å‡ºã—た場
314合には、E_CTXエラーとなる。
315
3162.3 CPU例外管理機能とCPU例外ハンドラ
317
318DEF_EXC で指定する CPU例外ハンドラ番号(excno)は、H8Sファミリーにおける
319ベクタテーブルのベクタ番号を表し、そのデータ型(EXCNO)は unsigned int 型
320に定義されている。
321DEF_EXC で、ベクタ番号として有効でない値や、CPU例外に対応しない番号を指定
322した場合の動作は保証されない。
323
324(1)変数p_excinf
325CPU例外ハンドラに渡されるp_excinfは、CPU例外発生時のコンテキストを保存
326したスタックへのポインタが渡される。スタックの構造を以下に示す。
327
328 ----------------------
329 | er6 (32ビット) | <-- p_excinf
330 ----------------------
331 | er5 (32ビット) |
332 ----------------------
333 | er4 (32ビット) |
334 ----------------------
335 | er3 (32ビット) |
336 ----------------------
337 | er2 (32ビット) |
338 ----------------------
339 | er1 (32ビット) |
340 ----------------------
341 | er0 (32ビット) |
342 ----------------------
343 | EXR ( 8ビット) |
344 ----------------------
345 | 予約( 8ビット) |
346 ----------------------
347 | CCR ( 8ビット) |
348 ----------------------
349 | PC (24ビット) |
350 ----------------------
351
352 EXR : エクステンドレジスタ
353 CCR : コンディションコードレジスタ
354 PC : プログラムカウンタ
355
356また、CPU例外発生時のPCの値はインクリメントされる。そのため、CPU例外ハンドラ
357から復帰を行うと、CPU例外が発生した命令の次の命令から実行を再開する。
358
3592.4 割込み発生時のスタック消費量について
360
361各タスクスタックは、タスク自身が使用する分に加えて、最大 98 バイト余分に
362用意する必
363要がある。
364
365JSPカーネルは、タスクコンテキスト用のタスクスタックと、非タスクコンテキスト
366用のスタック(以下、割込みスタック)とを用意している。そのため、非タスクコン
367テキストは割込みスタックで実行される。
368
369H8Sファミリーにおいて、割込みモード2では、割込み受付時に割込み禁止になる
370機構がハードウェアで用意されていない。そのために、割込みのå…
371¥å£å‡¦ç†ã§ã‚½ãƒ•ãƒˆ
372ウェアによって割込み禁止にする必
373要がある。割込みå…
374¥å£å‡¦ç†ã§ã¯ã€å‰²è¾¼ã¿ç¦æ­¢ã«
375移行するための作業用に、割込み許可の状æ…
376‹ã®ã¾ã¾ã€ã‚¿ã‚¹ã‚¯ã‚¹ã‚¿ãƒƒã‚¯ã« er0、er1
377を退避させる。
378(下記レジスタは割込み受付時にハードウェアが自動的に退避を行う。
379 PC : プログラムカウンタ(3バイト)
380 CCR : コンディションコードレジスタ(1バイト)
381 EXR : エクステンドレジスタ(1バイト))
382
383さて、多重割込みが、割込みスタックに切り替える前に発生した場合には、同様の
384スタックフレームがタスクスタック上に生成される。
385そのため、最悪のタイミングで割込みが発生すると、H8S は割込みレベルが7レベル
386あるので、タスクスタックにおいて、98バイト消費されることになる。
387(1スタックフレームの大きさ〔アドバンスモードの場合〕:
388 er1(4バイト)+ er0(4バイト)+ EXR(1バイト)+リザーブ(1バイト)
389 + CCR(1バイト)+ PC(3バイト)= 14 バイト
390 最大タスクスタック消費量:
391 14バイト×7セット = 98バイト)
392
3932.5 スタートアップモジュール
394
395H8Sファミリーでは、ベクタテーブルに、パワーオンリセット、マニュアルリセット
396並びに NMI(Non Maskable Interrupt)用のベクタアドレスを備えている。これらの
397アドレスからのジャンプå…
398ˆãŒã‚¹ã‚¿ãƒ¼ãƒˆã‚¢ãƒƒãƒ—モジュールとなっている。
399
400スタートアップモジュール(start.S)では、次の初期化処理を行う。
401
402(A) スタックポインタの設定
403スタックポインタ sp を、STACKTOP の値に設定する。この値は、sys_config.h に
404定義されている。
405
406(B) hardware_init_hookの呼び出し
407
408hardware_init_hook が 0 でなければ、hardware_init_hook を呼び出す。
409hardware_init_hook はカーネルを起動する前に、ダーゲット依存のハードウェア的
410な初期化を行うために用意されている。
411本実装
412では、hardware_init_hook 内
413では、
414 ・SYSCR の設定(割込み制御モード、内
415蔵RAMの設定)
416 ・I/O ポートの初期化
417 ・バスコントローラの設定(ABWCR、ASTCR、WCRL、BCRHの設定)
418などの処理を行う。記述場所は、sys_support.S を標準とする。
419
420hardware_init_hook がどこでも定義されていない場合には、このシンボルを0に
421定義する(リンカスクリプト内
422に記述あり)。
423
424なお、hardware_init_hook を新たに記述する場合には、呼び出しå…
425ƒã¸ã®ãƒªã‚¿ãƒ¼ãƒ³ã¯
426rts 命令でなく、jmp 命令で start_1 に戻ること。
427
428(C) bssセクション、dataセクションの初期化
429
430bss セクションのå…
431¨é ˜åŸŸã‚’ゼロクリアする。data セクションを初期化する。ROM 化
432対応のために、ROM から RAM へと、コピーを行う。
433
434(D) software_init_hookの呼び出し
435
436software_init_hook が 0 でなければ、software_init_hook を呼び出す。
437software_init_hook は、カーネルが起動される前に行う必
438要があるソフトウェア
439環境(å…
440·ä½“的には、ライブラリ)依存の初期化を行うために用意している。
441
442software_init_hook がどこでも定義されていない場合、リンカでこのシンボルを
443 0 に定義する(リンカスクリプト内
444に記述あり)。
445
446(E) カーネルの起動
447
448kernel_start へ分岐し、カーネルを起動する。kernel_start からリターンして
449くることは想定していない。
450
4512.6 MAC レジスタ (H8S/2600コア内
452蔵プロセッサのみ)
453
454※この部分のサポート協力者
455を求めております。
456
457H8Sファミリーには、CPUコアに H8S/2600 と H8S/2000 の2種類が存在する。この
458うち、H8S/2600 は、積和レジスタとして MAC レジスタをサポートしている。
459
460そこで、使用するプロセッサが、H8S/2600 を持つ場合は、
461 ・cpu_defs.h において H8S_2600 マクロを定義する。
462 (このマクロによって、cpu_support.S において、MAC レジスタのサポートが
463 行われる。)
464 ・$(CPU)/Makefile.config 内
465を適切にコメントインする。
466 (これにより、H8S/2600 用のコンパイルオプションが付加される。)
467を行うことにより、MAC レジスタに対応することができる。
468
469サポート状況は、以下の通りである。
470
471・C言語で書かれたタスク内
472で、この MAC レジスタを使用する場合に、自らディス
473 パッチャを呼び出してディスパッチする場合は、関数呼び出しになる。
474 そのため、呼び出し前後にまたがったタスク間で、MAC レジスタを使うことは
475 ないため保存していない。
476 (そのため、タスク内
477でアセンブラのコードを使用する場合もこのルールに従う
478 必
479要がある。)
480・割込みからのディスパッチ(受動的ディスパッチ)では保存している。
481
482※割込み発生時の MAC レジスタの保存については、実行環境が無いため、保存の
483 有無を確認できていない。
484
4853.システム依存部の機能
486
4873.1 システムクロックドライバ
488
489システムクロックドライバが isig_tim を呼び出す周期は、sys_defs.h 中の
490TIC_NUME と TIC_DENO で定義されている(デフォルトでは 1ミリ秒周期)。この定
491義を変更することで、isig_tim を呼び出す周期を変更することができる。但し、
492タイマの精度が1μ秒であるために、1μ秒単位で端数になる値を設定した場合には、
493isig_timの呼出し周期に誤差が生じることになる。
494
495デフォルトでは、下記のタイマを利用している。
496(a) H8S/2350
497 H8S内
498蔵タイマ(TPU)のチャネル0
499
5003.2 性能評価用システム時刻参ç…
501§æ©Ÿèƒ½
502
503H8S依存部では、性能評価用システム参ç…
504§æ©Ÿèƒ½(vxget_tim)をサポートしている。
505精度は1μ秒で、SYSUTIM型はUW型(32ビット符号なし整数型)である。
506
507性能評価用システム時刻の精度は供給クロック単位であるが、タイマの現在値を
508読み出すために一時的にタイマを停止させる必
509要があるため、vxget_tim を呼ぶ
510度にシステムクロックが少しづつ遅
511れることになる。そこで、SUPPORT_VXGET_TIM
512というマクロにより、これらのサービスコールをサポートするかどうかを切り替
513えられるようにしている。
514(SUPPORT_VXGET_TIM は、sys_config.h の中で #define されている。)
515
5163.3 シリアルインターフェースドライバ
517
518今回の実装
519では、ターゲットプロセッサの関係から、2チャンネルまでの対応を
520行っている。しかし、他のH8Sファミリーには、2チャンネル以上のシリアルインタ
521フェースを内
522蔵しているものもある。そのための、変更は容易に可能である。
523詳しくは、ソースコードを参ç…
524§ã®ã“と。
525
526なお、シリアルインターフェースドライバは、カーネルのログ出力用に、H8S内
527蔵
528SCIチャネル0を使用している。
529
5303.4 メモリマップ
531
532メモリマップは以下のように設定している。
533・ROM 化時
534 0x000000 - 0x01ffff : コード領域(128kB)
535 0x200000 - : データ領域(128kB)
536 0x21ffff : 非タスクコンテキスト用のスタック領域
537
538・GDB スタブ利用時
539 0x200000 - 0x20ffff : コード領域(64kB)
540 0x210000 - : データ領域(64kB-8kB(for GDB_STUB))
541 0x21efff : 非タスクコンテキスト用のスタック領域
542
543内
544蔵 RAM は、現在使用していないが、使用する場合には、hardware_init_hook の
545中で内
546蔵 RAM を有効にする必
547要がある。(2.3 (2)を参ç…
548§ã€‚)
549
5504.開発環境の構築
551
552開発環境の構築方法については、GNU開発環境構築マニュアルを参ç…
553§ã™ã‚‹ã“と。
554なお、ターゲット環境 <TARGET> の値については、以下を参考のこと。
555開発には Windows2000SP4 上で Cygwin を用いた。
556
557動作確認は、下記のツールにて確認している。このツールをデフォルトとする。
558
559・GNUからé…
560å¸ƒã•ã‚Œã¦ã„るオリジナルのGCCなどをソースから構築したツール
561 動作確認を行ったときのバージョンは以下の通りである。
562 BINUTILS : 2.14
563 GCC-CORE : 3.3.2
564 NEWLIB : 1.11.0
565(この場合のターゲット環境 <TARGET> には、h8300-hms- を用いる。)
566
567また、Windows上でCygwinを用いて開発する場合は、binutils の configure のオプ
568ションに --disable-nls も指定すること。
569
5705.制限事項
571
572
573・割込み制御モード0はサポートしていない。
574
575・ノーマルモードでの実行は、テストを行っていない。
576
577・MACレジスタのサポートは、テストを行っていない。
578
579・スタートアップルーチン、リンクスクリプトは、C++ に対応していない。
580
581・SYSUTIM 型を UW 型(32ビット符号なし整数型)として定義しているために、性能
582 評価用システム参ç…
583§æ©Ÿèƒ½(vxget_tim)により測定できる範囲が、多機種より狭い。
584
585・他の gcc のバージョン(特に、gcc 3.4.x)でのコンパイルは保証しない。
586
5876.その他
588
5896.1 ディレクトリ・ファイル構成
590
591H8S ターゲット依存部の各ファイルの概要は次の通り。
592
593 config/h8s/
594 H8Så…
595±é€šéƒ¨
596
597 Makefile.config MakefileのH8Sターゲット依存の定義
598 cpu_defs.h プロセッサ依存部のアプリケーション用定義
599 cpu_config.h プロセッサ依存部の構成定義
600 cpu_config.c プロセッサ依存部の関数
601 cpu_support.S プロセッサ依存部のサブルーチン
602 cpu_context.h コンテキスト操作
603 cpu_rename.def カーネルの内
604部識別名のリネーム定義
605 cpu_rename.h カーネルの内
606部識別名のリネーム
607 cpu_unrename.h カーネルの内
608部識別名のリネーム解除
609 tool_defs.h 開発環境依存部のアプリケーション用定義
610 (GNU開発環境用)
611 tool_config.h 開発環境依存部の構成定義(GNU開発環境用)
612 makeoffset.c offset.h 生成サポートプログラム
613 cpu_insn.h 低レベルのプロセッサ操作ルーチン
614 start.S スタートアップモジュール
615 h8s.h H8Sのレジスタ名などの定義
616 h8s_sil.h H8Sファミリー用システムインタフェース
617 レイヤー定義
618 util.h ビット番号などの定義
619 hw_serial.h SIOドライバ
620 hw_serial.cfg SIOドライバのコンフィギュレーションファイル
621 h8s_sci.h H8Sシリーズ内
622蔵シリアルポート用
623 簡易SIOドライバ関連の定義
624 h8s_sci.c H8Sシリーズ内
625蔵シリアルポート用
626 簡易SIOドライバ
627 hw_timer.h タイマ操作ルーチン
628 h8s_tpu.h H8Sシリーズ内
629蔵タイマ用
630 タイマドライバ関連の定義
631
632 config/h8s/h8s2350/
633 H8S/2350対応システム依存部
634 (株式会社ミスポ製 H8S/2350 評価ボード対応)
635
636 Makefile.config Makefile の MISPO H8S/2350 評価ボード依存定義
637 sys_defs.h システム依存部のアプリケーション用定義
638 sys_config.h システム依存部の構成定義(C言語用)
639 sys_config.c システム依存部の関数
640 sys_support.S システム依存部のサブルーチン
641 exception_vector.S 割込み例外処理ベクタテーブル
642 sys_rename.def カーネルの内
643部識別名のリネーム定義
644 sys_rename.h カーネルの内
645部識別名のリネーム
646 sys_unrename.h カーネルの内
647部識別名のリネーム解除
648 h8s2350.h H8S/2350プロセッサのハードウェア定義
649 mispo_h8s2350.h MISP H8S/2350 評価ボードのハードウェア定義
650 h8s_coff.ld リンカスクリプト(ROM 化用)
651 h8s_coff_gdb.ld リンカスクリプト(GDB スタブ用)
652
6536.1 その他
654
655H8Sファミリーは、非常にプロセッサの種類が多いです。その中で、我々
656開発者
657の
658ターゲット環境の問題から、今回の実装
659は H8S/2350 という特定のプロセッサのみ
660のサポートとなっています。
661
662そこで、これらの、非常に多岐に渡っているプロセッサの動作テストに協力して
663いただける方を募集しております。
664
665是非、下記へとご連絡ください。お待
666ちしております。
667
668○TOPPERSプロジェクト メーリングリスト TOPPERS-USER
669
670○宮城県産業技術総合センター 機械電子情
671報技術部 情
672報技術開発班
673 TEL : 022-377-8700、e-mail : micom@mit.pref.miyagi.jp
674
675変更履歴
676
6772004年 4月15日 JSPカーネル Release1.4 対応
6782004年10月18日 JSPカーネル Release1.4.1 対応
Note: See TracBrowser for help on using the repository browser.