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

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

initial

File size: 21.1 KB
Line 
1 = TOPPERS/JSPカーネル ユーザズマニュアル =
2 (TLCS900 ターゲット依存部)
3
4 (Release 1.4.4対応,最終更新: 19-May-2011)
5
6------------------------------------------------------------------------
7 TOPPERS/JSP Kernel
8
9 Toyohashi Open Platform for Embedded Real-Time Systems/
10 Just Standard Profile Kernel
11
12 Copyright (C) 2006-2010 by Witz Corporation, JAPAN
13
14 The above copyright holders grant permission gratis to use,
15 duplicate, modify, or redistribute (hereafter called use) this
16 software (including the one made by modifying this software),
17 provided that the following four conditions (1) through (4) are
18 satisfied.
19
20 (1) When this software is used in the form of source code, the above
21 copyright notice, this use conditions, and the disclaimer shown
22 below must be retained in the source code without modification.
23
24 (2) When this software is redistributed in the forms usable for the
25 development of other software, such as in library form, the above
26 copyright notice, this use conditions, and the disclaimer shown
27 below must be shown without modification in the document provided
28 with the redistributed software, such as the user manual.
29
30 (3) When this software is redistributed in the forms unusable for the
31 development of other software, such as the case when the software
32 is embedded in a piece of equipment, either of the following two
33 conditions must be satisfied:
34
35 (a) The above copyright notice, this use conditions, and the
36 disclaimer shown below must be shown without modification in
37 the document provided with the redistributed software, such as
38 the user manual.
39
40 (b) How the software is to be redistributed must be reported to the
41 TOPPERS Project according to the procedure described
42 separately.
43
44 (4) The above copyright holders and the TOPPERS Project are exempt
45 from responsibility for any type of damage directly or indirectly
46 caused from the use of this software and are indemnified by any
47 users or end users of this software from any and all causes of
48 action whatsoever.
49
50 THIS SOFTWARE IS PROVIDED "AS IS." THE ABOVE COPYRIGHT HOLDERS AND
51 THE TOPPERS PROJECT DISCLAIM ANY EXPRESS OR IMPLIED WARRANTIES,
52 INCLUDING, BUT NOT LIMITED TO, ITS APPLICABILITY TO A PARTICULAR
53 PURPOSE. IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS AND THE
54 TOPPERS PROJECT BE LIABLE FOR ANY TYPE OF DAMAGE DIRECTLY OR
55 INDIRECTLY CAUSED FROM THE USE OF THIS SOFTWARE.
56
57 上記著作権者
58は,以下の (1)〜(4) の条件を満たす場合に限り,本ソフトウェ
59 ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改変・
60 再é…
61å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
62 (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作権
63 表示,この利用条件および下記の無保証規定が,そのままの形でソース
64 コード中に含まれていること.
65 (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使用
66 できる形で再é…
67å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é…
68å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€…
69マ
70 ニュアルなど)に,上記の著作権表示,この利用条件および下記の無保
71 証規定を掲載すること.
72 (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使用
73 できない形で再é…
74å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこと.
75 (a) 再é…
76å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€…
77マニュアルなど)に,上記の著作
78 権表示,この利用条件および下記の無保証規定を掲載すること.
79 (b) 再é…
80å¸ƒã®å½¢æ…
81‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに報
82 告すること.
83 (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損害
84 からも,上記著作権者
85およびTOPPERSプロジェクトをå…
86è²¬ã™ã‚‹ã“と.また,
87 本ソフトウェアのユーザまたはエンドユーザからのいかなる理由に基づ
88 く請求からも,上記著作権者
89およびTOPPERSプロジェクトをå…
90è²¬ã™ã‚‹ã“と.
91
92 本ソフトウェアは,無保証で提供されているものである.上記著作権者
93およ
94 びTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的に対す
95 る適合性も含めて,いかなる保証も行わない.また,本ソフトウェアの利用
96 により直接的または間接的に生じたいかなる損害に関しても,その責任を負
97 わない.
98
99 @(#) $Id: tlcs900.txt,v 1.3 2007/05/21 01:21:47 honda Exp $
100------------------------------------------------------------------------
101
1021 TLCS900 ターゲット依存部の概要
103
1041.1 ターゲットシステムと開発環境
105
106TLCS900プロセッサのターゲットシステムは,タマデン工業株式会社のZup-F16
107拡張ボードとをサポートしている.Zup-F16拡張ボードはTMP91CY22-CPUを搭載
108している.
109
1101.2 開発環境と実行環境
111
112Zup-F16拡張ボードキットに同梱されているCD-ROM中の東芝セミコンダクタ社製
113の開発環境(TOSHIBA IDE)を使用して開発を行う.
114JSP1.4.4のWindows版(文字コードSJIS 改行コードCRLF)実行が可能でシリアル
115ポートをもつパソコンがあれば,構築,ボード上実行が可能である.
116
1171.3 サポートする機能の概要
118
119割込みマスクの変更・参ç…
120§ (chg_ixx, get_ixx)はサポートしているが,性能
121評価用システム時刻参ç…
122§æ©Ÿèƒ½ (vxget_tim) ,割り込みの禁止と許可
123(dis_int,ena_int) はサポートしていない.
124
1251.4 他のターゲットへのポーティング
126
127TLCS900シリーズであればシステム依存部の修正のみでポーティングが可能と
128思われる.また,他のシリーズのCPUでも構造が大きく違っていなければ,容
129易にポーティングは可能である.なお,テスト環境の都合上,Zup-F16拡張ボ
130ード以外での動作確認は行っていない.
131
1321.5 シリアルポート (SIO)
133
134ボード上はUART1が実装
135されている.ポーティングにおいては,UART0/1両方
136とも動作可能なようにé…
137æ…
138®ã—ているが,動作確認はUART1のみ行っている.
139シリアルポートの設定は以下の通りである.
140
141 ・ボーレイト:19200bps
142 ・データ長:8 ビット.
143 ・ストップビット:1 ビット
144 ・パリティ:なし
145
1461.6 対象とする文字コードと改行コード
147
148Windows版(文字コードSJIS 改行コードCRLF)を対象としている.なお,コン
149フィギュレータ cfg.exe を後述のMinGWでビルドする場合は,文字コードEUC
150改行コードLFであることがのぞましい.このため,cfg以下のソースコードを,
151文字コードEUC改行コードLFに変換するか,標準版(文字コードECU 改行コード
152LF)のcfg以下でビルドした cfg.exeをコピーして利用することを推奨する.
153
1542 TLCS900 プロセッサ依存部の機能
155
156この節では,カーネルおよびシステムサービスの機能の中で,TLCS900依存の
157部分について解説する.
158
1592.1 データ型
160
161int 型と unsigned int 型のサイズは 16ビットである.また,_int64_は対応
162していない.ポインタ型のサイズは 32ビットである.
163
1642.2 割込み管理機能と割込みハンドラ
165
166カーネル管理外の割込みは NMI のみである.CPUロック状æ…
167‹ã‚„初期化ルーチン
168内
169では NMI 以外の割込みはå…
170¨ã¦ç¦æ­¢ã•ã‚Œã‚‹ï¼Žå…
171·ä½“的には,割込みマスクが7
172に設定される.
173
174割込みハンドラはCPUの設定位置に静的にé…
175ç½®ã•ã‚Œã‚‹ï¼Žæœ¬é–‹ç™ºç’°å¢ƒã§ã¯ã‚³ãƒ³ãƒ•ã‚£
176ギュレーションから生成されるkernel_cfg.cの内
177容を識別し,自動的に静的な
178割込みハンドラを生成するユーティリティを用意している.このユーティリテ
179ィはutils/tlcs900-toshibaデレクトリィ中のtlcs900vec.exeコマンドで,プリ
180コンパイルされたkernel_cfg.cの内
181容を解析し割込みベクタテーブルファイル
182であるtlcs900vec.incを生成する.tlcs900vec.incはCPUのスタートアップモ
183ジュールであるstart.appにインクルードされており,コンフィギュレーション
184ファイルの割込みハンドラ設定をROM上に静的にé…
185ç½®ã™ã‚‹ï¼Ž
186なお,割込みハンドラが登録されなかった割込み要因には,未使用割込み処理
187_unused_interrupt が登録される.また,割込み要因番号1はスタートアップ
188処理 _start が登録される.
189DEF_INH で指定する割込みハンドラ番号(inhno)は,TMP91CY22 でのベクタ値
190を表し,そのデータ型(INHNO)はunsigned int型に定義されている.
191DEF_INH で,ベクタ値として有効でない値や,外部割込みに対応しない値を指
192定した場合の動作は保証されない.
193
194chg_ipm をサポートするために,割込みハンドラの出å…
195¥å£å‡¦ç†ãªã©ã«ã‚ªãƒ¼ãƒãƒ˜ãƒƒ
196ドを生じている.そこで,SUPPORT_CHG_IPM というマクロにより,これらのサー
197ビスコールをサポートするかどうかを切り替えられるようにしている.
198SUPPORT_CHG_IPM は,cpu_config.h の中でマクロ定義されている.
199
200TLCS900 依存の割込みマスクの変更・取得のためのサービスコールの仕様は以
201下の通りである.
202
203(1) chg_ipm 割込みマスクの変更
204
205【C言語API】
206 ER ercd = chg_ipm(IPM ipm);
207
208【パラメータ】
209 IPM ipm 設定すべき IPM の値
210
211【リターンパラメータ】
212 ER ercd エラーコード
213
214【エラーコード】
215 E_CTX コンテキストエラー
216 E_PAR パラメータエラー(ipm が不正)
217
218【機能】
219
220IPM(Interrupt Priority Mask)を ipm で指定された値に設定する.指定し
221た値が 0〜6 以外の場合,E_PARエラーとなる.IPM を 0〜6 に設定した場合
222でも,ディスパッチは禁止されない.また,設定した IPM の値は,ディスパッ
223チ後も引き継がれる.ディスパッチを禁止したい場合には,dis_dsp と併用す
224ればよい.
225
226なお,このサービスコールを用いて,IPM を 7 (すべての割込みを禁止)に
227設定することはできない.IPM を 7 にしたい場合には,loc_cpu を使うべき
228である.
229
230このサービスコールは,タスクコンテキストで CPUロック解除状æ…
231‹ã®æ™‚のみ呼
232び出すことができる.非タスクコンテキストや CPUロック状æ…
233‹ã§å‘¼ã³å‡ºã—た場
234合には,E_CTXエラーとなる.
235
236(2) get_ipm 割込みマスクの取得
237
238【C言語API】
239 ER ercd = get_ipm(IPM *p_ipm);
240
241【パラメータ】
242 なし
243
244【リターンパラメータ】
245 ER ercd エラーコード
246 IPM ipm 現在の IPM の値
247
248【エラーコード】
249 E_CTX コンテキストエラー
250
251【機能】
252
253現在の IPM(Interrupt Priority Mask)の値を読み出し,ipm に返す.
254
255このサービスコールは,タスクコンテキストで CPUロック解除状æ…
256‹ã®æ™‚のみ呼
257び出すことができる.非タスクコンテキストや CPUロック状æ…
258‹ã§å‘¼ã³å‡ºã—た場
259合には,E_CTXエラーとなる.
260
2612.3 CPU 例外管理機能と CPU 例外ハンドラ
262
263CPU例外として,ハードウェアノンマスカブル割込みとソフトウェアノンマスカ
264ブル割込みがある.ハードウェアノンマスカブル割込み中のリセットを除いて
265ハンドラの設定が可能である.
266CPU例外ハンドラは割込みハンドラと同様にCPUの設定位置に静的にé…
267ç½®ã•ã‚Œã‚‹
268.CPU例外ハンドラに関しても割込みハンドラと同様にtlcs900vec.exeを用いて,
269自動的に静的なCPU例外ハンドラを生成することができる.このデータは割込み
270ハンドラと同様にtlcs900vec.incに設定される.
271DEF_EXC で指定する割込みハンドラ番号(excno)は,M16Cでの例外ベクタ
272番号を表し,そのデータ型(EXCNO)は unsigned int型に定義されている.
273DEF_EXC で指定するCPU例外ハンドラ番号(excno)は,TMP91CY22 でのベクタ
274値を表し,そのデータ型(EXCNO)はunsigned int型に定義されている.
275DEF_EXC で,ベクタ値として有効でない値を指定した場合の動作は保証されな
276い.
277
2782.4 スタートアップモジュール
279
280TLCS900 依存のスタートアップモジュール (start.app) は次に示す初期化を
281実行した後,カーネル (kernel_start) を起動する.ただし, kernel_start
282から戻ってくることは想定していない.
283
284(1) 割込みの禁止
285
286(2) スタックポインタの設定
287
288(3) 割込みネストレジスタの初期化
289
290(4) hardware_init_hook の呼出し
291
292hardware_init_hook が 0 でない場合には,hardware_init_hook を呼び出す.
293hardware_init_hook は,カーネルが起動される前に行う必
294要があるターゲッ
295ト依存の初期化を行うために用意している.hardware_init_hook がどこでも
296定義されていない場合,リンカでこのシンボルを 0 に定義する(リンカスク
297リプト内
298に記述あり).
299
300(5) areaセクションと dataセクションの初期化
301
302areaセクションをゼロクリアする.また,dataセクションを初期化する.
303
304(6) software_init_hook の呼出し
305
306software_init_hook が 0 でない場合には,software_init_hook を呼び出す.
307software_init_hook は,カーネルが起動される前に行う必
308要があるソフトウェ
309ア環境(å…
310·ä½“的には,ライブラリ)依存の初期化を行うために用意している.
311software_init_hook がどこでも定義されていない場合,リンカでこのシンボ
312ルを 0 に定義する(リンカスクリプト内
313に記述あり).
314
315(7) カーネルの起動
316
317kernel_start へ分岐し,カーネルを起動する.kernel_start からリターンし
318てくることは想定していない.
319
3203 Zup-F16-ex システム依存部の機能
321
3223.1 システムクロックドライバ
323
324システムクロックドライバがisig_timを呼び出す周期は,sys_defs.h中の
325TIC_NUMEとTIC_DENOで定義されている(標準は 1ミリ秒周期).この定義を変
326更することで,isig_timを呼び出す周期を変更することができる.ただし,タ
327イマの精度が50μ秒程度であるため,50μ秒単位で端数になる値を設定した場
328合には,isig_timの呼出し周期に誤差が生じることになる.
329
3303.2 シリアルインタフェースドライバ
331
332Zup-F16拡張ボードではUART1のシリアルポートがボード上に実装
333されている.
334このためUART1をログ出力用に使用している.
335
3363.3 メモリマップ
337
338 0x000000 - 0x0003ff 内
339部IO(SFR)領域
340 0x001000 - 0x004bff 内
341蔵 RAM area data
342 0x004c00 - 0x004fff 内
343蔵 RAM stack
344 0x100000 - 0x200000 外部 RAM 未使用
345 0xfc0000 - 0xfffeff 内
346蔵 ROM code const
347 0xffff00 - 0xffffff 内
348蔵 ROM vecter
349
3504 開発
351
3524.1 開発環境の構築
353
354開発環境は,Windows XPを用いた.Zup-F16拡張ボードキットに同梱されている
355CD-ROM中の東芝セミコンダクタ社製の開発環境(TOSHIBA IDE)を使用して開発を
356行う.なお,カーネル部のライブラリ化は行っていない.
357
358 使用した開発環境のバージョン
359 TIDE 2.3.1.1
360
3614.1.1 ツールの構築
362
363utils/tlcs900-toshiba 上のツール tlcs900offset.exe と tlcs900vec.exe を
364構築します.
365utils/tlcs900-toshiba 内
366の Microsoft Visual Studio 2010 ワークスペース
367ファイルtlcs900_toshiba.sln を開きます.ビルドメニューにてそれぞれのプ
368ロジェクトをビルドし,tlcs900offset.exe と tlcs900vec.exe を生成します.
369必
370要に応じてビルドメニューのバッチビルドを使用するか,アクティブなプロ
371ジェクトの構成を使用してプロジェクトを変更し,リビルドを行ってください.
372
373なお、カーネル構築にあたっては、コンフィギュレータを使用します.
374コンフィギュレータのの構築方法は user.txt を参ç…
375§ã—てください.
376
3774.1.2 サンプルプロジェクトのビルド
378
379Zup-F16拡張ボードキットに同梱されているCD-ROM中の東芝セミコンダクタ社
380製の開発環境(TOSHIBA IDE)をインストールする.TOSHIBA IDE 起動し,
381tools/TLCS900-TOSHIBA内
382のTOSHIBA IDEワークスペースファイル
383TLCS900-TOSHIBA.tws を開きます.ビルドメニューよりリビルドを行います.
384アクティブなプロジェクトの構成によりtools/TLCS900-TOSHIBA/Zup-F16-ex
385内
386の release または debug 階層に,ロードモジュールファイル
387Zup-F16-ex.h20 が生成されます.
388
3894.1.3 フラッシュROMへの書込み
390
391Zup-F16拡張ボードキットに同梱されているCD-ROM中のタマデン工業株式会社
392製のローダプログラムを任意の階層にコピーする.ローダプログラムを起動
393する.この時使用するCOMポートの設定などをローダプログラムと同じ階層に
394ある設定ファイル FROMLoad.ini に設定する必
395要がある.パソコンとZup-F16
396拡張ボードをシリアルクロスケーブルで接続し,Zup-F16拡張ボードの sw1 を
397B 側に設定して,Zup-F16拡張ボードの電源をONにする.ローダプログラムの
398ファイルメニューにて,前章で生成したロードモジュールファイルを指定し,
399書込みボタンにてフラッシュROMへの書込みを行う.
400
4014.1.4 sample1の実行
402
403パソコンにシリアルターミナルを立ち上げてください.
404設定は以下の通りです.
405
406 ・ボーレイト:19200bps
407 ・データ長:8 ビット.
408 ・ストップビット:1 ビット
409 ・パリティ:なし
410
411Zup-F16拡張ボードの sw1 を B の反対側に設定して,Zup-F16拡張ボードの
412電源をONにすると sample1 が実行されます.sample1 の詳細は sample1.c
413ファイルのヘッダ部分を参ç…
414§ã—てください.
415
4164.2 デバッカ
417
418開発環境(TOSHIBA IDE)にはシミュレータデバッガが付属しているが,シリア
419ル通信のシミュレーション設定などを工夫しない限り,カーネル起動時のログ
420出力処理にて送信完了待
421ち状æ…
422‹ã®ã¾ã¾ç„¡é™ãƒ«ãƒ¼ãƒ—してしまう.このため,シリ
423アル通信機能を停止(少なくとも sys_config.c に実装
424されている sys_putc
425の処理実æ…
426‹ã¯ç„¡åŠ¹ï¼‰ã«ã—て動作させることで,動作が可能である.なお,これ
427はシミュレータデバッガでの動作を保障するものではない.
428
4295 その他
430
4315.1 ディレクトリ・ファイル構成
432
433(1) config/tlcs900-toshiba
434
435 api.h 非ライブラリィ化のための定義
436 cpu_config.c TLCAS900 CPU依存部の C 関数
437 cpu_config.h TLCAS900 CPU依存部のカーネル用定義
438 cpu_context.h TLCAS900 CPU依存部のコンテキスト操作
439 cpu_defs.h TLCAS900 CPU依存部のアプリケーション用定義
440 cpu_insn.h TLCAS900 CPU依存部の低レベル関数
441 cpu_rename.def カーネルの内
442部識別名のリネームとその解除の定義リスト
443 cpu_rename.h カーネルの内
444部識別名のリネームの定義
445 cpu_support.app TLCAS900 CPU依存部のアセンブラ関数
446 cpu_unrename.h カーネルの内
447部識別名のリネーム解除の定義
448 kernel_inline_defs.h カーネル内
449部の inline 関数定義
450 makeoffset.c offset.inc 生成情
451報関数
452 start.app スタートアップモジュール
453 tool_config.h 開発環境依存部のカーネル用定義
454 tool_defs.h 開発環境依存部のアプリケーション用定義
455
456(2) config/tlcs900-toshiba/zup_f16_ex
457
458 hw_serial.cfg Zup-F16-ex用SIOドライバのコンフィギュレーションファイル
459 hw_serial.h Zup-F16-ex用SIOドライバ
460 hw_timer.h Zup-F16-ex用タイマ操作ルーチン
461 sys_config.c Zup-F16-exシステム依存部の C 関数
462 sys_config.h Zup-F16-exシステム依存部のカーネル用定義
463 sys_defs.h Zup-F16-exシステム依存部のアプリケーション用定義
464 sys_rename.def カーネルの内
465部識別名のリネームとその解除の定義リスト
466 sys_rename.h カーネルの内
467部識別名のリネームの定義
468 sys_support.app Zup-F16-exシステム依存部のアセンブラ関数
469 sys_unrename.h カーネルの内
470部識別名のリネーム解除の定義
471 tmp91cy22.h 内
472蔵IO(SFR)および関連する定義
473 uart.c Zup-F16-ex用SIOドライバ実æ…
474‹ã® C 関数
475 uart.h Zup-F16-ex用SIOドライバ実æ…
476‹ã®å®šç¾©
477 zup_f16_ex.lcf Zup-F16-ex用リンカコマンドファイル
478
479(3) tools/TLCS900-TOSHIBA
480
481 TLCS900-TOSHIBA.tws 開発環境用ワークスペースファイル
482
483(4) utils/tlcs900-toshiba
484
485 tlcs900_toshiba.dsw ユーティリティ開発用ワークスペースファイル
486 本階層の詳細は utils/tlcs900-toshiba にある readme.txt を参ç…
487§ï¼Ž
488
489以上
490
Note: See TracBrowser for help on using the repository browser.