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

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

TECSレスのASP3の開発のため以下のtrunkからコピー
http://dev.toppers.jp/svn/asp3/branches/WO_TECS-3.C.0

File size: 13.3 KB
Line 
1
2 TOPPERS/ASPカーネル
3 CT11MPcore依存部 ユーザーズマニュアル
4
5 対応バージョン: Release 3.0.0
6 最終更新: 2015年8月9日
7
8このドキュメントは,TOPPERS/ASPカーネルのCT11MPcoreターゲット依存部を使
9用するために必
10要な事項
11を説明するものである.
12
13----------------------------------------------------------------------
14 TOPPERS/ASP Kernel
15 Toyohashi Open Platform for Embedded Real-Time Systems/
16 Advanced Standard Profile Kernel
17
18 Copyright (C) 2008-2015 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 報告すること.
48 (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
49 害からも,上記著作権者
50およびTOPPERSプロジェクトをå…
51è²¬ã™ã‚‹ã“と.
52 また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
53 由に基づく請求からも,上記著作権者
54およびTOPPERSプロジェクトを
55 å…
56è²¬ã™ã‚‹ã“と.
57
58 本ソフトウェアは,無保証で提供されているものである.上記著作権者
59お
60 よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
61 に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
62 アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
63 の責任を負わない.
64
65 $Id: target_user.txt 437 2015-08-09 00:36:08Z ertl-hiro $
66----------------------------------------------------------------------
67
68○目次
69
701.CT11MPcoreターゲット依存部の概要
71 1.1 対応するターゲットシステムとターゲット略称
72 1.2 ターゲット依存部の構成
73 1.3 依存している個別パッケージのバージョン番号
74 1.4 開発環境と動作確認条件
75 1.5 メモリマップ
762.ターゲット定義事項
77の規定
78 2.1 割込み優å…
79ˆåº¦ã¨å‰²è¾¼ã¿ç•ªå·
80 2.2 オーバランハンドラ機能拡張のサポートに関する規定
813.ドライバ関連の情
82å ±
83 3.1 タイマドライバ
84 3.2 シリアルインタフェースドライバ
85 3.3 システムログの低レベル出力
864.システム構築手順と実行手順
87 4.1 システム構築
88 4.2 デバッガの使用方法
895.リファレンス
90 5.1 ディレクトリ構成・ファイル構成
91 5.2 バージョン履歴
92
93
941.CT11MPcoreターゲット依存部の概要
95
96CT11MPcoreターゲット依存部は,TOPPERS/ASPカーネルを,ARM11 MPCoreのテス
97トチップを搭載したCoreTile(CT11MPCore)を,RealView Emulation
98Baseboard上に実装
99したターゲットシステムで動作させる環境を構築するための
100ものである.
101
102また,実ターゲットシステムに代えて,Qemuを用いて実行することもできる.
103Qemuで実行する場合には,コンパイルオプションに「-DTOPPERS_USE_QEMU」を
104追加する必
105要がある.
106
1071.1 対応するターゲットシステムとターゲット略称
108
109CT11MPcoreターゲット依存部の動作確認は,Qemuを用いて行っている.動作確
110認を行ったQemuのバージョンは次の通り.
111
112 qemu-system-arm version 2.1.0
113
114Qemu上でASPカーネルを実行するためのコマンドは次の通り.
115
116 qemu-system-arm -M realview-eb-mpcore -semihosting -m 128M -smp 1 \
117 -serial stdio -kernel asp
118
119また,ターゲット略称等は次の通り.
120
121 ターゲット略称:ct11mpcore_gcc
122 システム略称:ct11mpcore
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 gcc/ GCC開発環境依存部
139 logtrace/ トレースログ記録のサンプルコード
140
1411.3 依存している個別パッケージのバージョン番号
142
143Mac OS Xターゲット依存部(バージョン 3.B.0)の個別パッケージが依存して
144いる個別パッケージと,動作確認を行ったバージョンは次の通り.
145
146 個別パッケージの名称 バージョン 個別パッケージファイル名
147 ------------------------------------------------------------------
148 ターゲット非依存部 3.0.0 asp3-3.0.0.tar.gz
149
1501.4 開発環境と動作確認条件
151
152開発環境として,以下のURLからプリビルド版をダウンロードすることができる
153GCC ARM Embeddedを用いる.
154
155 https://launchpad.net/gcc-arm-embedded/
156
157動作確認を行ったバージョンは次の通り.
158
159 gcc: version 4.8.3 20140228
160 gdb: 7.6.0.20140228-cvs
161 binutils(objcopy,objdump):2.23.2.20140228
162
1631.5 メモリマップ
164
165以下のメモリマップを想定している(Qemuの場合).
166
167 0x00000000 - 0x00100000:ベクター領域(1MB)
168 0x00100000 - 0x0FFFFFFF:DRAM(255MB)
169 0x10000000 - 0x100FFFFF:Emulation Baseboard上のリソース(1MB)
170 0x10100000 - 0x101FFFFF:Private Memory Region(1MB)
171 0x48000000 - 0x4BFFFFFF:SRAM(4MB)
172
173MPCoreのPrivate Memory Regionのå…
174ˆé ­ç•ªåœ°ã¯ï¼Œã‚³ã‚¢å¤–部から設定可能となって
175いる.QEMUでは,この領域のå…
176ˆé ­ç•ªåœ°ã¯ï¼Œ0x10100000に設定されている.実際
177のターゲットシステムでは,ボード上で設定できるようになっており,デフォ
178ルトでは0x1f000000に設定されている.
179
180メモリマップを変更する場合には,Makefile.targetとtarget_kernel_impl.cを
181修正する必
182要がある.
183
184
1852.ターゲット定義事項
186の規定
187
188CT11MPcoreターゲット依存部は,ARMコア依存部とMPCoreチップ依存部を用いて
189実装
190されている.ここでは,ARMコア依存部およびMPCoreチップ依存部と異なる,
191ないしは,それらで規定されていない事項
192について説明する.
193
1942.1 割込み優å…
195ˆåº¦ã¨å‰²è¾¼ã¿ç•ªå·
196
197CT11MPCoreの割込みコントローラ(Distributed Interrupt COntroller)は,
19816レベルの割込み優å…
199ˆåº¦ã‚’サポートしている.そのため,割込み優å…
200ˆåº¦ã®æœ€å°
201値(最高値)は-15,割込み優å…
202ˆåº¦ã®æœ€å¤§å€¤ï¼ˆæœ€ä½Žå€¤ï¼‰ã¯-1である.
203
204CT11MPCoreの割込みコントローラがサポートする割込みと,その割込み番号は
205次の通り.
206
207 プロセッサ間割込み 0〜15
208 プライベート割込み 16〜31
209 プライベートタイマ 29
210 プライベートウォッチドッグ 30
211 レガシーnIRQ 31
212 ハードウェア割込み 32〜63
213 チップ外からの割込み 32〜47
214 ACCI 32
215 EB_TIMER0/1 33
216 EB_TIMER2/3 34
217 USB 35
218 EB_UART0 36
219 EB_UART1 37
220 …中略…
221 EB_GIC1_nIRQ 42
222 EB_GIC2_nIRQ 43
223 EB_GIC1_nFIQ 44
224 EB_GIC2_nFIQ 45
225 …中略…
226 チップ内
227の割込み 48〜63
228
2292.2 オーバランハンドラ機能拡張のサポートに関する規定
230
231オーバランハンドラ機能拡張パッケージをサポートしている(ただし,コア2と
232コア3に対してサポートしていない).
233
234
2353.ドライバ関連の情
236å ±
237
2383.1 タイマドライバ
239
240高分解能タイマは,MPCoreがコア毎に持つタイマとウォッチドッグを使用して
241実現している.å…
242·ä½“的には,ウォッチドッグを現在時刻の管理のために用い,
243タイマを相対時間割込みの発生のために用いている.そのため,これらのタイ
244マを別の目的で使用することはできない.
245
246また,オーバランハンドラ機能をサポートする場合には,RealView Emulation
247Baseboard上のFPGAに実装
248されているタイマの内
249の1つ(どの1つを用いるかは,
250コア毎に異なる)を用いている.
251
2523.2 シリアルインタフェースドライバ
253
254シリアルインタフェースドライバでは,RealView Emulation Baseboard上の
255FPGAに実装
256されている4チャンネルのUARTの内
257の1つ(どの1つを用いるかは,コ
258ア毎に異なる)を用いて,シリアルI/Oポートを1つのみサポートしている.
259
260用いるUARTを変更する場合には,target_syssvc.hを修正する必
261要がある.
262
2633.3 システムログの低レベル出力
264
265システムログの低レベル出力は,シリアルインタフェースドライバが用いてい
266るのと同じUARTを用い,ポーリングにより文字を出力する方法で実現している.
267
268用いるUARTを変更する場合には,target_kernel_impl.hを修正する必
269要がある.
270
271
2724.システム構築手順と実行手順
273
2744.1 システム構築
275
276CT11MPcore向けの構築する手順は,「TOPPERS/ASPカーネル ユーザーズマニュ
277アル」の「3.クイックスタートガイド」の章に記述されている通りである.
278Qemuで実行する場合には,コンパイルオプションに「-DTOPPERS_USE_QEMU」を
279追加すること.
280
2814.2 Qemuで実行する場合のデバッガの使用方法
282
283Qemuで実行する場合,GDBデバッガを用いて実行することができる.まず,
284Qemuを実行する際に,オプション「-S -gdb tcp::1234」を付ける.å…
285·ä½“的には,
286次のコマンドによる実行する.
287
288 qemu-system-arm -M realview-eb-mpcore -semihosting -m 128M -smp 1 \
289 -serial stdio -S -gdb tcp::1234 -kernel asp
290
291Qemuを実行したのとは別のウィンドウで,GDBを起動する.
292
293 % arm-none-eabi-gdb asp
294 <GDBの起動メッセージ>
295 (gdb) target remote localhost:1234
296 (gdb)
297
298ここで,「target remote localhost:1234」は,TCPを用いてQemuとGDBを接続
299するためのコマンドである.このコマンドを,.gdbinitに設定しておくと便利
300である.
301
302また,条件付きブレークポイントを使うと,特定のタスクが特定のアドレスを
303実行した場合にのみ実行を停止させることができる.ただし,ブレーク条件を
304記述するには,カーネルの内
305部構造を知っていることが必
306要である.
307
308
3095.リファレンス
310
3115.1 ディレクトリ構成・ファイル構成
312
313 target/macosx_xcode/
314 E_PACKAGE 簡易パッケージのファイルリスト
315 MANIFEST 個別パッケージのファイルリスト
316 Makefile.target Makefileのターゲット依存部
317 ct11mpcore.h ターゲットのハードウェア資源の定義
318 ct11mpcore.ld 標準のリンカスクリプト
319 target.tf kernel.tfのターゲット依存部
320 target_cfg1_out.h cfg1_out.cのリンクに必
321要なスタブの定義
322 target_check.tf kernel_check.tfのターゲット依存部
323 target_kernel.h kernel.hのターゲット依存部
324 target_kernel_impl.c カーネル実装
325のターゲット依存部関連の定義
326 target_kernel_impl.h カーネル実装
327のターゲット依存部
328 target_rename.def ターゲット依存部の内
329部識別名のリネーム定義
330 target_rename.h ターゲット依存部の内
331部識別名のリネーム
332 target_serial.c serial.cのターゲット依存部
333 target_serial.cfg serial.cfgのターゲット依存部
334 target_serial.h serial.hのターゲット依存部
335 target_sil.h sil.hのターゲット依存部
336 target_stddef.h t_stddef.hのターゲット依存部
337 target_syssvc.h システムサービスのターゲット依存定義
338 target_test.h テストプログラムのターゲット依存定義
339 target_timer.cfg タイマドライバのコンフィギュレーションファイル
340 target_timer.h タイマドライバを使用するための定義
341 target_unrename.h ターゲット依存部の内
342部識別名のリネーム解除
343 target_user.txt ターゲット依存部のユーザーズマニュアル
344
3456.2 バージョン履歴
346
347 2015年8月5日 Release 3.B.0 最初のリリース
348 2015å¹´ 月 日 Release 3.0.0 最初の一般å…
349¬é–‹
350
351以上
Note: See TracBrowser for help on using the repository browser.