source: ssp_qb_r5f100le_cs/trunk/target/qb_r5f100le_cs/target_user.txt

Last change on this file was 99, checked in by nmir-saito, 9 years ago

target_user.txt の修正.

  • Property svn:mime-type set to text/plain; charset=shift_jis
File size: 9.1 KB
Line 
1=====================================================================
2 QB-R5F100LE-TB ターゲット依存部
3 Last Modified: '15/6/2
4=====================================================================
5
6○概要
7
8QB-R5F100LE-TBターゲット依存部は,プロセッサに RL78/G13 を搭載した,
9(株)ルネサスエレクトロニクス製の QB-R5F100LE-TB ボードをサポートしている.
10http://japan.renesas.com/products/tools/introductory_tools/cpu_board/qb_r5f100le_tb/index.jsp
11
12○カーネルの使用リソース
13
14カーネルは以下のリソースを使用する.
15
16・ROM
17 コード,定数,初期値,割込みベクタを配置する.
18 使用量は使用するAPIの数に依存する.
19
20・RAM
21 データ,スタックを配置する.
22 使用量はオブジェクト数に依存する.
23
24・タイマ
25 カーネル内部のティックの生成にタイマ・アレイ・ユニットの
26 ユニット0 チャネル0 を使用する.
27 タイムティックの周期及びシステム時刻の精度は共に 1ms とする.
28
29・シリアル
30 シリアルドライバに UART0(シリアル・アレイユニットのユニット0
31 チャネル{0,1}) を使用する.
32 プロセッサの UART0 送受信ポートはボード CN2 の 12ピン(送信)
33 および13ピン(受信)と結線されている.このピンをUARTドライバICや
34 USBシリアル変換モジュール等を利用してPCと接続することで出力を
35 確認することができる.
36
37○他のターゲットへの移植
38
39ターゲット依存部で使用するタイマおよびシリアルは,RL78/G13 の
40内蔵機能のみを使用するため,RL78 の同様のプロセッサを用いた環境には
41容易にポーティングが可能である.ポーティングに関しては,以下の初期化ルーチンに
42ターゲット毎の初期化を追加すればよい.
43
44 ・target_initialize() : target_config.c
45 ターゲット依存部の初期化(C言語)
46 ・_hardware_init_hook : target_support.asm
47 低レベルのターゲット依存の初期化
48 スタートアップモジュールの中で,メモリの初期化の前に呼び出される
49 既定ではスタートアップモジュールから利用されておらず,
50 コメントアウトされている.
51
52
53○デバッグ環境
54
55デバッグ環境として,E1 デバッガの使用を想定している.
56
57
58○コンパイラ
59
60以下の開発環境を用いて動作確認を行った.
61
62処理系
63 ルネサステクノロジ製 コンパイラ CA78K0R V1.70
64
65統合開発環境
66 ルネサステクノロジ製 統合開発環境 Cube Suite+ V2.02.00
67
68
69○コンソール出力
70
71コンソール出力には,UART0を用いる.通信フォーマットは以下の通り.
72
73 ・19200bps, Data 8bit, Parity none, Stop 1bit, Flow control none
74
75
76○アドレスマッピング (※1)
77
78 0x00000 - 0x0007F ベクタテーブル 128バイト
79 0x00080 - 0x000Bf callt関数のテーブル用セグメント 64バイト
80 0x000C0 - 0x000C3 オプションバイト領域 4バイト
81 0x000C4 - 0x000CD セキュリティID 10バイト
82 0x000CE - 0x000D7 オンチップデバッグ機能の使用領域 10バイト
83 0x000D8 - 0x0ffff 内蔵FlashROM 約63.8KB
84 @@CODE ; コード部用セグメント(near)
85 @@BASE ; callt関数・割り込み関数用セグメント
86 @@LCODE ; ライブラリ・コード部用セグメント(near)
87 @@LBASE ; ライブラリ・callt関数用セグメント
88 @@CNST ; 定数データ(near)
89 @@R_INIT ; near初期化データ用セグメント(初期値あり)
90 @@R_INIS ; 初期化データ用セグメント(初期値ありsreg変数)
91 @@CODEL ; コード部用セグメント(far)
92 @@LCODEL ; ライブラリ・コード部用セグメント(far)
93 @@CNSTL ; ROMデータ(far)
94 @@RLINIT ; far初期化データ用セグメント(初期値あり)
95
96 0xF0000 - 0xF07FF 2nd SFR領域 2KB
97
98 0xF1000 - 0xF1FFF データフラッシュメモリ
99 0xF2000 - 0xFEEFF ミラー領域(0x2000-0xEEFFと同じ値)
100 0xFEF00 - 0xFFEDF 内蔵RAM 3.9KB (※2)
101 @@BITS ; boolean型変数, bit型変数用セグメント, BSEG領域
102 @@INIT ; データ領域用セグメント(初期値あり, near配置)
103 @@DATA ; データ領域用セグメント(初期値なし, near配置)
104 @@INIS ; データ領域用セグメント(初期値あり sreg 変数)
105 @@DATS ; データ領域用セグメント(初期値なし sreg 変数)
106 @@INITL ; データ領域用セグメント(初期値あり, far配置)
107 @@DATAL ; データ領域用セグメント(初期値なし, far配置)
108 @@CODER ; RAM配置 コード部用セグメント
109 @@LCODER ; RAM配置 ライブラリ・コード用セグメント
110 @@CNSTR ; RAM配置 ROMデータ用セグメント(near)
111 @@CNSTLR ; RAM配置 ROMデータ用セグメント(far)
112 0xFFEE0 - 0xFFEFF 汎用レジスタ 32バイト (※2)
113 0xFFF00 - 0xFFFFF SFR領域 (※2)
114
115(※1) @@で始まるセグメントはコンパイルにより生成される.
116 「CubeSuite+ V2.01.00 統合開発環境ユーザーズマニュアル RL78,78K0Rコーディング編」の
117 「3. 5 セグメント名一覧」を元にした.
118 http://documentation.renesas.com/doc/products/tool/doc/r20ut2774jj0100_qscd78.pdf
119
120(※2) ショート・ダイレクト・アドレッシング領域(0xFFE20-0xFFF1F) と一部重複する
121
122○各種設定の変更
123
124幾つかのパラメータは変更可能になっている.設定ファイル毎に設定可能項目
125は次のようになっている.
126
127●target.tfの設定項目
128
129INTNO_FIX_KERNEL
130 固定的にカーネル管理の割込みとする割込み番号
131INTNO_FIX_NONKERNEL
132 固定的にカーネル管理外の割込みとする割込み番号
133INHNO_FIX_KERNEL
134 固定的にカーネル管理の割込みとする割込みハンドラ番号
135INHNO_FIX_NONKERNEL
136 固定的にカーネル管理外の割込みとする割込みハンドラ番号
137
138
139●target_config.h の設定項目
140
141・DEFAULT_ISTKSZ
142 非タスクコンテキスト用スタックサイズの規定値
143
144●target_syssvc.h の設定項目
145
146・BPS_SETTING
147 コンソールに使用するシリアルポートのボーレート(規定では 19200)
148 ※ 現状ではこのマクロは使用していない.
149
150●CPUロックで用いる割込み優先度TMIN_INTPRIの定義
151
152・C言語用の定義:
153 プロセッサに既定の定義位置:prc_kernel.h
154 ターゲット依存で定義する場合の定義位置:target_config.h(現状では未定義)
155
156
157○サンプルプロジェクトの実行手順
158 開発環境がインストールされていることを前提とする.
159 以下の説明ではパスの区切り文字としてスラッシュ '/' を使用する.
160
1610. ZIP圧縮されているファイルを適当な場所へ展開する.
162 展開先のパスには日本語文字や空白などを含まない方がよい.
163
1641. ワークスペースファイルを開く
165 <展開先フォルダ>/ssp/target/qb_r5c100le_cs/ssp_rl78/ssp_rl78.mtpj をダブルクリックする.
166 CubeSuite+ がインストールされていれば,統合開発環境が起動する.
167
1682. sample1 プロジェクトをアクティブプロジェクトにする
169 既定の設定ではすでにアクティブになっている.
170
1713. メニュー「ビルド→リビルドプロジェクト」を選択して,sample1プロジェクトをビルドする
172 依存関係の設定により先に libkernel, sys-cfg プロジェクトのビルドが行われ,
173 その後,sample1 プロジェクトのビルドが実施される.
174 そして,アプリケーション(sample1),システムライブラリ,システムサービス,
175 及びカーネルがリンクされ,実行ファイルが生成される.
176
1774. プログラムの実行を確認する.
178
179 サンプルはシリアルポートの機能を前提としている.プロセッサの
180 UART0 ポートがボードの CN2 12番ピン(TxD0),13番ピン(RxD0)に結線されており,
181 このピンおよび GNDのピンをUARTドライバICあるいはUSB-シリアル変換モジュール等を
182 利用してPCに接続すると,シリアルからの出力を確認することができる.
183
184 次節では,E1 を利用したフラッシュへのプログラム書き込み,及び,実行の
185 手順について記述する.
186
1875. フラッシュROM へのプログラム書き込み
188
189(1) E1をPCおよびターゲットボードに接続する.
190(2) メニュー「デバッグ→デバッグツールへダウンロード」を選択する.
191 失敗する場合,以下を確認する.
192 ・E1のドライバがインストールされているかどうか.
193 ・E1とボードの接続が正しいかどうか.ずれていないか,向きは正しいか.
194 ・ターゲットボードに電源が供給されているかどうか.
195 既定の設定では供給しない設定となっている.
196 E1から電源供給する場合は次の手順で設定変更する.
197 (2-1)「プロジェクト・ツリー」ウィンドウの「ssp_rl78(プロジェクト)
198 --> sample1(サブプロジェクト) --> RL78_E1(Serial)」項目を
199 右クリックし,コンテキストメニューを表示する.
200 (2-2) コンテキストメニューから「プロパティ」を選択する.
201 (2-3) 「プロパティ」ウィンドウから「接続用設定」タブを選択する.
202 (2-4) 「ターゲットボードとの接続」の項目内にある,
203 「エミュレータから電源供給する(最大200mA)」を「はい」にする.
204(3) ダウンロードが完了すると,ターゲットは sta_ker の先頭で実行停止する.
205(4) メニュー「デバッグ→実行」を選択すると,プログラムの実行を開始する.
206
207○注意事項
208・リンク順序について
209 スタートアップモジュール(start.asm)にてRAMの初期化処理を行うためには
210 セクションの先頭アドレスおよび最終アドレスを知る必要がある.
211 それらのアドレスを取得するため segment_s.asm および segment_e.asm を
212 それぞれ実行モジュールの先頭と末尾にリンクする必要がある.
213
214 segment_s.asm は sample1サブプロジェクトのリンク順序設定で最初にリンク
215 されるよう設定されている.一方で segment_e.asm は libkernel.lib の末尾に
216 リンクされるよう設定されている.
217
218 これは,sample1サブプロジェクトで libkernel.lib のリンク順序を
219 変更することができないため,一時的措置としてこのようにしている.
220
221 今後において,別ライブラリを追加的にリンクする場合,
222 libkernel.lib が末尾にリンクされるようリンク順序の設定を行う必要がある.
223 末尾に配置されない場合は,変数セクションの末尾アドレスを正しく取得できず,
224 RAMの初期化が正しく行われない.
225
226
227○変更履歴
2282014/08/21 ・新規作成
2292015/6/2 ・SSP-1.3.0対応
230
Note: See TracBrowser for help on using the repository browser.