source: asp3_wo_tecs/trunk/target/ct11mpcore_gcc/target_user.txt@ 306

Last change on this file since 306 was 306, checked in by ertl-honda, 7 years ago

3.1.0を反映

File size: 14.1 KB
RevLine 
[302]1
[306]2 TOPPERS/ASP3カーネル
3 CT11MPCore依存部 ユーザーズマニュアル
[302]4
[306]5 対応バージョン: Release 3.1
6 最終更新: 2016年1月30日
[302]7
[306]8このドキュメントは,TOPPERS/ASP3カーネルのCT11MPCoreターゲット依存部を
9使用するために必
[302]10要な事項
11を説明するものである.
12
13----------------------------------------------------------------------
14 TOPPERS/ASP Kernel
15 Toyohashi Open Platform for Embedded Real-Time Systems/
[306]16 Advanced Standard Profile Kernel
[302]17
18 Copyright (C) 2008-2016 by Embedded and Real-Time Systems Laboratory
19 Graduate School of Information Science, Nagoya Univ., JAPAN
20
21 上記著作権者
22は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
23 ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
24 変・再é…
25å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
26 (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
27 権表示,この利用条件および下記の無保証規定が,そのままの形でソー
28 スコード中に含まれていること.
29 (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
30 用できる形で再é…
31å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é…
32å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
33 者
34マニュアルなど)に,上記の著作権表示,この利用条件および下記
35 の無保証規定を掲載すること.
36 (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
37 用できない形で再é…
38å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
39 と.
40 (a) 再é…
41å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€…
42マニュアルなど)に,上記の著
43 作権表示,この利用条件および下記の無保証規定を掲載すること.
44 (b) 再é…
45å¸ƒã®å½¢æ…
46‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
47 報告すること.
[306]48 (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
[302]49 害からも,上記著作権者
50およびTOPPERSプロジェクトをå…
51è²¬ã™ã‚‹ã“と.
52 また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
[306]53 由に基づく請求からも,上記著作権者
[302]54およびTOPPERSプロジェクトを
55 å…
56è²¬ã™ã‚‹ã“と.
57
58 本ソフトウェアは,無保証で提供されているものである.上記著作権者
59お
60 よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
61 に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
62 アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
63 の責任を負わない.
64
65 $Id: target_user.txt 752 2016-05-14 15:06:22Z ertl-hiro $
66----------------------------------------------------------------------
67
68○目次
69
701.CT11MPCoreターゲット依存部の概要
71 1.1 対応するターゲットシステムとターゲット略称
72 1.2 ターゲット依存部の構成
73 1.3 依存している個別パッケージのバージョン番号
[306]74 1.4 開発環境と動作確認条件
[302]75 1.5 メモリマップ
[306]762.ターゲット定義事項
77の規定
[302]78 2.1 割込み優å…
79ˆåº¦ã¨å‰²è¾¼ã¿ç•ªå·
80 2.2 オーバランハンドラ機能拡張のサポートに関する規定
813.ドライバ関連の情
82å ±
83 3.1 タイマドライバ
84 3.2 シリアルインタフェースドライバ
85 3.3 システムログの低レベル出力
864.システム構築手順と実行手順
[306]87 4.1 システム構築
[302]88 4.2 デバッガの使用方法
895.リファレンス
90 5.1 ディレクトリ構成・ファイル構成
91 5.2 バージョン履歴
[306]92
[302]93
941.CT11MPCoreターゲット依存部の概要
95
96CT11MPCoreターゲット依存部は,TOPPERS/ASP3カーネルを,ARM11 MPCoreのテ
97ストチップを搭載したCoreTile(CT11MPCore)を,RealView Emulation
98Baseboard上に実装
99したターゲットシステムで動作させる環境を構築するための
100ものである.
101
102また,実ターゲットシステムに代えて,Qemuを用いて実行することもできる.
103Qemuで実行する場合には,コンパイルオプションに「-DTOPPERS_USE_QEMU」を
104追加する必
[306]105要がある.
[302]106
1071.1 対応するターゲットシステムとターゲット略称
108
109CT11MPCoreターゲット依存部の動作確認は,Qemuを用いて行っている.動作確
[306]110認を行ったQemuのバージョンは次の通り.
[302]111
112 qemu-system-arm version 2.1.0
113
114Qemu上でASP3カーネルを実行するためのコマンドは次の通り.
[306]115
[302]116 qemu-system-arm -M realview-eb-mpcore -semihosting -m 128M -smp 1 \
[306]117 -serial stdio -kernel asp
[302]118
119また,ターゲット略称等は次の通り.
120
[306]121 ターゲット略称:ct11mpcore_gcc
122 システム略称:ct11mpcore
[302]123 開発環境略称:gcc
124
1251.2 ターゲット依存部の構成
126
127CT11MPCoreターゲット依存部の使用するターゲット依存部(targetディレクト
128リ)およびターゲット依存部のå…
129±é€šéƒ¨ï¼ˆarchディレクトリ)のディレクトリは
130次の通り.
131
132 target/
133 ct11mpcore_gcc/ CT11MPCoreターゲット依存部
134
135 arch/
136 arm_gcc/common/ ARMコア依存部
137 arm_gcc/mpcore/ MPCoreチップ依存部
138 arm_gcc/doc/ ARM依存部に関するドキュメント
139 gcc/ GCC開発環境依存部
140 tracelog/ トレースログ記録のサンプルコード
141
1421.3 依存している個別パッケージのバージョン番号
143
144CT11MPCoreターゲット依存部(バージョン 3.0.0)の個別パッケージが依存し
145ている個別パッケージと,動作確認を行ったバージョンは次の通り.
146
147 個別パッケージの名称 バージョン 個別パッケージファイル名
148 ------------------------------------------------------------------
149 ターゲット非依存部 3.0.0 asp3-3.0.0.tar.gz
150
1511.4 開発環境と動作確認条件
152
153開発環境として,以下のURLからプリビルド版をダウンロードすることができる
154GCC ARM Embeddedを用いる.
155
156 https://launchpad.net/gcc-arm-embedded/
157
158動作確認を行ったバージョンは次の通り.
159
160 gcc: version 4.8.3 20140228
161 gdb: 7.6.0.20140228-cvs
[306]162 binutils(objcopy,objdump):2.23.2.20140228
163
1641.5 メモリマップ
165
[302]166以下のメモリマップを想定している(Qemuの場合).
[306]167
168 0x00000000 - 0x00100000:ベクター領域(1MB)
169 0x00100000 - 0x0FFFFFFF:DRAM(255MB)
[302]170 0x10000000 - 0x100FFFFF:Emulation Baseboard上のリソース(1MB)
171 0x10100000 - 0x101FFFFF:Private Memory Region(1MB)
[306]172 0x48000000 - 0x4BFFFFFF:SRAM(4MB)
[302]173
174MPCoreのPrivate Memory Regionのå…
175ˆé ­ç•ªåœ°ã¯ï¼Œã‚³ã‚¢å¤–部から設定可能となって
176いる.QEMUでは,この領域のå…
177ˆé ­ç•ªåœ°ã¯ï¼Œ0x10100000に設定されている.実際
178のターゲットシステムでは,ボード上で設定できるようになっており,デフォ
179ルトでは0x1f000000に設定されている.
180
181メモリマップを変更する場合には,Makefile.targetとtarget_kernel_impl.cを
182修正する必
183要がある.
184
185
1862.ターゲット定義事項
187の規定
188
189CT11MPCoreターゲット依存部は,ARMコア依存部とMPCoreチップ依存部を用いて
190実装
191されている.ARMコア依存部およびMPCoreチップ依存部におけるターゲット
192定義事項
193の規定については,「ARM依存部 ユーザーズマニュアル」を参ç…
194§ã™ã‚‹
195こと.
196
197以下では,ARMコア依存部およびMPCoreチップ依存部と異なる,ないしは,それ
198らで規定されていない事項
199について説明する.
200
2012.1 割込み優å…
202ˆåº¦ã¨å‰²è¾¼ã¿ç•ªå·
203
204CT11MPCoreの割込みコントローラ(Distributed Interrupt Controller)は,
20516レベルの割込み優å…
206ˆåº¦ã‚’サポートしている.そのため,割込み優å…
207ˆåº¦ã®æœ€å°
208値(最高値)は-15,割込み優å…
209ˆåº¦ã®æœ€å¤§å€¤ï¼ˆæœ€ä½Žå€¤ï¼‰ã¯-1である.
[306]210
211CT11MPCoreの割込みコントローラがサポートする割込みと,その割込み番号は
212次の通り.
213
[302]214 プロセッサ間割込み 0〜15
215 プライベート割込み 16〜31
216 プライベートタイマ 29
217 プライベートウォッチドッグ 30
218 レガシーnIRQ 31
219 ハードウェア割込み 32〜63
220 チップ外からの割込み 32〜47
221 ACCI 32
222 EB_TIMER0/1 33
[306]223 EB_TIMER2/3 34
[302]224 USB 35
[306]225 EB_UART0 36
226 EB_UART1 37
[302]227 …中略…
228 EB_GIC1_nIRQ 42
229 EB_GIC2_nIRQ 43
230 EB_GIC1_nFIQ 44
231 EB_GIC2_nFIQ 45
232 …中略…
[306]233 チップ内
[302]234の割込み 48〜63
235
2362.2 オーバランハンドラ機能拡張のサポートに関する規定
237
238オーバランハンドラ機能拡張パッケージをサポートしている(ただし,コア2と
239コア3に対してサポートしていない).
[306]240
241
2423.ドライバ関連の情
243å ±
[302]244
2453.1 タイマドライバ
246
247高分解能タイマは,MPCoreがコア毎に持つプライベートタイマとプライベート
248ウォッチドッグを使用して実現している.å…
249·ä½“的には,ウォッチドッグを現在
250時刻の管理のために用い,タイマを相対時間割込みの発生のために用いている.
251そのため,これらのタイマを別の目的で使用することはできない.
252
253また,オーバランハンドラ機能をサポートする場合には,RealView Emulation
254Baseboard上のFPGAに実装
255されているタイマの内
256の1つ(どの1つを用いるかは,
257コア毎に異なる)を用いている.
258
2593.2 シリアルインタフェースドライバ
260
261シリアルインタフェースドライバでは,RealView Emulation Baseboard上の
262FPGAに実装
263されている4チャンネルのUARTの内
264の1つ(どの1つを用いるかは,コ
265ア毎に異なる)を用いて,SIOポートを1つのみサポートしている.
266
267用いるSIOポートを変更する場合には,tSIOPortCT11MPCore.cdlを修正する必
268要
269がある.
270
2713.3 システムログの低レベル出力
272
273システムログの低レベル出力は,シリアルインタフェースドライバが用いてい
[306]274るのと同じUARTを用い,ポーリングにより文字を出力する方法で実現している.
[302]275
276用いるSIOポートを変更する場合には,target.cdlを修正する必
277要がある.
278
279
[306]2804.システム構築手順と実行手順
281
2824.1 システム構築
283
284CT11MPCore用のASP3カーネルを構築する手順は,「TOPPERS/ASP3カーネル ユー
285ザーズマニュアル」の「3.クイックスタートガイド」の章に記述されている
286通りである.Qemuで実行する場合には,コンパイルオプションに
[302]287「-DTOPPERS_USE_QEMU」を追加すること.
[306]288
[302]2894.2 Qemuで実行する場合のデバッガの使用方法
[306]290
291Qemuで実行する場合,GDBデバッガを用いて実行することができる.まず,
292Qemuを実行する際に,オプション「-S -gdb tcp::1234」を付ける.å…
293·ä½“的には,
[302]294次のコマンドによる実行する.
295
296 qemu-system-arm -M realview-eb-mpcore -semihosting -m 128M -smp 1 \
297 -serial stdio -S -gdb tcp::1234 -kernel asp
298
299Qemuを実行したのとは別のウィンドウで,GDBを起動する.
[306]300
[302]301 % arm-none-eabi-gdb asp
302 <GDBの起動メッセージ>
303 (gdb) target remote localhost:1234
304 (gdb)
305
[306]306ここで,「target remote localhost:1234」は,TCPを用いてQemuとGDBを接続
[302]307するためのコマンドである.このコマンドを,.gdbinitに設定しておくと便利
308である.
[306]309
310また,条件付きブレークポイントを使うと,特定のタスクが特定のアドレスを
[302]311実行した場合にのみ実行を停止させることができる.ただし,ブレーク条件を
312記述するには,カーネルの内
313部構造を知っていることが必
314要である.
315
316
3175.リファレンス
318
3195.1 ディレクトリ構成・ファイル構成
320
321 target/ct11mpcore_gcc/
322 E_PACKAGE 簡易パッケージのファイルリスト
323 MANIFEST 個別パッケージのファイルリスト
324 Makefile.target Makefileのターゲット依存部
325 ct11mpcore.h ターゲットのハードウェア資源の定義
326 ct11mpcore.ld 標準のリンカスクリプト
327 tPutLogCT11MPCore.c システムログの低レベル出力
328 tPutLogCT11MPCore.cdl システムログの低レベル出力のコンポーネント記述
329 tSIOPortCT11MPCore.cdl シリアルインタフェースドライバのターゲット
330 依存部(CT11MPCore用)のコンポーネント記述
331 tSIOPortCT11MPCoreMain_inline.h シリアルインタフェースドライバ
332 のターゲット依存部(CT11MPCore用)
333 target.cdl コンポーネント記述ファイルのターゲット依存部
334 target_cfg1_out.h cfg1_out.cのリンクに必
335要なスタブの定義
336 target_kernel.cfg カーネル実装
337のコンフィギュレーションファイル
338 target_kernel.h kernel.hのターゲット依存部
339 target_kernel.trb kernel.trbのターゲット依存部
340 target_check.trb kernel_check.trbのターゲット依存部
341 target_kernel_impl.c カーネル実装
342のターゲット依存部
343 target_kernel_impl.h カーネル実装
344のターゲット依存部に関する定義
345 target_rename.def ターゲット依存部の内
346部識別名のリネーム定義
347 target_rename.h ターゲット依存部の内
348部識別名のリネーム
349 target_sil.h sil.hのターゲット依存部
350 target_stddef.h t_stddef.hのターゲット依存部
351 target_syssvc.h システムサービスのターゲット依存定義
352 target_test.h テストプログラムのターゲット依存定義
353 target_timer.c タイマドライバ
354 target_timer.cfg タイマドライバのコンフィギュレーションファイル
355 target_timer.h タイマドライバを使用するための定義
356 target_unrename.h ターゲット依存部の内
357部識別名のリネーム解除
358 target_user.txt ターゲット依存部のユーザーズマニュアル
359
3605.2 バージョン履歴
361
362 2015年8月5日 Release 3.B.0 最初のリリース
363 2016å¹´2月8日 Release 3.0.0 最初の一般å…
364¬é–‹
365 2016年5月15日 Release 3.1.0
366
367以上
Note: See TracBrowser for help on using the repository browser.