[352] | 1 |
|
---|
| 2 | TOPPERS/ASP3カーネル
|
---|
| 3 | GR-PEACH依存部 ユーザーズマニュアル
|
---|
| 4 |
|
---|
| 5 | 対応バージョン: Release 3.2
|
---|
| 6 | 最終更新: 2016年4月2日
|
---|
| 7 |
|
---|
| 8 | このドキュメントは,TOPPERS/ASP3カーネルのGR-PEACHターゲット依存部を使
|
---|
| 9 | 用するために必要な事項を説明するものである.
|
---|
| 10 |
|
---|
| 11 | ----------------------------------------------------------------------
|
---|
| 12 | TOPPERS/ASP Kernel
|
---|
| 13 | Toyohashi Open Platform for Embedded Real-Time Systems/
|
---|
| 14 | Advanced Standard Profile Kernel
|
---|
| 15 |
|
---|
| 16 | Copyright (C) 2008-2016 by Embedded and Real-Time Systems Laboratory
|
---|
| 17 | Graduate School of Information Science, Nagoya Univ., JAPAN
|
---|
| 18 |
|
---|
| 19 | 上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
|
---|
| 20 | ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
|
---|
| 21 | 変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
|
---|
| 22 | (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
|
---|
| 23 | 権表示,この利用条件および下記の無保証規定が,そのままの形でソー
|
---|
| 24 | スコード中に含まれていること.
|
---|
| 25 | (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
|
---|
| 26 | 用できる形で再配布する場合には,再配布に伴うドキュメント(利用
|
---|
| 27 | 者マニュアルなど)に,上記の著作権表示,この利用条件および下記
|
---|
| 28 | の無保証規定を掲載すること.
|
---|
| 29 | (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
|
---|
| 30 | 用できない形で再配布する場合には,次のいずれかの条件を満たすこ
|
---|
| 31 | と.
|
---|
| 32 | (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
|
---|
| 33 | 作権表示,この利用条件および下記の無保証規定を掲載すること.
|
---|
| 34 | (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
|
---|
| 35 | 報告すること.
|
---|
| 36 | (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
|
---|
| 37 | 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
|
---|
| 38 | また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
|
---|
| 39 | 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
|
---|
| 40 | 免責すること.
|
---|
| 41 |
|
---|
| 42 | 本ソフトウェアは,無保証で提供されているものである.上記著作権者お
|
---|
| 43 | よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
|
---|
| 44 | に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
|
---|
| 45 | アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
|
---|
| 46 | の責任を負わない.
|
---|
| 47 |
|
---|
| 48 | $Id$
|
---|
| 49 | ----------------------------------------------------------------------
|
---|
| 50 |
|
---|
| 51 | ○ライセンスに関する注意事項
|
---|
| 52 |
|
---|
| 53 | GR-PEACHターゲット依存部には,ROM実行のためのブートローダ(sf_boot.c)
|
---|
| 54 | を含んでいるが,このソフトウェアはルネサスエレクトロニクスが開発したも
|
---|
| 55 | のであり,ライセンス条件もルネサスエレクトロニクス独自のものである.
|
---|
| 56 | TOPPERSライセンスでないため注意すること.
|
---|
| 57 |
|
---|
| 58 | ○目次
|
---|
| 59 |
|
---|
| 60 | 1.GR-PEACHターゲット依存部の概要
|
---|
| 61 | 1.1 対応するターゲットシステムとターゲット略称
|
---|
| 62 | 1.2 ターゲット依存部の構成
|
---|
| 63 | 1.3 依存している個別パッケージのバージョン番号
|
---|
| 64 | 1.4 開発環境/デバッグ環境と動作確認条件
|
---|
| 65 | 1.5 メモリマップ
|
---|
| 66 | 2.ターゲット定義事項の規定
|
---|
| 67 | 3.ドライバ関連の情報
|
---|
| 68 | 3.1 タイマドライバ
|
---|
| 69 | 3.2 シリアルインタフェースドライバ
|
---|
| 70 | 3.3 システムログの低レベル出力
|
---|
| 71 | 4.システム構築手順と実行手順
|
---|
| 72 | 4.1 ROM実行の場合の構築手順と実行手順
|
---|
| 73 | 4.2 RAM実行の場合の構築手順と実行手順
|
---|
| 74 | 4.3 ドライバのインストール
|
---|
| 75 | 5.リファレンス
|
---|
| 76 | 5.1 ディレクトリ構成・ファイル構成
|
---|
| 77 | 5.2 バージョン履歴
|
---|
| 78 |
|
---|
| 79 |
|
---|
| 80 | 1.GR-PEACHターゲット依存部の概要
|
---|
| 81 |
|
---|
| 82 | GR-PEACHターゲット依存部(GNU開発環境向け)は,TOPPERS/ASP3カーネルを,
|
---|
| 83 | ルネサス RZ/A1Hを搭載したGR-PEACHボード上で動作させる環境を構築するため
|
---|
| 84 | のものである.
|
---|
| 85 |
|
---|
| 86 | 1.1 対応するターゲットシステムとターゲット略称
|
---|
| 87 |
|
---|
| 88 | GR-PEACHターゲット依存部(GNU開発環境向け)の動作確認は,実機を用いて行っ
|
---|
| 89 | ている.GR-PEACHに関する情報は,以下のウェブサイトにある.
|
---|
| 90 |
|
---|
| 91 | http://gadget.renesas.com/ja/product/peach.html
|
---|
| 92 |
|
---|
| 93 | プログラムをフラッシュメモリに書き込んで実行する方法(ROM実行)と,デバッ
|
---|
| 94 | ガによりRAMにダウンロードして実行する方法(RAM実行)をサポートしている.
|
---|
| 95 |
|
---|
| 96 | ターゲット略称等は次の通り.
|
---|
| 97 |
|
---|
| 98 | ターゲット略称:gr_peach_gcc
|
---|
| 99 | システム略称:gr_peach
|
---|
| 100 | 開発環境略称:gcc
|
---|
| 101 |
|
---|
| 102 | 1.2 ターゲット依存部の構成
|
---|
| 103 |
|
---|
| 104 | GR-PEACHターゲット依存部(GNU開発環境向け)は,チップ依存部としてRZ/A1
|
---|
| 105 | チップ依存部(GNU開発環境向け)を,コア依存部としてARMコア依存部(GNU開
|
---|
| 106 | 発環境向け)を使用している.
|
---|
| 107 |
|
---|
| 108 | ターゲット依存部(targetディレクトリ)およびターゲット依存部の共通部
|
---|
| 109 | (archディレクトリ)のディレクトリは次の通り.
|
---|
| 110 |
|
---|
| 111 | target/
|
---|
| 112 | gr_peach_gcc/ GR-PEACHターゲット依存部
|
---|
| 113 |
|
---|
| 114 | arch/
|
---|
| 115 | arm_gcc/common/ ARMコア依存部
|
---|
| 116 | arm_gcc/rza1/ RZ/A1チップ依存部
|
---|
| 117 | arm_gcc/doc/ ARM依存部に関するドキュメント
|
---|
| 118 | gcc/ GCC開発環境依存部
|
---|
| 119 | tracelog/ トレースログ記録のサンプルコード
|
---|
| 120 |
|
---|
| 121 | 1.3 依存している個別パッケージのバージョン番号
|
---|
| 122 |
|
---|
| 123 | GR-PEACHターゲット依存部(バージョン 3.2.0)の個別パッケージが依存して
|
---|
| 124 | いる個別パッケージと,動作確認を行ったバージョンは次の通り.
|
---|
| 125 |
|
---|
| 126 | 個別パッケージの名称 バージョン 個別パッケージファイル名
|
---|
| 127 | ------------------------------------------------------------------
|
---|
| 128 | ターゲット非依存部 3.2.0 asp3-3.2.0.tar.gz
|
---|
| 129 |
|
---|
| 130 | 1.4 開発環境/デバッグ環境と動作確認条件
|
---|
| 131 |
|
---|
| 132 | 開発環境として,以下のURLからプリビルド版をダウンロードすることができる
|
---|
| 133 | GCC ARM Embeddedを用いている.
|
---|
| 134 |
|
---|
| 135 | https://launchpad.net/gcc-arm-embedded/
|
---|
| 136 |
|
---|
| 137 | 動作確認を行ったバージョンは次の通り.
|
---|
| 138 |
|
---|
| 139 | gcc: version 4.8.3 20140228
|
---|
| 140 | binutils(objcopy,objdump):2.23.2.20140228
|
---|
| 141 |
|
---|
| 142 | デバッグ環境として,オンボードのCMSIS-DAPから,OpenOCDを経由して,GDBを
|
---|
| 143 | 用いる環境で動作確認を行っている.動作確認を行ったデバッグ環境のバージョ
|
---|
| 144 | ンは次の通り.
|
---|
| 145 |
|
---|
| 146 | gdb: 7.6.0.20140228-cvs
|
---|
| 147 | openocd: 0.10.0-dev-00287-g85cec24
|
---|
| 148 |
|
---|
| 149 | 古いバージョンのOpenOCDでは正しく動作しないことが報告されているため,注
|
---|
| 150 | 意が必要である.
|
---|
| 151 |
|
---|
| 152 | GUIベースの開発環境/デバッグ環境として,Atollic TrueStudioを用いること
|
---|
| 153 | ができる.
|
---|
| 154 |
|
---|
| 155 | 1.5 メモリマップ
|
---|
| 156 |
|
---|
| 157 | ROM実行の場合は,以下のメモリマップを想定している.
|
---|
| 158 |
|
---|
| 159 | 0x18000000 - 0x1fffffff:シリアルフラッシュメモリ(128MB)
|
---|
| 160 | 0x20000000 - 0x209fffff:内蔵SRAM(10MB)
|
---|
| 161 | 0x3fe00000 - 0x3fffffff:I/O領域(2MB),予約領域を含む
|
---|
| 162 | 0xe8000000 - 0xffffffff:I/O領域(384MB),予約領域を含む
|
---|
| 163 |
|
---|
| 164 | 内蔵SRAM領域の先頭の16KBは,ブートローダを置くために使用する.
|
---|
| 165 |
|
---|
| 166 | RAM実行の場合は,以下のメモリマップを想定している.
|
---|
| 167 |
|
---|
| 168 | 0x20000000 - 0x200fffff:内蔵SRAM(1MB)… ROM領域として使用
|
---|
| 169 | 0x20100000 - 0x209fffff:内蔵SRAM(9MB)
|
---|
| 170 | 0x3fe00000 - 0x3fffffff:I/O領域(2MB),予約領域を含む
|
---|
| 171 | 0xe8000000 - 0xffffffff:I/O領域(384MB),予約領域を含む
|
---|
| 172 |
|
---|
| 173 | プログラムおよび定数データ領域は,内蔵SRAM領域の先頭の1MBに置く想定とし
|
---|
| 174 | て,(定数でない)データ領域は,その後に配置する.
|
---|
| 175 |
|
---|
| 176 | メモリマップを変更する場合には,target_kernel_impl.cとgr_peach_rom.ld
|
---|
| 177 | (または,pr_peach_ram.kd)を修正する必要がある.
|
---|
| 178 |
|
---|
| 179 |
|
---|
| 180 | 2.ターゲット定義事項の規定
|
---|
| 181 |
|
---|
| 182 | GR-PEACHターゲット依存部は,ARMコア依存部とRZ/A1チップ依存部を用いて実
|
---|
| 183 | 装されている.ARMコア依存部およびRZ/A1チップ依存部におけるターゲット定
|
---|
| 184 | 義事項の規定については,「ARM依存部 ユーザーズマニュアル」を参照するこ
|
---|
| 185 | と.それらの規定以外に,GR-PEACHターゲット定義の事項はない.
|
---|
| 186 |
|
---|
| 187 |
|
---|
| 188 | 3.ドライバ関連の情報
|
---|
| 189 |
|
---|
| 190 | 3.1 タイマドライバ
|
---|
| 191 |
|
---|
| 192 | 高分解能タイマは,RZ/A1Hが持つ2チャンネルのOSタイマの内の1つを用いて実
|
---|
| 193 | 現している.また,もう1つのOSタイマを用いて,オーバランタイマを実現して
|
---|
| 194 | いる.
|
---|
| 195 |
|
---|
| 196 | 3.2 シリアルインタフェースドライバ
|
---|
| 197 |
|
---|
| 198 | シリアルインタフェースドライバは,RZ/A1Hが持つ8ポートのFIFO内蔵シリアル
|
---|
| 199 | コミュニケーションインタフェースをサポートしている.
|
---|
| 200 |
|
---|
| 201 | USB経由でホストと接続できるポートは,SCIFのチャネル2(チャネル番号は0か
|
---|
| 202 | ら始まるので,ポート3に相当)である.一方,sample1.cdlでは,ログタスク
|
---|
| 203 | およびサンプルプログラムが使うポートがポート1となっているため,ポート1
|
---|
| 204 | とポート3を入れ換えている.すなわち,シリアルインタフェースドライバのポー
|
---|
| 205 | ト1がSCIFのチャネル2,ポート2がチャネル1,ポート3がチャネル0,ポート4が
|
---|
| 206 | チャネル3,…に対応している.
|
---|
| 207 |
|
---|
| 208 | ボーレート:115200bps
|
---|
| 209 | データ:8ビット
|
---|
| 210 | パリティ:なし
|
---|
| 211 | ストップビット:1ビット
|
---|
| 212 | フロー制御:なし
|
---|
| 213 |
|
---|
| 214 | この対応を変更するには,tSIOPortGRPeach.cdlを修正する必要がある.
|
---|
| 215 |
|
---|
| 216 | 3.3 システムログの低レベル出力
|
---|
| 217 |
|
---|
| 218 | システムログの低レベル出力は,シリアルインタフェースドライバのポート1と
|
---|
| 219 | 同じチャネル(すなわち,SCIFのチャネル2)に対して,ポーリングにより文字
|
---|
| 220 | を出力する方法で実現している.
|
---|
| 221 |
|
---|
| 222 | 用いるポートを変更する場合には,target.cdlを修正する必要がある.
|
---|
| 223 |
|
---|
| 224 |
|
---|
| 225 | 4.システム構築手順と実行手順
|
---|
| 226 |
|
---|
| 227 | GR-PEACH用のASP3カーネルおよびサンプルプログラムを構築する手順は,基本
|
---|
| 228 | 的には,「TOPPERS/ASP3カーネル ユーザーズマニュアル」の「3.クイックス
|
---|
| 229 | タートガイド」の章に記述されている通りであるが,ROM実行かRAM実行かによっ
|
---|
| 230 | て,構築手順と実行手順に違いがある.
|
---|
| 231 |
|
---|
| 232 | 4.1 ROM実行の場合の構築手順と実行手順
|
---|
| 233 |
|
---|
| 234 | カーネルの構築前に,GR-PEACHターゲット依存部のMakefile.targetを編集し,
|
---|
| 235 | 以下の行を有効にする(コメントアウトする).
|
---|
| 236 |
|
---|
| 237 | EXECUTE_ON = ROM
|
---|
| 238 |
|
---|
| 239 | ROM実行する場合には,バイナリ形式が必要であるため,サンプルプログラムの
|
---|
| 240 | 構築後に,以下のコマンドを実行する.
|
---|
| 241 |
|
---|
| 242 | % make asp.bin
|
---|
| 243 |
|
---|
| 244 | GR-PEACHのUSBポートとPCを接続すると,GR-PEACHがドライブとして認識される
|
---|
| 245 | ため,そのドライブにasp.binを書き込むことで,GR-PEACHのフラッシュメモリ
|
---|
| 246 | にプログラムが書き込まれる.
|
---|
| 247 |
|
---|
| 248 | 書き込み後,リセットボタンを押すことにより,プログラムの実行が開始され
|
---|
| 249 | る.
|
---|
| 250 |
|
---|
| 251 | 4.2 RAM実行の場合の構築手順と実行手順
|
---|
| 252 |
|
---|
| 253 | カーネルの構築前に,GR-PEACHターゲット依存部のMakefile.targetを編集し,
|
---|
| 254 | 以下の行を有効にする(コメントアウトする).
|
---|
| 255 |
|
---|
| 256 | EXECUTE_ON = RAM
|
---|
| 257 |
|
---|
| 258 | 以下,ASP3カーネルを置いたディレクトリを<SRCDIR>,OpenOCDをインストール
|
---|
| 259 | したディレクトリを<OPENOCD_DIR>と書く.openocdの実行プログラムは,実行
|
---|
| 260 | パスに指定されたディレクトリにコピーまたはシンボリックリンクしておく.
|
---|
| 261 |
|
---|
| 262 | % cd /usr/local/bin
|
---|
| 263 | % ln -s <OPENOCD_DIR>/bin/openocd .
|
---|
| 264 |
|
---|
| 265 | まず,GR-PEACHターゲット依存部のディレクトリにあるrenesas_rza1h_swd.cfg
|
---|
| 266 | を,<OPENOCD_DIR>/scripts/targetsにコピーしておく.
|
---|
| 267 |
|
---|
| 268 | 次に,GR-PEACHのUSBポートとPCを接続し,以下のコマンドでopenocdを起動する.
|
---|
| 269 |
|
---|
| 270 | % setenv OPENOCD_SCRIPTS <OPENOCD_DIR>/scripts
|
---|
| 271 | % openocd -f interface/cmsis-dap.cfg -f target/renesas_rza1h_swd.cfg
|
---|
| 272 |
|
---|
| 273 | 以下のコマンドでgdbを起動し,aspをロードした後,continueコマンドでプロ
|
---|
| 274 | グラムの実行が開始される.
|
---|
| 275 |
|
---|
| 276 | % arm-none-eabi-gdb asp -x <SRCDIR>/target/gr_peach_gcc/gdb_ram.ini
|
---|
| 277 | (gdb) continue
|
---|
| 278 |
|
---|
| 279 | <SRCDIR>/target/gr_peach_gcc/gdb_ram.iniを,カレントディレクトリの
|
---|
| 280 | .gdbinitにコピーしておくことで,gdbの起動毎にスクリプトを指定する必要が
|
---|
| 281 | なくなる.
|
---|
| 282 |
|
---|
| 283 | 4.3 ドライバのインストール
|
---|
| 284 |
|
---|
| 285 | GR-PEACHのUSBポートとPCを接続しても,GR-PEACHがシリアルポートとして認識
|
---|
| 286 | されない場合には,USBシリアルドライバをインストールする必要がある.
|
---|
| 287 |
|
---|
| 288 | Windows向けのドライバは,以下のURLにある.
|
---|
| 289 |
|
---|
| 290 | https://developer.mbed.org/handbook/Windows-serial-configuration
|
---|
| 291 |
|
---|
| 292 | MacOS X用のUSBシリアルドライバは,例えば,以下のURLにあるものを使用する
|
---|
| 293 | ことができる.
|
---|
| 294 |
|
---|
| 295 | http://www.ftdichip.com/Drivers/VCP.htm
|
---|
| 296 |
|
---|
| 297 |
|
---|
| 298 | 5.リファレンス
|
---|
| 299 |
|
---|
| 300 | 5.1 ディレクトリ構成・ファイル構成
|
---|
| 301 |
|
---|
| 302 | target/gr_peach_gcc/
|
---|
| 303 | E_PACKAGE 簡易パッケージのファイルリスト
|
---|
| 304 | MANIFEST 個別パッケージのファイルリスト
|
---|
| 305 | Makefile.target Makefileのターゲット依存部
|
---|
| 306 | gdb_ram.ini GDBの起動スクリプト(RAM実行用)
|
---|
| 307 | gdb_rom.ini GDBの起動スクリプト(ROM実行用)
|
---|
| 308 | gr_peach.h ターゲットのハードウェア資源の定義
|
---|
| 309 | gr_peach_ram.ld 標準のリンカスクリプト(RAM実行用)
|
---|
| 310 | gr_peach_rom.ld 標準のリンカスクリプト(ROM実行用)
|
---|
| 311 | renesas_rza1h_swd.cfg OpenOCDの起動スクリプト
|
---|
| 312 | sf_boot.c ブートローダ(ROM実行用)
|
---|
| 313 | tPutLogGRPeach.c システムログの低レベル出力
|
---|
| 314 | tPutLogGRPeach.cdl システムログの低レベル出力のコンポーネント記述
|
---|
| 315 | tSIOPortGRPeach.cdl シリアルインタフェースドライバのターゲット
|
---|
| 316 | 依存部(GR-PEACH用)のコンポーネント記述
|
---|
| 317 | tSIOPortGRPeachMain_inline.h シリアルインタフェースドライバの
|
---|
| 318 | ターゲット依存部(GR-PEACH用)
|
---|
| 319 | target.cdl コンポーネント記述ファイルのターゲット依存部
|
---|
| 320 | target_cfg1_out.h cfg1_out.cのリンクに必要なスタブの定義
|
---|
| 321 | target_kernel.cfg カーネル実装のコンフィギュレーションファイル
|
---|
| 322 | target_kernel.h kernel.hのターゲット依存部
|
---|
| 323 | target_kernel.trb kernel.trbのターゲット依存部
|
---|
| 324 | target_check.trb kernel_check.trbのターゲット依存部
|
---|
| 325 | target_kernel_impl.c カーネル実装のターゲット依存部
|
---|
| 326 | target_kernel_impl.h カーネル実装のターゲット依存部に関する定義
|
---|
| 327 | target_rename.def ターゲット依存部の内部識別名のリネーム定義
|
---|
| 328 | target_rename.h ターゲット依存部の内部識別名のリネーム
|
---|
| 329 | target_sil.h sil.hのターゲット依存部
|
---|
| 330 | target_stddef.h t_stddef.hのターゲット依存部
|
---|
| 331 | target_support.S カーネル実装のターゲット依存部(アセンブ
|
---|
| 332 | リ言語で記述した部分)
|
---|
| 333 | target_syssvc.h システムサービスのターゲット依存定義
|
---|
| 334 | target_test.h テストプログラムのターゲット依存定義
|
---|
| 335 | target_timer.cfg タイマドライバのコンフィギュレーションファイル
|
---|
| 336 | target_timer.h タイマドライバを使用するための定義
|
---|
| 337 | target_unrename.h ターゲット依存部の内部識別名のリネーム解除
|
---|
| 338 | target_user.txt ターゲット依存部のユーザーズマニュアル
|
---|
| 339 |
|
---|
| 340 | 5.2 バージョン履歴
|
---|
| 341 |
|
---|
| 342 | 2016年5月15日 Release 3.1.0 最初の一般公開
|
---|
| 343 | 2017年7月21日 Release 3.2.0
|
---|
| 344 |
|
---|
| 345 | 以上
|
---|