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

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

initial

File size: 14.3 KB
Line 
1
2 = TOPPERS/JSPカーネル ユーザズマニュアル =
3 (NEC V850ES/KJ1+ プロセッサ依存部)
4 Application Corp. : TK-850/KJ1+, TK-850/SG2
5
6 (Release 1.4.3 対応,2007)
7
8------------------------------------------------------------------------
9 TOPPERS/JSP Kernel
10 Toyohashi Open Platform for Embedded Real-Time Systems/
11 Just Standard Profile Kernel
12
13 Copyright (C) 2000-2004 by Embedded and Real-Time Systems Laboratory
14 Toyohashi Univ. of Technology, JAPAN
15 Copyright (C) 2005 by Freelines CO.,Ltd
16
17 上記著作権者
18は,以下の (1)〜(4) の条件か,Free Software Foundation
19 によってå…
20¬è¡¨ã•ã‚Œã¦ã„ã‚‹ GNU General Public License の Version 2 に記
21 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア
22 を改変したものを含む.以下同じ)を使用・複製・改変・再é…
23å¸ƒï¼ˆä»¥ä¸‹ï¼Œ
24 利用と呼ぶ)することを無償で許諾する.
25 (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
26 権表示,この利用条件および下記の無保証規定が,そのままの形でソー
27 スコード中に含まれていること.
28 (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
29 用できる形で再é…
30å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é…
31å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
32 者
33マニュアルなど)に,上記の著作権表示,この利用条件および下記
34 の無保証規定を掲載すること.
35 (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
36 用できない形で再é…
37å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
38 と.
39 (a) 再é…
40å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€…
41マニュアルなど)に,上記の著
42 作権表示,この利用条件および下記の無保証規定を掲載すること.
43 (b) 再é…
44å¸ƒã®å½¢æ…
45‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
46 報告すること.
47 (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
48 害からも,上記著作権者
49およびTOPPERSプロジェクトをå…
50è²¬ã™ã‚‹ã“と.
51
52 本ソフトウェアは,無保証で提供されているものである.上記著作権者
53お
54 よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
55 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
56 接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
57
58 @(#) $Id: v850.txt,v 1.16 2007/05/21 01:28:08 honda Exp $
59------------------------------------------------------------------------
60
61
62このドキュメントでは,TOPPERS/JSP V850版について解説する.
63
641. V850 ターゲット依存部の概要
65
661.1 ターゲットシステムと開発環境
67
68V850環境の実行環境としては,次のものを想定している.
69
70 ・Application Corp. TK-850/KJ1+, TK-850/SG2
71
72開発環境として次のものを使用した.
73 ・Microsoft Windows 2000 Proffesional + CygWin 1.3.12-2
74 ・binutils 2.11-2 (v850-nec-elf)
75 ・gcc 2.95.3 (v850-nec-elf)
76 ・newlib 1.9.0 (v850-nec-elf)
77 ・ICE IE-V850E1-CD-NW
78
79 newlibは、ソースからビルドする場合、コンパイルオプション"-mno-app-regs"と
80 "-msmall-sld"がmakeエラーを起こす。newlibのmakefileからこの2つのオプション
81 を削除することでmakeは完了する。
82
83 ICEを使用したが、gccでリンクされたelfは、このICEではソースデバックが
84 できない.(シンボルのみ読み込める)
85
861.2 サポートする機能の概要
87
88 ・vxget_tim
89 V850環境ではvxget_timをサポートする.
90 ただし内
91容はタイマカウンタを返すのみである.
92
93 ・多重割込み
94 V850環境では割込みハンドラ起動中の多重割り込みを許可する.
95
961.3 TOPPERS/JSP V850環境の制限事項
97
98
99 ・chg_ixx
100 V850環境では割込み優å…
101ˆåº¦ã®å¤‰æ›´ã¯ã‚µãƒãƒ¼ãƒˆå¤–である
102
103 ・ena_int, dis_int
104 V850環境では割込み許可・禁止はサポート外である.
105 ただしloc_cpuとunl_cpuは同等の操作を行う.
106
107 ・CPU例外と割り込みは同一
108 V850環境ではdef_excとdef_intは同様の処理を行う.
109
110
1112.V850環境に依存した機能
112
113この節では,カーネルおよびシステムサービスの機能の中で,V850環境依存の部分に
114ついて解説する.
115
1162.1 データ型
117
118int型 および unsigned int型のサイズは32ビットである.
119
120割込み優å…
121ˆåº¦ã‚’表現する型 IPR は符号なし8ビット整数である.
122
123
1243.システムに依存した機能
125
1263.1 メモリマップ
127
128・TK-850/KJ1+
129 0x00000000 - 0x000003CF : ベクタテーブル
130 0x000003D0 - : プログラムコード (内
131蔵FlashROM)
132 0x03FFB000 - : プログラムデータ (内
133蔵RAM)
134 - 0x03FFEFFF : システムスタック (内
135蔵RAM)
136
137・TK-850/SG2
138 0x00000000 - 0x000003CF : ベクタテーブル
139 0x000003D0 - : プログラムコード (内
140蔵FlashROM)
141 0x03FF7000 - : プログラムデータ (内
142蔵RAM)
143 - 0x03FFEFFF : システムスタック (内
144蔵RAM)
145
146スタック領域は内
147蔵RAM領域の末尾からアドレス値が減少する方向へ進む.
148データ領域は所定の領域からアドレス値が増加する方向へ確保される.
149
1503.2 他のシステム/チップへのポーティング
151
152ポーティング作業は次のステップからなる.
153 ・システムレジスタの設定
154 ・タイマーの設定
155 ・シリアルポートの設定
156 ・RAM開始番地の設定
157 ・イニシャルスタックポインタの設定
158
1593.2.1 メモリマップドレジスタのアドレス値設定
160
161TOPPERS/JSP V850環境では内
162蔵の周辺デバイスへアクセスする前に、いくつかの
163レジスタを設定している。CPUクロックの速度に応じた内
164部デバイスのウェイトを
165制御するレジスタ、ウォッチドックタイマーをOFFにする、外部バスのウェイト設定
166などの操作である.
167
1683.2.2 タイマー値の設定
169
170TOPPERS/JSP V850ES/KJ1+環境ではTM00を使用しており、標準で1msごとに割込みを発生させている.
171V850ES/SG2環境ではTP0を使用している.
172
173割込みを発生させるまでの時間はタイマコンペアレジスタの値をマニュアルに
174したがって調整することで帰ることができる.(下記記述はKJ1+用だがSG2も同様である)
175
176config/v850/tk850/tk850_kj1/hw_timer.h:hw_timer_initialize()
177Inline void
178hw_timer_initialize()
179{
180 /* タイマ初期化 */
181 sil_wrb_mem((VP)PRM00, 0); /* fx/2 */
182 sil_wrh_mem((VP)CR000, TIMER_COMPAREVALUE);
183
184またタイムティック自体を修正する場合はsys_defs.h:71,72のTIC_NUMEおよび
185TIC_DENOを修正する.それぞれは次式に従う.
186
187タイムティック(ms) = TIC_NUME(ms) / TIC_DENO(ms)
188
1893.2.3 RAM開始番地の設定
190
191config/v850/tk850_kj1/v850elf.ldのMEMORY部の内
192容を修正することで、メモリ
193のサイズおよび位置を変えることができる。また、各セクションの末尾にある
194"> INTROM" または "> INTRAM、é…
195ç½®ã™ã‚‹ç©ºé–“を変えることも可能である。(SG2も同様)
196
1973.2.4 イニシャルスタックポインタの設定
198
199起動時に設定される初期スタックポインタの番地はconfig/v850/tk850_kj1/sys_config.h:70
200のSTACKTOPに記述されている.(SG2も同様)
201このSTACKTOPには4バイトアラインされた値を格納する.
202
203tk850_kj1/sys_config.h(70):
204 #define STACKTOP (IRAM_TOP+IRAM_SIZE) /* 非タスクコンテキスト用のスタックの初期値 */
205
206スタックはプリデクリメントスタックであるため,STACKTOPで示されたアドレス
207には何も格納されないことに注意されたい.
208
2093.2.5 その他の設定
210
211 ・タイマ割り込みの番号
212 config/v850/tk850_kj1/hw_timer.h:61 INHNO_TIMER宣言
213 タイマが発生する割込みの番号(SG2も同様)
214
215
2164.開発環境の構築
217
218開発環境の構築方法については,GNU開発環境構築マニュアルを参ç…
219§ã™ã‚‹ã“と.
220
221ICEにIE-V850E1-CD-NWを使用する場合にはMakefileを以下のように修正する必
222要がある.
223
224DBGENVのコメントアウト
225#
226# 実行環境の定義(どれにも該当しない場合は,すべてコメントアウトする)
227# (ターゲット依存に上書きされる場合がある)
228#
229#DBGENV := GDB_STUB
230
231出力する実行モジュールファイルを.outに指定
232#
233# ターゲットファイル(複数を同時に選択してはならない)
234#
235#all: $(OBJFILE)
236all: $(OBJNAME).out
237#all: $(OBJNAME).bin
238#all: $(OBJNAME).srec
239
240outファイルを出力するための指定
241#
242# outファイルのためのファイル
243#
244$(OBJNAME).out: $(OBJFILE)
245 cp $(OBJFILE) $(OBJNAME).out
246
247
2485.その他
249
2505.1 ディレクトリ・ファイル構成
251
252TOPPERS/JSP V850依存部 構成ファイル ツリー
253
254[jsp]
255 +- [doc]
256 | +- v850.txt : このファイル
257 +- [config]
258 +- [v850]
259 +- cpu_config.h : プロセッサ依存モジュール
260 +- cpu_config.c : プロセッサ依存モジュール
261 +- cpu_context.h : タスクコンテキスト操作ルーチン
262 +- cpu_defs.h : CPU依存情
263報定義ファイル
264 +- cpu_rename.def : カーネルの内
265部識別名のリネームとその解除の定義リスト
266 +- cpu_rename.h : カーネルの内
267部識別名のリネームの定義
268 +- cpu_support.S : CPU依存アセンブラコーディング部
269 +- cpu_unrename.h : カーネルの内
270部識別名のリネーム解除の定義
271 +- Makefile.config : CPU依存Makefile
272 +- makeoffset.c : 構造体オフセット位置取得用
273 +- start.S : スタートアップ / 割込みハンドラ
274 +- tool_config.h : プロセッサの開発環境依存モジュール定義
275 +- tool_defs.h : プロセッサの開発環境依存定義
276 +- v850asm.inc : アセンブラ用インクルードファイル
277 +- [tk850_kj1] : KJ1+用依存部
278 +- Makefile.config : システム依存Makefile
279 +- hw_timer.h : タイマ操作 (V850ES内
280蔵タイマTM00)
281 +- hw_serial.h : シリアル操作 (V850ES内
282蔵非同期SIO0)
283 +- hw_serial.cfg : シリアルのコンフィギュレーションファイル
284 +- sys_config.h : システム依存モジュール
285 +- sys_config.c : システム依存モジュール
286 +- sys_defs.h : システム依存定義ファイル
287 +- sys_support.S : システム依存アセンブラ部
288 +- sys_rename.def : カーネルの内
289部識別名のリネームとその解除の定義リスト
290 +- sys_rename.h : カーネルの内
291部識別名のリネームの定義
292 +- sys_unrename.h : カーネルの内
293部識別名のリネーム解除の定義
294 +- v850elf.ld : リンカスクリプト
295 +- v850es_kj1.h : V850ES/KJ1+のレジスタ定義
296 +- [tk850_sg2] : SG2用依存部
297 +- Makefile.config : システム依存Makefile
298 +- hw_timer.h : タイマ操作 (V850ES内
299蔵タイマTP0)
300 +- hw_serial.h : シリアル操作 (V850ES内
301蔵非同期SIO0)
302 +- hw_serial.cfg : シリアルのコンフィギュレーションファイル
303 +- sys_config.h : システム依存モジュール
304 +- sys_config.c : システム依存モジュール
305 +- sys_defs.h : システム依存定義ファイル
306 +- sys_support.S : システム依存アセンブラ部
307 +- sys_rename.def : カーネルの内
308部識別名のリネームとその解除の定義リスト
309 +- sys_rename.h : カーネルの内
310部識別名のリネームの定義
311 +- sys_unrename.h : カーネルの内
312部識別名のリネーム解除の定義
313 +- v850elf.ld : リンカスクリプト
314 +- v850es_sg2.h : V850ES/SG2のレジスタ定義
315
316
3176.その他
318
319 ・この開発環境では、リンクの後に実行されるコンフィグレーションチェッカー(chk.exe)で
320 エラーが発生する.無視してもかまわないし、ç…
321©ã‚ã—いならMakefileから削除しても支障ない.
322
323
3247.バージョン履歴
325 2007年 05月14日 Release 1.4.3
326 ・rel 1.4.3対応
327 ・TK-850/KJ1+のシリアルドライバのバグ(受信中状æ…
328‹ãŒè§£é™¤ã•ã‚Œãªã„)を修正
329
330 2006年 04月10日 Release 1.4.2
331 ・割り込み処理、ディスパッチ処理部(cpu_supprt.S)をå…
332¨é¢è¦‹ç›´ã—.
333 ・TK-850/SG2対応を追加
334
335 2005年 11月18日 Release 1.4.2
336 ・renameの重複の排除.
337 ・引数なし関数の宣言にvoidをå…
338¥ã‚ŒãŸï¼Ž
339
340 2005年 8月2日 Release 1.4.2
341 ・rel 1.4.2へ合わせこみ.
342
343 2005年 5月17日 Release 1.4.1
344 ・rel 1.3から1.4.1へ合わせこみ.ターゲットを株)アプリケーションの
345 TK-850/KJ1+に変更.ソースもドキュメントも更新.1.4.1ではMidas Lab製
346 のRTE-V850E/MA1-CBのサポートを外した.
347
348 2002年 4月 6日 Release 1.3
349 ・rel 1.3にあわせ、ドキュメントの一部に間違いがったのを修正
350
351 2001年11月15日 Release 1.2
352 ・RTE-V850E/MA1-CBのサポート
353
354 2001年 2月23日 Release 1.1
355 TOPPERS/JSP release 1.1 に合わせていろいろ修正
356 ・gcc -ffix-REGの存在を知り、この文章とMakefileを修正
357
358 2000年11月27日 Release 1.0
359 ・ドキュメント完成
360 ・割込み前後処理ルーチンを改良 レジスタ退避を2回に分ける
361 ・ディスパッチャが次タスクなし状æ…
362‹æ™‚に前のタスクスタックを
363 利用してしまうバグを修正
364
365 2000年11月19日 Release 0.9
366 ・最初のリリース
Note: See TracBrowser for help on using the repository browser.