7.5MB

本ドキュメントはCypress (サイプレス) 製品に関する情報が記載されております。
GNU ツールチェーンを使用した
開発環境構築方法
32-BIT MICROCONTROLLER
FM3 ファミリ アプリケーションノート
APPLICATION NOTE
ARM is the registered trademark of ARM Limited in the EU and other countries.
Cortex is the trademark of ARM Limited in the EU and other countries.
Publication Number AN706-00061
Revision 1.1
Issue Date January 31, 2014
A P P L I C A T I O N
N O T E
AN706-00061-1v1-J, January 31, 2014
A P P L I C A T I O N
N O T E
目次
目次 ...................................................................................................................................... 3
対象製品 ............................................................................................................................... 5
1
2
3
4
5
6
7
8
イントロダクション ...................................................................................................... 9
1.1
概要 ........................................................................................................................ 9
1.2
JTAG インタフェース .......................................................................................... 10
1.3
J-Link .................................................................................................................... 11
1.4
ARM-USB-TINY ................................................................................................... 12
コンパイラ................................................................................................................... 13
2.1
Yet another GNU ARM Tool Chain (YAGARTO) ................................................... 13
2.2
YAGARTO ツールのダウンロード方法 ................................................................ 13
2.3
YAGARTO ツールのインストール方法 ................................................................ 14
ドライバ ...................................................................................................................... 17
3.1
LibUSB ................................................................................................................. 17
3.2
LibUSB のインストール方法 ................................................................................ 17
デバッガ ...................................................................................................................... 20
4.1
Open On-Chip Debugger (OpenOCD).................................................................. 20
4.2
LibUSB ドライバの適用 ....................................................................................... 20
4.2.1
LibUSB ドライバサポート版の OpenOCD インストール方法 ...................... 20
4.2.2
OpenOCD の動作確認 ................................................................................... 21
Java Runtime Environment (JRE) ............................................................................... 25
5.1
JRE の確認方法 .................................................................................................... 25
5.2
JRE のインストール方法...................................................................................... 25
Eclipse プラットフォーム............................................................................................ 26
6.1
Eclipse プラットフォームのダウンロード方法 .................................................... 26
6.2
Eclipse IDE の開始方法 ........................................................................................ 30
C/C++開発ツールキット(CDT) .................................................................................... 31
7.1
最新ソフトウェアのインストール方法................................................................. 31
7.2
Eclipse ネットワークコンフィグレーション ........................................................ 33
7.3
Eclipse CDT プラグイン ....................................................................................... 34
Eclipse IDE の使用方法 ............................................................................................... 38
8.1
C/C++パースペクティブ ...................................................................................... 38
8.2
C/C++プロジェクトの作成 ................................................................................... 40
8.3
プロジェクトのクリーニング ............................................................................... 44
8.4
プロジェクトのビルド.......................................................................................... 47
January 31, 2014, AN706-00061-1v1-J
3
A P P L I C A T I O N
8.5
N O T E
メイクターゲットの作成 ...................................................................................... 49
サンプル Eclipse プロジェクト ................................................................................... 52
9
9.1
ファイルの追加 .................................................................................................... 53
9.2
Includes フォルダへライブラリを追加 ................................................................. 56
9.3
makefile ................................................................................................................ 59
Flash メモリへの書込み ........................................................................................... 69
10
10.1
OpenOCD と Flash 書込み ................................................................................... 69
Eclipse 外部ツールのセットアップ .......................................................................... 72
11
11.1
外部ツール ........................................................................................................ 72
11.2
外部ツールとして OpenOCD を使用 ................................................................ 72
Eclipse CDT のデバッグパースペクティブ ............................................................. 78
12
12.1
OpenOCD を使用したプログラムの書込みとデバッグ ........................................ 79
12.2
RAM でのデバッグ ............................................................................................... 86
Eclipse Embedded Systems Register View プラグイン ........................................... 93
13
13.1
プラグインのインストール ............................................................................... 93
13.2
Register View の使用 ............................................................................................ 96
Eclipse の特徴 ........................................................................................................ 101
14
14.1
概要................................................................................................................. 101
14.2
Disassembly ビュー ........................................................................................... 101
14.3
CPU Register ビュー .......................................................................................... 103
14.4
Memory ビュー ................................................................................................... 104
14.5
ブレークポイントの使用 ................................................................................ 105
付録 ........................................................................................................................ 107
15
15.1
用語集 ............................................................................................................. 107
15.2
リンク ............................................................................................................. 108
16
15.2.1
ソフトウェア ........................................................................................... 108
15.2.2
ハードウェア ........................................................................................... 108
追加情報................................................................................................................. 109
改版履歴 ........................................................................................................................... 110
4
AN706-00061-1v1-J, January 31, 2014
A P P L I C A T I O N
N O T E
対象製品
本アプリケーションノートに記載されている内容の対象製品は、下記の通り
です。
(TYPE0)
シリーズ名
品種型格 (パッケージサフィックスは除く)
MB9A100A
MB9AF102NA,MB9AF104NA,MB9AF105NA
MB9AF102RA,MB9AF104RA,MB9AF105RA
MB9B100A
MB9BF102NA,MB9BF104NA,MB9BF105NA,MB9BF106NA
MB9BF102RA,MB9BF104RA,MB9BF105RA,MB9BF106RA
MB9B300B
MB9BF304NB,MB9BF305NB,MB9BF306NB
MB9BF304RB,MB9BF305RB,MB9BF306RB
MB9B400A
MB9BF404NA,MB9BF405NA,MB9BF406NA
MB9BF404RA,MB9BF405RA,MB9BF406RA
MB9B500B
MB9BF504NB,MB9BF505NB,MB9BF506NB
MB9BF504RB,MB9BF505RB,MB9BF506RB
(TYPE1)
シリーズ名
品種型格 (パッケージサフィックスは除く)
MB9A110A
MB9AF111LA,MB9AF112LA,MB9AF114LA
MB9AF111MA,MB9AF112MA,MB9AF114MA,MB9AF115MA,MB9AF116MA
MB9AF111NA,MB9AF112NA,MB9AF114NA,MB9AF115NA,MB9AF116NA
MB9A310A
MB9AF311LA,MB9AF312LA,MB9AF314LA
MB9AF311MA,MB9AF312MA,MB9AF314MA,MB9AF315MA,MB9AF316MA
MB9AF311NA,MB9AF312NA,MB9AF314NA,MB9AF315NA,MB9AF316NA
January 31, 2014, AN706-00061-1v1-J
5
A P P L I C A T I O N
N O T E
(TYPE2)
シリーズ名
MB9B110T
品種型格 (パッケージサフィックスは除く)
MB9BF116S,MB9BF117S,MB9BF118S
MB9BF116T,MB9BF117T,MB9BF118T
MB9B210T
MB9BF216S,MB9BF217S,MB9BF218S
MB9BF216T,MB9BF217T,MB9BF218T
MB9B310T
MB9BF316S,MB9BF317S,MB9BF318S
MB9BF316T,MB9BF317T,MB9BF318T
MB9B410T
MB9BF416S,MB9BF417S,MB9BF418S
MB9BF416T,MB9BF417T,MB9BF418T
MB9B510T
MB9BF516S,MB9BF517S,MB9BF518S
MB9BF516T,MB9BF517T,MB9BF518T
MB9B610T
MB9BF616S,MB9BF617S,MB9BF618S
MB9BF616T,MB9BF617T,MB9BF618T
MB9BD10T
MB9BFD16S,MB9BFD17S,MB9BFD18S
MB9BFD16T,MB9BFD17T,MB9BFD18T
(TYPE3)
シリーズ名
MB9A130LA
品種型格 (パッケージサフィックスは除く)
MB9AF131KA,MB9AF132KA
MB9AF131LA,MB9AF132LA
(TYPE4)
シリーズ名
MB9B110R
品種型格 (パッケージサフィックスは除く)
MB9BF112N,MB9BF114N,MB9BF115N,MB9BF116N
MB9BF112R,MB9BF114R,MB9BF115R,MB9BF116R
MB9B310R
MB9BF312N,MB9BF314N,MB9BF315N,MB9BF316N
MB9BF312R,MB9BF314R,MB9BF315R,MB9BF316R
MB9B410R
MB9BF412N,MB9BF414N,MB9BF415N,MB9BF416N
MB9BF412R,MB9BF414R,MB9BF415R,MB9BF416R
MB9B510R
MB9BF512N,MB9BF514N,MB9BF515N,MB9BF516N
MB9BF512R,MB9BF514R,MB9BF515R,MB9BF516R
6
AN706-00061-1v1-J, January 31, 2014
A P P L I C A T I O N
N O T E
(TYPE5)
シリーズ名
品種型格 (パッケージサフィックスは除く)
MB9A110K
MB9AF111K,MB9AF112K
MB9A310K
MB9AF311K,MB9AF312K
(TYPE6)
シリーズ名
MB9A140NA
品種型格 (パッケージサフィックスは除く)
MB9AF141LA,MB9AF142LA,MB9AF144LA
MB9AF141MA,MB9AF142MA,MB9AF144MA
MB9AF141NA,MB9AF142NA,MB9AF144NA
MB9A340NA
MB9AF341LA,MB9AF342LA,MB9AF344LA
MB9AF341MA,MB9AF342MA,MB9AF344MA
MB9AF341NA,MB9AF342NA,MB9AF344NA
MB9AA40NA
MB9AFA41LA,MB9AFA42LA,MB9AFA44LA
MB9AFA41MA,MB9AFA42MA,MB9AFA44MA
MB9AFA41NA,MB9AFA42NA,MB9AFA44NA
MB9AB40NA
MB9AFB41LA,MB9AFB42LA,MB9AFB44LA
MB9AFB41MA,MB9AFB42MA,MB9AFB44MA
MB9AFB41NA,MB9AFB42NA,MB9AFB44NA
(TYPE7)
シリーズ名
MB9A130N
品種型格 (パッケージサフィックスは除く)
MB9AF131M,MB9AF132M
MB9AF131N,MB9AF132N
MB9AA30N
MB9AFA31L,MB9AFA32L
MB9AFA31M,MB9AFA32M
MB9AFA31N,MB9AFA32N
(TYPE8)
シリーズ名
MB9A150R
品種型格 (パッケージサフィックスは除く)
MB9AF154M,MB9AF155M,MB9AF156M
MB9AF154N,MB9AF155N,MB9AF156N
MB9AF154R,MB9AF155R,MB9AF156R
January 31, 2014, AN706-00061-1v1-J
7
A P P L I C A T I O N
N O T E
(TYPE9)
シリーズ名
MB9B120M
品種型格 (パッケージサフィックスは除く)
MB9BF121K,MB9BF122K,MB9BF124K
MB9BF121L,MB9BF122L,MB9BF124L
MB9BF121M,MB9BF122M,MB9BF124M
MB9B320M
MB9BF321K,MB9BF322K,MB9BF324K
MB9BF321L,MB9BF322L,MB9BF324L
MB9BF321M,MB9BF322M,MB9BF324M
MB9B520M
MB9BF521K,MB9BF522K,MB9BF524K
MB9BF521L,MB9BF522L,MB9BF524L
MB9BF521M,MB9BF522M,MB9BF524M
8
AN706-00061-1v1-J, January 31, 2014
A P P L I C A T I O N
N O T E
1 イントロダクション
1.1
概要
本書は、FM3 ファミリの開発環境を、Eclipse をベースとした GNU ツールチェーンで構築
するための方法を説明します。ホストとターゲットのハードウェアには下記を使用します。
本書では、ICE に J-Link もしくは ARM-USB-TINY を使用するための方法を記載します。
ホストマシン OS
Windows7(32 ビット)
ICE
J-Link / ARM-USB-TINY
ターゲットボード
SK-FM3-176PMC-ETHERNET V1.1
ターゲットマイコン
MB9BFD18T
図 1 Spansion スターターキット SK-FM3-176PMC-ETHERNET
本書では、開発環境を構築するために下記のプログラムを使用します。
コンパイラ
YAGARTO
ドライバ
LibUSB
デバッガ
OpenOCD
統合開発環境
Eclipse + C/C++開発ツールセット(CDT)
その他
Java Runtime Environment(JRE)
January 31, 2014, AN706-00061-1v1-J
9
A P P L I C A T I O N
1.2
N O T E
JTAG インタフェース
MCU へのプログラムの書込みやデバッグには JTAG を使用します。JTAG を使用する際の
ホストとターゲットの関係を以下の図に示します。
クライアント
GNU GDB Source Code Debugger
arm-none-eabi-gdb.exe
サーバ
TCP
OpenOCD
USB
JTAG インタフェース
ARM JTAG
Eclipse
ターゲット
ホスト
図 2 JTAG を使用する際のホストとターゲットの関係
10
AN706-00061-1v1-J, January 31, 2014
A P P L I C A T I O N
1.3
N O T E
J-Link
J-Link には IAR 社製のものを使用します。
図 3 IAR 社製 J-Link
J-Link は下記の特徴があります。
 USB から電源供給
 J-Link GDB サーバが使用可能
 RAM / Flash へ書込み可能
 フラッシュブレークポイントが使用可能
 SWD / SWV が使用可能
 電圧範囲:1.2V~5V
詳細は下記の URL をご参照ください。
http://www.iar.com/Global/Products/Hardware-Debug-probes/DS-J-Link-ARM-09.pdf
January 31, 2014, AN706-00061-1v1-J
11
A P P L I C A T I O N
1.4
N O T E
ARM-USB-TINY
olimex 社製の ARM-USB-TINY を使用します。
図 4 olimex 社製 ARM-USB-TINY
ARM-USB-TINY は下記の特徴があります。
 ARM マイコンのデバッグ可能(OpenOCD がサポートしているものに限る)
 高速 USB2.0 JTAG ドングルインタフェース
 ARM 標準の 2×10 ピン JTAG コネクタを使用可能
 電圧範囲:2V~5V
 OpenOCD をサポート
詳細は下記の URL をご参照ください。
https://www.olimex.com/Products/ARM/JTAG/ARM-USB-TINY/
12
AN706-00061-1v1-J, January 31, 2014
A P P L I C A T I O N
N O T E
2 コンパイラ
2.1
Yet another GNU ARM Tool Chain (YAGARTO)
現在、数多くの GNU ARM コンパイラツールセットが、ビルドされた状態でウェブに公開
されています。本書では Michael Fischer 社が開発した YAGARTO という ARM コンパイラ
ツールを使用します。使用するバージョンは Windows(Intel)向けにコンパイルされたもので
す。
ARM コンパイラ以外にも、YAGARTO プロジェクトは Eclipse CDT のプロジェクト作成に
必要なツール(例えば make ユーティリティ)を提供しています。
2.2
YAGARTO ツールのダウンロード方法
YAGARTO コンポーネントは下記のウェブページからダウンロードできます。
http://www.yagarto.de/
左側のメニューにある”Download”をクリックします。
January 31, 2014, AN706-00061-1v1-J
13
A P P L I C A T I O N
N O T E
リンク先には推奨されている最新バージョンがアップされています。
ここでは最初の 2 つのパッケージのみをダウンロードします。3 つ目の”Eclipse”と”Eclipse
CDT”は 7 章で別途説明します。
2.3
YAGARTO ツールのインストール方法
任意のフォルダ(ここでは”Yagarto-Downloads”)にパッケージを保存後、これらのインス
トールを開始します。
“yagarto-tools-20100703-setup”(もしくはそれ以降の最新版)から make ユーティリティを
インストールします。
14
AN706-00061-1v1-J, January 31, 2014
A P P L I C A T I O N
January 31, 2014, AN706-00061-1v1-J
N O T E
15
A P P L I C A T I O N
N O T E
続いて、“yagarto-bu-2.21_gcc-4.5.2-c-c++_nl-1.19.0_gdb-7.2_eabi_20101223”もしくはそ
れ以降の最新版から ARM コンパイラをインストールします。
16
AN706-00061-1v1-J, January 31, 2014
A P P L I C A T I O N
N O T E
3 ドライバ
3.1
LibUSB
[備考]本章では J-Link を例にドライバの設定方法を記載していますが、ARM-USB-TINY に
も共通の内容です。
J-Link で OpenOCD を使用するためにドライバを設定します。本書では LibUSB というドラ
イバを使用します。J-Link の正規のドライバは OpenOCD に対応していないため、LibUSB
に入れ替える必要があるためです。入替えには Zadig というフリーツール(LGPL ライセン
ス)を使用します。Zadig にはあらかじめ LibUSB が含まれているため、LibUSB を個別でダ
ウンロードする必要はありません。Zadig は下記のウェブページから入手できます。
http://sourceforge.net/projects/libwdi/files/zadig/
3.2
LibUSB のインストール方法
J-Link を PC と接続します。J-Link に正規のドライバが設定されていても、特に削除する必
要はありません。Zadig を起動後、以下のようなウィンドウが表示されます。
January 31, 2014, AN706-00061-1v1-J
17
A P P L I C A T I O N
N O T E
“Options”->”List All Devices”をクリックします。
プルダウンメニューから”J-Link Driver”を選択し、Driver を”libusb-win32(v1.2.6.0)”に設定し
ます。
“Replace Driver”をクリックすると、ドライバの入替えが開始されます。以下のメッセージ
が出れば完了です。
18
AN706-00061-1v1-J, January 31, 2014
A P P L I C A T I O N
N O T E
デバイスマネージャから、”libusb-win32 devices”に J-Link driver があることを確認します。
January 31, 2014, AN706-00061-1v1-J
19
A P P L I C A T I O N
N O T E
4 デバッガ
4.1
Open On-Chip Debugger (OpenOCD)
OpenOCD は、ARM コアに JTAG インタフェースを通してアクセスするためのオープン
ツールです。OpenOCD は本書で使用する J-Link、ARM-USB-TINY を含めて多くの JTAG
ドングルをサポートしています。多くのドングルは、Future Technology Devices
International 社の FT2232D チップを搭載した FTDI デバイスで構成されています。
本章では、OpenOCD の使用方法を説明します。
4.2
LibUSB ドライバの適用
4.2.1
LibUSB ドライバサポート版の OpenOCD インストール方法
LibUSB をサポートした Windows 向けの OpenOCD プログラムが下記のウェブページから
ダウンロードできます(FM3 では OpenOCD 0.5.0 以降を使用してください)。
http://openocd.sourceforge.net/
保存し、任意のフォルダ(例えば C:¥OpneOCD_LibUSB)に解凍します。
20
AN706-00061-1v1-J, January 31, 2014
A P P L I C A T I O N
4.2.2
N O T E
OpenOCD の動作確認
OpenOCD にはコンフィグレーションスクリプトファイルである”openocd.cfg”が必要です。
MB9BFD18T 用のサンプルを下記に示します(本ファイルは本書で使用するサンプルプロ
ジェクトに含まれています)。
#interface jlink
j-Link を使用する場合はこの行を有効にしてください
#interface ft2232
#ft2232_device_desc "Olimex OpenOCD JTAG TINY"
#ft2232_layout olimex-jtag
#ft2232_vid_pid 0x15ba 0x0004
ARM-USB-TINY を使用する
場合はこれらの行を有効に
してください
# Fujitsu Cortex-M3 with 1MB Flash and 64*2 kB RAM
if { [info exists CHIPNAME] } {
set _CHIPNAME $CHIPNAME
} else {
set _CHIPNAME mb9bfxx6
}
if { [info exists ENDIAN] } {
set _ENDIAN $ENDIAN
} else {
set _ENDIAN little
}
if { [info exists CPUTAPID ] } {
set _CPUTAPID $CPUTAPID
} else {
set _CPUTAPID 0x4ba00477
}
#delays on reset lines
jtag_nsrst_delay 100
jtag_ntrst_delay 100
# Fujitsu cortex-M3 reset configuration
# reset_config trst_only
reset_config trst_and_srst
jtag newtap $_CHIPNAME cpu -irlen 4 -ircapture 0x1 -irmask 0xf -expected-id
$_CPUTAPID
set _TARGETNAME $_CHIPNAME.cpu
target create $_TARGETNAME cortex_m3 -endian $_ENDIAN -chain-position
$_TARGETNAME
# MB9BFD18 has 64*2kB of RAM on its main system bus
$_TARGETNAME configure -work-area-phys 0x1FFF0008 -work-area-size 0x8000
-work-area-backup 0
January 31, 2014, AN706-00061-1v1-J
21
A P P L I C A T I O N
N O T E
# MB9BFD18 has 1MB of user-available FLASH
# flash bank mb9bf500 <base> <size> 0 0 <target#> <variant> <cclk>
[calc_checksum]
set _FLASHNAME $_CHIPNAME.flash
flash bank $_FLASHNAME fm3 0 0 0 0 $_TARGETNAME mb9bfxx6
# 4MHz / 6 = 666kHz, so use 500
jtag_khz 500
22
AN706-00061-1v1-J, January 31, 2014
A P P L I C A T I O N
N O T E
OpenOCD の動作確認をします。まず J-Link と評価ボードを接続します。次に、コマンド
プロンプトから解凍先のフォルダへ移動し、-f の引数をつけて”openocd-0.5.0”を実行します。
-f にはコンフィグレーションファイルがあるフォルダのパスを設定してください。
>Openocd-0.5.0 -f <Your path to the Eclipse workspace project>/openocd.cfg
j-Link を使用した場合、以下の実行結果が出力されることを確認します。
January 31, 2014, AN706-00061-1v1-J
23
A P P L I C A T I O N
N O T E
ARM-USB-TINY を使用した場合、以下の実行結果が出力されることを確認します。
24
AN706-00061-1v1-J, January 31, 2014
A P P L I C A T I O N
N O T E
5 Java Runtime Environment (JRE)
5.1
JRE の確認方法
Eclipse を動作させるには、Java 仮想マシンを入手しておく必要があります。既に Java が
使用できるかをチェックするためには、DOS コンソールで java -version コマンドを使
用します。
もしコマンドが認識できない場合は、JRE のインストールが必要です。
5.2
JRE のインストール方法
JRE は下記の URL からダウンロードできます。
http://java.com/
インストールファイルをダウンロードし、JRE のインストールを開始してください。
January 31, 2014, AN706-00061-1v1-J
25
A P P L I C A T I O N
N O T E
6 Eclipse プラットフォーム
6.1
Eclipse プラットフォームのダウンロード方法
Eclipse の最新バージョンは下記のウェブページからダウンロードできます。
http://download.eclipse.org/eclipse/downloads/
Helios 3.6.1(もしくはそれ以降)は様々なパッケージが存在します。これらのパッケージは、
ダウンロードウェブページ左側のメニューから入手できます(本書では Helios 3.6.1 を使用
します)。
最低限の機能を持った Eclipse プラットフォームを使用するため、メニューから”Platform
Runtime Binary”を選択します。
26
AN706-00061-1v1-J, January 31, 2014
A P P L I C A T I O N
N O T E
Eclipse プラットフォームバイナリパッケージは、様々な OS 向けのものが入手できます。
本書で使用するために十分な 32 ビット版 Windows 向けの Eclipse パッケージは、”Platform
Runtime Binary”にある一番上の http をクリックすることでダウンロードできます。
January 31, 2014, AN706-00061-1v1-J
27
A P P L I C A T I O N
N O T E
Eclipse プラットフォームのバイナリは多くの http ミラーサイトから入手できます。それら
から 1 つのミラーサイトを選択後、ダウンロードが開始されます。
28
AN706-00061-1v1-J, January 31, 2014
A P P L I C A T I O N
N O T E
ダウンロード後、eclipse-platform-SDK-3.6.1-win32.zip を保存し、例えば C:¥に解凍します。
インストールファイルを実行し、Eclipse のインストールは完了です。
January 31, 2014, AN706-00061-1v1-J
29
A P P L I C A T I O N
6.2
N O T E
Eclipse IDE の開始方法
初めに、C:¥eclipse フォルダにある eclipse.exe を実行し、Eclipse のプロジェクトファイル
を保存するワークスペースを指定します。
ワークスペースを指定すると、Eclipse がスタートします。
30
AN706-00061-1v1-J, January 31, 2014
A P P L I C A T I O N
N O T E
7 C/C++開発ツールキット(CDT)
7.1
最新ソフトウェアのインストール方法
Eclipse で C/C++の開発をするためには、CDT パッケージを Eclipse へインポートする必要
があります。CDT パッケージはプラグインのように入手できます。
Eclipse で最新のソフトウェアをインストールするためには、Eclipse を起動し以下のとお
り”Help”->”Install New Software menu…”をクリックします。
ユーザは、追加したいソフトウェアを選択できます。これは CDT プラグインだけでなくほ
かのパッケージを Eclipse へインストールする場合も同様です。”add”ボタンをクリック
後、”Add Repository”ウィンドウが表示されます。
January 31, 2014, AN706-00061-1v1-J
31
A P P L I C A T I O N
N O T E
Eclipse には新しいプラグインをインストールする際に 2 つの方法があります。
プラグインを JAR ファイルや ZIP ファイルのようにローカルで持っている場合は、オフラ
インでインストールできます。
プラグインをウェブページから入手する場合は、オンラインでインストール(もしくはアッ
プデート)します。
オンラインでのインストール方法が推奨されています。オンラインでインストールする場
合は、インストール前にネットワーク環境を確認してください。
32
AN706-00061-1v1-J, January 31, 2014
A P P L I C A T I O N
7.2
N O T E
Eclipse ネットワークコンフィグレーション
“Window”->”Preferences”から、ネットワークのコンフィグレーションを設定できます。
“Network connections”を選択します。このフィールドから、Eclipse をインターネットへ接
続するために必要な設定を編集できます。
変更後、”Apply”ボタンをクリックして新しいネットワークコンフィグレーションを保存し
ます。これで、CDT プラグインをオンラインでインストールできます。
January 31, 2014, AN706-00061-1v1-J
33
A P P L I C A T I O N
7.3
N O T E
Eclipse CDT プラグイン
CDT プラグインには Standard と Zylin のバージョンが存在します。どちらか 1 つのバー
ジョンをインストールしてください(本書では Standard を使用します)。
新しい CDT プラグインのインストール方法を下記に示します。
“Help”メニューから、”Install New Software…”をクリックします。
次のウィンドウ”Available Software Sites”から、CDT のダウンロードミラーサイトを探しま
す。ミラーサイトは http://download.eclipse.org/tools/cdt/releases/helios/です。
34
AN706-00061-1v1-J, January 31, 2014
A P P L I C A T I O N
N O T E
目的のミラーサイトがない場合、”Add”ボタンをクリックします。”Name”に CDT、”Location”
に http://download.eclipse.org/tools/cdt/releases/helios/と入力してください。
“OK”ボタンをクリックすると、以下のウィンドウが表示されます。”CDT Main Features”
と”CDT Optional Features”の両方のリストを開きます。
January 31, 2014, AN706-00061-1v1-J
35
A P P L I C A T I O N
N O T E
次に示すとおりのステップを実行してください。
36
AN706-00061-1v1-J, January 31, 2014
A P P L I C A T I O N
N O T E
Eclipse が CDT プラグインのインストールを開始します。
プラグインのインストールが終わったら、Eclipse IDE を再起動します。
January 31, 2014, AN706-00061-1v1-J
37
A P P L I C A T I O N
N O T E
8 Eclipse IDE の使用方法
8.1
C/C++パースペクティブ
Eclipse IDE を起動します。
以下のような”Workspace Launcher”ダイアログが表示されます。ここには、Eclipse CDT プ
ロジェクトで使用するために指定した”workspace”が設定されています(詳細は 6.2 章を参
照)。
38
AN706-00061-1v1-J, January 31, 2014
A P P L I C A T I O N
N O T E
これで Eclipse が立ち上がり、以下の”Welcome to Eclipse”ページが表示されます。
C/C++で開発する場合は、C/C++パースペクティブへ移動します。
“Window”->”Open Perspective”を選び、”C/C++”をクリックして C/C++パースペクティブを
開きます。
January 31, 2014, AN706-00061-1v1-J
39
A P P L I C A T I O N
8.2
N O T E
C/C++プロジェクトの作成
Eclipse C/C++パースペクティブから、ターゲット(ここでは FM3 ファミリ)のプロジェクト
を作成できます。”File”->”New”->”C Project”を選択します。
以下の左の図のとおり、“New Project wizard”で”Makefile Project”の”+”をクリックし”Empty
Project”を選びます。プロジェクト名(例えば”mb9bfxxx_ioport_counter”)を入力し”Next”をク
リックします。次に右の図のとおり”Finish”を選択します。
40
AN706-00061-1v1-J, January 31, 2014
A P P L I C A T I O N
N O T E
以下に示すとおり、左側に C/C++プロジェクトが表示されますが、まだソースファイルは
含まれていません。大抵の場合、”File”->”New”->”Source File”を選びファイル名を入力後に
コーディングを開始します。しかし本書では既存のソースファイルをインポートします。
“File”->”Import…”をクリックし、ファイルのインポートウィンドウを表示させます。
“File System”を選択し、”Next”をクリックします。
January 31, 2014, AN706-00061-1v1-J
41
A P P L I C A T I O N
N O T E
“From directory” テ キ ス ト ボ ッ ク ス へ イ ン ポ ー ト し た い プ ロ ジ ェ ク ト を 入 力 す る た
め、”Browse”ボタンを選択します。本書では io-port というテンプレートプロジェクトを使
用します。本プロジェクトにはソフトウェアパッケージが含まれています。あらかじめ
io-port プロジェクトを保存しておいてください(例えば C:¥downloads¥io-port)。
io-port フォルダを選択後、以下のとおり”Select All”ボタンをクリックします。フォルダ内の
全ファイルを使用するためです。”Finish”をクリックすると、ファイルのインポート処理が
開始されます。
42
AN706-00061-1v1-J, January 31, 2014
A P P L I C A T I O N
N O T E
以下のように C/C++プロジェクトに mb9bfxxx_ioport_counter が表示されます。ここには
インポートしたファイルがすべて表示されます。プロジェクト名の”+”をクリックすること
でインポートファイルをツリーで開くことができます。
以下の図では、main.c ファイルをクリックして中央のエディタビューワに表示させていま
す。”Project Explorer”では main.c の変数と関数が表示されます。例えば変数 count を
クリックすることで、エディタビューワ内の count が定義された箇所へジャンプします。
January 31, 2014, AN706-00061-1v1-J
43
A P P L I C A T I O N
8.3
N O T E
プロジェクトのクリーニング
プロジェクトをコンパイルするためには、まず自動ビルドを無効にします。IDE の”Project”
メニューから”Build Automatically”のチェックを外してください。
プロジェクトをクリーンします。Project Explorer から mb9bfxxx_ioport_counter を選択
し、”Project”メニューから”Clean…”をクリックします。
44
AN706-00061-1v1-J, January 31, 2014
A P P L I C A T I O N
N O T E
Clean ウィンドウから”Clean all projects”のオプションを外し、目的のプロジェクトを選択
します。”Start a build immediately”のオプションも外してください。
“OK”ボタンをクリックすることでコンフィグレーションが完了し、クリーン処理が始まり
ます。
January 31, 2014, AN706-00061-1v1-J
45
A P P L I C A T I O N
N O T E
コンソールを開くことで、クリーン処理の結果を見ることができます。
46
AN706-00061-1v1-J, January 31, 2014
A P P L I C A T I O N
8.4
N O T E
プロジェクトのビルド
[備考]本書で使用するソフトウェアパッケージの makefile を使用する場合、すべてのパス
(例えば OpenOCD へのパスなど)を確認し、インストールパスを個別に設定してください。
mb9bfxxx_ioport_counter プロジェクトを、既にインストールしている YAGARTO ツール
チェーンでコンパイルできます。これには、Project Explorer から mb9bfxxx_ioport_counter
を選択し、右クリックで表示されたリストから”Build Project”を選択します。
January 31, 2014, AN706-00061-1v1-J
47
A P P L I C A T I O N
N O T E
以下のように、コンソールから結果を見ることができます。
Project Explorer に、プロジェクトのアウトプットファイル(*.bin、*.elf など)が生成されて
います。
48
AN706-00061-1v1-J, January 31, 2014
A P P L I C A T I O N
8.5
N O T E
メイクターゲットの作成
メイクターゲットは既に mb9bfxxx_ioport_counter プロジェクトに設定されています。新し
いプロジェクトをセットアップした、もしくはターゲットを削除してしまった場合に本章
の作成方法を参照してください。
mb9bfxxx_ioport_counter の makefile がビルドプロセスを構成します。makefile は、RAM /
ROM 上でデバッグするためのファイルを生成します。また、Spansion Flash Programmer
のようなツールを使用した Flash への書込みをするためのファイルも生成します。
メイクターゲットは RAM と ROM(Flash)で別々に作成する必要があります。また本書では
クリーン処理も追加します。
メイクターゲットを作成するためには、Project Explorer から mb9bfxxx_ioport_counter を
選択し、右クリックのメニューから”Make Target”を選択します。
January 31, 2014, AN706-00061-1v1-J
49
A P P L I C A T I O N
N O T E
“Target name”に Make(RAM)と入力し、”Same as the target name”のチェックを外し、”Make
target”に RAM と入力します。”OK”をクリックすることで”Make(RAM)”を生成できます。同
様に、”Make(ROM)”、”Program-Flash”、”Clean”を作成します。
50
AN706-00061-1v1-J, January 31, 2014
A P P L I C A T I O N
N O T E
次 の 図 に ”Make Target” ビ ュ ー ワ が 確 認 で き ま す 。 ダ ブ ル ク リ ッ ク す る こ と
で、”Make(RAM)”、”Make(ROM)”、”Clean”のビルドプロセスを開始できます。
コンソールからプロセスの完了を確認できます。
January 31, 2014, AN706-00061-1v1-J
51
A P P L I C A T I O N
N O T E
9 サンプル Eclipse プロジェクト
本書で使用するプロジェクトは以下の構成になっています。
inc フォルダにすべてのプロジェクトで使用する I/O ヘッダファイルが含まれています。こ
こには、CMSIS とスタートアップのヘッダファイルも含まれています。prj フォルダには
リンカスクリプトファイル、src フォルダにはソースファイルが含まれています。
またサンプルプロジェクトには makefile も含まれています。
Includes フォルダにはビルドに必要な Yagarto ライブラリ(例えば stdint.h)が含まれていま
す。
ほかのソースファイルは src フォルダに格納してください。
新しいヘッダファイルは inc フォルダもしくは、includes フォルダに格納できます。
52
AN706-00061-1v1-J, January 31, 2014
A P P L I C A T I O N
9.1
N O T E
ファイルの追加
プロジェクトを開き、ファイルを追加したいフォルダを選択して右クリックします。
メニューから”import”を選択してください。
January 31, 2014, AN706-00061-1v1-J
53
A P P L I C A T I O N
N O T E
ファイルを選択し、”Next”ボタンをクリックしてください。
“Browse”ボタンをクリックし、追加するファイルを選択します。
54
AN706-00061-1v1-J, January 31, 2014
A P P L I C A T I O N
N O T E
インポート後、リストにファイルが追加されていることを確認してください。
“Finish”ボタンをクリックすることで、選択したファイルを指定フォルダにインポートでき
ます。
January 31, 2014, AN706-00061-1v1-J
55
A P P L I C A T I O N
9.2
N O T E
Includes フォルダへライブラリを追加
いくつかのライブラリヘッダ(例えば stdint.h)を、Yagarto インストールフォルダからインク
ルードする必要があります。プロジェクトを選択して右クリックし、”Proprieties”を選択し
ます。ここで、選択したプロジェクトのコンフィグレーションを変更できます。
56
AN706-00061-1v1-J, January 31, 2014
A P P L I C A T I O N
N O T E
下記のとおり設定してください。
1.
“C/C++ General”を選択
2.
“Paths and Symbols”をダブルクリック
3.
“Add”をクリック
4.
“Add to all languages”にチェック
5.
“File system”を選択しインクルードフォルダを指定
6.
インクルードフォルダを選択
7.
“browser”の”OK”をクリック
8.
“Add directory path”の”OK”をクリック
January 31, 2014, AN706-00061-1v1-J
57
A P P L I C A T I O N
N O T E
新しいライブラリフォルダが Includes フォルダに追加されます。
58
AN706-00061-1v1-J, January 31, 2014
A P P L I C A T I O N
9.3
N O T E
makefile
makefile は GNU メイクツールに対する多くのインストラクションから構成されています。
これらのインストラクションは、ユーザにとって必要な情報を設定してプロジェクトをメ
イクするために使用されます。makefile は本書で使用するソフトウェアパッケージに含まれ
ています。
makefile のインストラクションの詳細を下記に説明します。本章ではインストラクションを
意味ごとに複数のパートに分けています。
最初のパートでは、GUN ツールが必要とするコンパイラ(arm-none-eabi-gcc-.exe)、アセン
ブラ(arm-none-eabi-as.exe)、リンカ(arm-none-eabi-ld.exe)、をプロジェクトに設定します。
コンパイラ、アセンブラによって生成されたファイルはオブジェクトファイル(*.o)とよばれ
ます。コンパイラとアセンブラに加え、GNU ツール(arm-none-eabi-objcopy.exe)からアウ
トプットファイル(*.elf)、リンカから他フォーマット(例えば hex ファイル(*.hex)もしくはバ
イナリファイル(*.bin))、を生成するための設定が必要です。
TRGT = arm-none-eabiCC = $(TRGT)gcc
AS = $(TRGT)as
LD = $(TRGT)ld –v
CP = $(TRGT)objcopy
本章では、必要とされるすべての GNU ツールがインストールされており、2 章のインス
トール手順によって Yagarto が windows のパスに追加されていることが前提です。これら
のツールは、Yagarto GNU ARM ツールチェーンのインストールフォルダの bin フォルダに
格納されています。
次のパートは、GNU リンカが生成したアウトプットファイル(*.elf)からほかのフォーマット
を生成するために必要な GNU Objcopy ツールのオプションです。
最初の行は Intel フォーマットである hex ファイル(*.hex)を生成します。2 行目はバイナリ
ファイル(*.bin)を、最後の行では Motorola S-record の hex ファイル(*.mhx)を生成します。
HEX = $(CP) -O ihex
BIN = $(CP) -I elf32-little -O binary
SREC = $(CP) -O srec
January 31, 2014, AN706-00061-1v1-J
59
A P P L I C A T I O N
N O T E
次の行ではすべてのプロジェクト名を定義します。定義した名前は、GNU リンカと GNU
Objcopy ツールにより他フォーマットへコピーされたアウトプットファイルに使用されま
す。
# Define project name here
PROJECT = io-port
サンプル Eclipse プロジェクトは下記のプロジェクトフォルダを含んでいます。
60

inc:すべてのインクルードファイルを格納

prj:すべてのリンカスクリプトファイルを格納

src:すべてのソースファイル(*.c と*.s)を格納
AN706-00061-1v1-J, January 31, 2014
A P P L I C A T I O N
N O T E
本フォルダ構成は下記のとおり定義できます。
# Define linker script file here
LDSCRIPT_RAM = ./prj/MB9BFD18_ram.ld
LDSCRIPT_ROM = ./prj/MB9BFD18_rom.ld
# List C source files here
SRC = ./src/main.c ¥
./src/core_cm3.c ¥
./src/system_mb9bfd1x.c
# List ASM source files here
ASRC = ./src/ startup_mb9bfd1x.s
# List all user directories here
UINCDIR = ./inc
January 31, 2014, AN706-00061-1v1-J
61
A P P L I C A T I O N
N O T E
次のパートは使用しません。ユーザがほかの定義やライブラリモジュールの追加を意図的
にする場合に、本パートを使用します。
#########################################################################
# Start of default and user defines
#
# List all default C defines here, like -D_DEBUG=1
DDEFS =
# List all default ASM defines here, like -D_DEBUG=1
DADEFS =
# List all default directories to look for include files here
DINCDIR =
# List the default directory to look for the libraries here
DLIBDIR =
# List all default libraries here
DLIBS =
# List all user C define here, like -D_DEBUG=1
UDEFS =
# Define all user ASM defines here
UADEFS =
# List the user directory to look for the libraries here
ULIBDIR =
# List all user libraries here
ULIBS =
#
# End of default and user defines
#########################################################################
62
AN706-00061-1v1-J, January 31, 2014
A P P L I C A T I O N
N O T E
次のパートでは、プロジェクトをビルドする際にコンパイラ、アセンブラ、リンカがオプ
ションとして使用する追加の定義とロケーション(ヘッダファイルやライブラリモジュール
の場所)の設定です。

INCDIR: コンパイラフォルダオプション(例えば、C ヘッダは”UINCDIR=./inc”)

LIBDIR: リンカライブラリフォルダオプション

DEFS: コンパイラ定義オプション

ADEFS: アセンブラ定義オプション

LIBS: リンカライブラリオプション
本パートは変更する必要はありません。すべての定義は前述のパートで設定されているた
めです。
INCDIR
LIBDIR
DEFS
ADEFS
LIBS
=
=
=
=
=
$(patsubst %,-I%,$(DINCDIR) $(UINCDIR))
$(patsubst %,-L%,$(DLIBDIR) $(ULIBDIR))
$(DDEFS) $(UDEFS)
$(DADEFS) $(UADEFS)
$(DLIBS) $(ULIBS)
次の行はオブジェクトファイルを確定させます。つまり、src フォルダに格納されているす
べての C ファイルとアセンブラ(*.s)ファイルをオブジェクトファイル(*.o)にします。
OBJS
= $(SRC:.c=.o) $(ASRC:.s=.o)
次の行はコンパイラの最適化レベルを設定します。
# Define optimization level here
OPT = -O0
以下のインストラクションは、ターゲットの ARM プロセッサ(cortex-m3)を指定します。
コンパイラとアセンブラは、アセンブラコードを生成する際どのインストラクションセッ
トを使用するかを本オプションを使用して決定します。
MCU
= cortex-m3
MCFLAGS = -mcpu=$(MCU)
January 31, 2014, AN706-00061-1v1-J
63
A P P L I C A T I O N
N O T E
GNU コンパイラによって使用されるすべてのオプションは、次のパートで設定します。
CPFLAGS
CPFLAGS
CPFLAGS
CPFLAGS
CPFLAGS
CPFLAGS
CPFLAGS
CPFLAGS
CPFLAGS
CPFLAGS
CPFLAGS
CPFLAGS
CPFLAGS
CPFLAGS
CPFLAGS
CPFLAGS
CPFLAGS
CPFLAGS
= $(MCFLAGS)
+= $(OPT)
+= -gdwarf-2
+= -mthumb
+= -mapcs-frame
+= -msoft-float
+= -mno-sched-prolog
+= -fno-hosted
+= -mtune=cortex-m3
+= -mfix-cortex-m3-ldrd
+= -ffunction-sections
+= -fdata-sections
+= -fomit-frame-pointer
+= -Wall
+= -Wstrict-prototypes
+= -fverbose-asm
+= -Wa,-ahlms=$(<:.c=.lst)
+= $(DEFS)
C ソースファイルとインクルードされるヘッダファイルとの間の依存情報を生成するため
に、コンパイラフラグを使用可能に設定します。生成される情報は”make clean”でプロジェ
クトをクリーンすると削除されます。
# Generate dependency information
CPFLAGS
+= -MD -MP -MF .dep/$(@F).d
以下の行は GNU アセンブラフラグです。
ASFLAGS
ASFLAGS
ASFLAGS
ASFLAGS
ASFLAGS
ASFLAGS
= $(MCFLAGS)
+= -g
+= -gdwarf-2
+= -mthumb
+= -amhls=$(<:.s=.lst)
+= $(ADEFS)
次のパートはリンカフラグを決定します。
LK
LK
LK
LK
LK
LK
64
=
+=
+=
+=
+=
+=
-static -mcpu=cortex-m3 -mthumb -mthumb-interwork
-nostartfiles
-Wl,--start-group
-lc -lg -lstdc++ -lsupc++
-lgcc -lm
-Wl,--end-group
AN706-00061-1v1-J, January 31, 2014
A P P L I C A T I O N
N O T E
本 makefile は RAM / ROM のデバッグ用のアウトプットファイル(*.elf)を生成するビルドプ
ロセスを管理します。なぜなら、それぞれのデバッグコンフィグレーションのリンカスク
リプトファイルは別々に設定しなければならないためです。
次のインストラクションは RAM のリンカフラグです。
1.
prj
フ ォ ル ダ に 格 納 さ れ て い る
RAM
ス ク リ プ ト フ ァ イ
ル”Fujitsu_cortex-M3_ram_V21.ld”を設定し、LDSRIPT_RAM 命令を与える
2.
マップファイル(*.map)を生成
3.
ライブラリフォルダを与える(設定されている場合)
LDFLAGS_RAM = -T$(LDSCRIPT_RAM)
LDFLAGS_RAM += -Wl,-Map=$(PROJECT)_ram.map,--cref,--no-warn-mismatch
LDFLAGS_RAM += $(LIBDIR)
次のインストラクションは ROM のリンカフラグです。
1.
prj
フ ォ ル ダ に 格 納 さ れ て い る
ROM
ス ク リ プ ト フ ァ イ
ル”Fujitsu_cortex-M3_rom_V10.ld”を設定し、LDSRIPT_ROM 命令を与える
2.
マップファイル(*.map)を生成
3.
ライブラリフォルダを与える(設定されている場合)
LDFLAGS_ROM = -T$(LDSCRIPT_ROM)
LDFLAGS_ROM += -Wl,-Map=$(PROJECT)_rom.map,--cref,--no-warn-mismatch
LDFLAGS_ROM += $(LIBDIR)
次のパートでは、RAM ターゲットを生成するためのメイクルールを定義します。RAM
ターゲットをビルドすることで、すべてのオブジェクトファイル(*.o)とアウトプットファイ
ル(*.els、*.bin、*.hex、*.mhx)が生成されます。
1.
最初の定義フラグはアセンブラ向けで変数 Debug_RAM に 1 を設定。本変数は
startup_mb9bfd1x.s ファイルの if 文で実行され、RAM と ROM の初期化ルーチンを区
別する
2.
オブジェクトファイル($(OBJS))のビルド開始前にターゲットをクリーンする
3.
アウトプットファイル(*.elf)のビルドを開始
4.
アウトプットファイル(*.hex)のビルドを開始
5.
アウトプットファイル(*.bin)のビルドを開始
6.
アウトプットファイル(*.mhx)のビルドを開始
RAM:
RAM:
RAM:
RAM:
ASFLAGS += --defsym Debug_RAM=1
clean $(OBJS) $(PROJECT)_ram.elf $(PROJECT)_ram.hex
$(PROJECT)_ram.bin
$(PROJECT)_ram.mhx
January 31, 2014, AN706-00061-1v1-J
65
A P P L I C A T I O N
N O T E
次の行では ROM ターゲット定義を記載しています。ROM ターゲットはメイクターゲット
のデフォルトに設定されています。”make all”コマンドで ROM ターゲットのビルドプロセ
スが開始されます。
all: ROM
変数 Debug_RAM を 0 に設定します。ほかのインストラクションは RAM ターゲットと同
様で、アウトプットファイルのみ ROM ベース(*_rom.elf、*_rom.hex など)になります。
ROM: ASFLAGS += --defsym Debug_RAM=0
ROM: clean $(OBJS) $(PROJECT)_rom.elf $(PROJECT)_rom.hex
ROM: $(PROJECT)_rom.bin
ROM: $(PROJECT)_rom.mhx
ビルドプロセスを開始することで、すべてのソースファイル(*.c、*.s)からオブジェクト
ファイル(*.o)を生成します。
(*.c)ファイルをコンパイルする際、GNU コンパイラ(CC=arm-none-eabi-gcc.exe)がコール
されます。フラグ(CPFLAGS)とヘッダファイルの格納先がコンパイラにわたされます。
%o : %c
@ echo "--compiling--"
$(CC) -c $(CPFLAGS) -I . $(INCDIR) $< -o $@
次の行はアセンブラプロセスです。GNU アセンブラ(AS=arm-none-eabi-as.exe)はオブジェ
クトファイルを生成します。ASFLAGS は、既に定義した ROM もしくは RAM のビルド
コンフィグレーションフラグです。
%o : %s
@ echo "--assembling--"
$(AS) $(ASFLAGS) $< -o $@
リンクプロセスでは、GNU コンパイラ(CC=arm-none-eabi-gcc.exe)がコンパイラとアセン
ブラによって生成されたすべてのオブジェクトファイル($(OBJS)=*.o)からアウトプット
ファイル(*.elf)を生成します。
ROM ターゲットをビルドする際、GNU リンカは ROM リンカスクリプトファイルを特定す
るためにオプション$(LDFLAGS_ROM) (LDFLAGS_ROM = -T$(LDSCRIPT_ROM))を使用
します。
%rom.elf: $(OBJS)
@ echo "--linking--"
$(CC) $(OBJS) $(LK) $(LDFLAGS_ROM) $(LIBS) -o $@
66
AN706-00061-1v1-J, January 31, 2014
A P P L I C A T I O N
N O T E
RAM ターゲットをビルドする際、GNU リンカは RAM リンカスクリプトファイル”
LDSCRIPT_RAM = ./prj/ MB9BFD18_ram.ld” を 特 定 す る た め に オ プ シ ョ ン
$(LDFLAGS_RAM) (LDFLAGS_RAM = -T$(LDSCRIPT_RAM))を使用します。
%ram.elf: $(OBJS)
@ echo "--linking--"
$(CC) $(OBJS) $(LK) $(LDFLAGS_RAM) $(LIBS) -o $@
次のパートは、アウトプットファイル(*.elf)をほかのフォーマット(*.hex、*.bin、*.mhx)に変
換します。
GNU ユーティリティ(CP=arm-none-eabi-objcopy.exe)はビルドプロセスでそれぞれの
フォーマットを生成するために使用します。
GNU Objcopy ツールは、本 makefile の始めに HEX、BIN、SREC マクロからコールされま
す。Objcopy オプションはこれらのマクロを設定します。
%hex: %elf
$(HEX) $< $@
%bin: %elf
$(BIN) $< $@
%mhx: %elf
$(SREC) $< $@
クリーンターゲットは clean ルールで管理されます。make clean コマンドはすべてのオブ
ジェクトファイル(*.o)、リストファイル(*.lst)、アウトプットファイル(*.elf、*.hex、*.bin、
*.mhx)を削除します。clean ルールは、RAM もしくは ROM のビルド時にいつもコールされ
ます。
clean:
-rm
-rm
-rm
-rm
-rm
-rm
-rm
-rm
-rm
-rm
-rm
-rm
-rm
-rm
-rm
-f
-f
-f
-f
-f
-f
-f
-f
-f
-f
-f
-f
-f
-f
-f
$(OBJS)
$(PROJECT)_ram.elf
$(PROJECT)_ram.map
$(PROJECT)_ram.hex
$(PROJECT)_ram.bin
$(PROJECT)_ram.mhx
$(PROJECT)_rom.elf
$(PROJECT)_rom.map
$(PROJECT)_rom.hex
$(PROJECT)_rom.bin
$(PROJECT)_rom.mhx
$(SRC:.c=.c.bak)
$(SRC:.c=.lst)
$(ASRC:.s=.s.bak)
$(ASRC:.s=.lst)
January 31, 2014, AN706-00061-1v1-J
67
A P P L I C A T I O N
N O T E
次のパートは OpenOCD を使用して内蔵 Flash に書き込む際に使用します。本パートは、
J-Link GDB Server を使用してアウトプットファイル(*.elf)の書込みやデバッグをする場合
は必要ありません。
初 め の マ ク ロ は OpenOCD の 場 所 を 設 定 し ま す 。 次 の マ ク ロ は OpenOCD サ ー バ
(openocd-0.5.0.exe)を設定します。OpenOCD サーバはスクリプトコンフィグレーションが
必要です。プロジェクトフォルダ(./)内のスクリプト(openocd.cfg)が使用されます。
# specify the directory where openocd executable and configuration files reside
OPENOCD_DIR = <HERE YOUR PATH TO OPENOCD>/openocd-0.5.0/src
# specify OpenOCD executable
OPENOCD = $(OPENOCD_DIR)openocd-0.5.0.exe
# specify OpenOCD configuration file (pick the one for your device)
OPENOCD_CFG = -f ./openocd.cfg
次のパートは FM3 へプログラムを書き込むための OpenOCD コマンドです。
# specify
OPENOCD_C
OPENOCD_C
OPENOCD_C
OPENOCD_C
OPENOCD_C
OPENOCD_C
OPENOCD_C
OPENOCD_C
OPENOCD_C
OPENOCD_C
OpenOCD flash programing commandos for FM3
+= -c init
+= -c jtag_khz 500
+= -c reset init
+= -c verify_ircapture disable
+= -c halt
+= -c poll
+= -c 'FM3 mass_erase 0'
+= -c 'flash write_image $(PROJECT)_rom.bin 0x0 bin'
+= -c reset run
+= -c shutdown
最後のパートは、ターゲットへの program(書込み)の実行です。
初めにサーバは割り当てられたコンフィグレーションスクリプト(openocd.cfg)をスタート
させます。スクリプト実行後、サーバは与えられたコマンドを実行します。書込みが完了
すると、サーバはシャットダウンし Eclipse のコンソールは“Flash Programming Finished.”
というメッセージを表示します。
# program the FM3 internal flash memory
program:
@echo "Flash Programming with OpenOCD..."
$(OPENOCD) $(OPENOCD_CFG) $(OPENOCD_C)
@echo "Flash Programming Finished."
68
AN706-00061-1v1-J, January 31, 2014
A P P L I C A T I O N
N O T E
10 Flash メモリへの書込み
10.1 OpenOCD と Flash 書込み
OpenOCD を使用して内蔵 Flash メモリにプログラムを書き込むために、Program-Flash を
作成しました(8.5 章を参照)。
9.3 章では makefile で使用されるすべてのセクションの説明を記載しています。本 makefike
で実行される最後のセクションは、内蔵 Flash に書き込むために Eclipse の“C/C++パースペ
クティブ”で使用されるメイクターゲットの”Program-Flash”を管理します。
JTAG インタフェースから USB で評価ボード”SK-FM3-176PMC-ETHERNET V1.1”と PC を
接続してください。
内蔵 Flash へプログラムを書き込むため、初めに Make(ROM)のビルドが必要です。バイナ
リファイル”io-port_rom.bin”が生成されます(8.5 章を参照)。
Make(ROM)をクリックしてください。
January 31, 2014, AN706-00061-1v1-J
69
A P P L I C A T I O N
N O T E
ビルド後、Program-Flash をビルドできるようになります。クリックすることで、OpenOCD
から Flash への書込みが開始されます。
70
AN706-00061-1v1-J, January 31, 2014
A P P L I C A T I O N
N O T E
以下の図は、OpneOCD を使用した Flash 書込みで Eclipse のコンソールに表示されるメッ
セージを示しています。
January 31, 2014, AN706-00061-1v1-J
71
A P P L I C A T I O N
N O T E
11 Eclipse 外部ツールのセットアップ
11.1 外部ツール
[備考]本章で記載するコンフィグレーションは、4 章で使用したパスを使用しています。
コンフィグレーションをセットアップする際は、個人のインストールパスを使用してくだ
さい。
“Run”のプルダウンメニューから“External Tools Configurations…”をクリックすることで
ツールをインストールできます。
11.2 外部ツールとして OpenOCD を使用
JTAG インタフェースに J-Link を使用する場合、OpenOCD を外部ツールとして設定し
J-Link で使用できるように設定します。
あらかじめ、コンフィグレーションファイルの openocd.cfg を OpenOCD_LibUSB フォル
ダ(C:¥OpenOCD_LibUSB)にコピーしておいてください。
72
AN706-00061-1v1-J, January 31, 2014
A P P L I C A T I O N
N O T E
“Run”->”External Tools”->”External Tools Configurations…”の順にクリックしてください。
“External Tools Configurations”ウィンドウが表示されます。”Program”をクリックし、”New”
ボタンから新しい外部ツールを作成します。
January 31, 2014, AN706-00061-1v1-J
73
A P P L I C A T I O N
N O T E
“Prigram”をダブルクリックしてください。
74
AN706-00061-1v1-J, January 31, 2014
A P P L I C A T I O N
N O T E
フォームに下記の内容を正確に記入していきます。
“Name”には OpenOCD と記入してください。
”Location”に、実行ファイルである openocd-0.5.0.exe を下記のとおり指定します。
C:¥OpenOCD_LibUSB¥bin¥openocd-0.5.0.exe
“Working Directory”は、”Browse File System…”ボタンをクリックし C:¥OpenOCD_LibUSB
を指定します。
Arguments には、引数”-f<your project path>¥openocd.cfg”を指定します。
January 31, 2014, AN706-00061-1v1-J
75
A P P L I C A T I O N
N O T E
“Build”タブ内の”Build before launch”のチェックを外してください。
ほかのタブ(Refresh、Environment、Common)は変更する必要はありません。
“Apply”と”Close”をクリックし、OpenOCD の外部ツール設定を閉じます。
前 述 の セ ッ ト ア ッ プ を 使 用 す る た め に は 、 ”Run”->”External Tools”->”External Tools
Configurations…”から”OpenOCD”を選択します。
次に、メニューバーのコンフィグレーションウィンドウから、”Organize Favourites”を
クリックします。
76
AN706-00061-1v1-J, January 31, 2014
A P P L I C A T I O N
N O T E
“Add”をクリックし、作成したコンフィグレーションを選択します。
“OK”をクリックして、コンフィグレーションを保存します。これでお気に入りの外部ツー
ルを加えることができます。外部ツールはメニューバーから選択することで使用できます。
January 31, 2014, AN706-00061-1v1-J
77
A P P L I C A T I O N
N O T E
12 Eclipse CDT のデバッグパースペクティブ
8 章でサンプルの FM3 プロジェクトを作成し、ビルドから作成したアウトプットファイル
(*.bin、*.mhx、*.hex)を Flash に書き込むまでを説明しました。これらのアウトプットファ
イルには、Flash もしくは RAM でデバッグするために必要なデバッグ情報ファイル(*.elf)
が含まれています。
デバッグを開始するためには、初めに Eclipse CDT の”C/C++ Perspective”から”Debug
Perspective”に変更します。
メニューの”Windows”から”Open perspective”を選択し、”Debug”をクリックします。”Debug”
は、”Other…”から探すこともできます。
クリック後、以下のウィンドウが表示されます。
78
AN706-00061-1v1-J, January 31, 2014
A P P L I C A T I O N
N O T E
12.1 OpenOCD を使用したプログラムの書込みとデバッグ
JTAG インタフェースから SK-FM3-176PMC-ETHERNET ボードを PC と USB 接続してく
ださい。J-Link と ARM-USB-TINY を接続した例をそれぞれ以下に示します。
ICE に J-Link、ARM-USB-TINY のどちらを使用しても、下記で説明する操作は共通です。
OpenOCD を起動します。OpenOCD はデーモンとして実行します。これは、バックグラ
ウンドでコマンドを待ち続けるような動作をすることを意味します。
以下のとおり、”OpenOCD”をクリックして外部ツールを起動します。
January 31, 2014, AN706-00061-1v1-J
79
A P P L I C A T I O N
N O T E
下のコンソールから、サーバが開始されたことを確認してください。
次に、マイコンを halt 状態にします。run 状態では GDB サーバと OpenOCD の間でエラー
が発生するためです。
ターミナルエミュレータ(本書では Tera Term を使用)で以下のとおり接続してください。
80
AN706-00061-1v1-J, January 31, 2014
A P P L I C A T I O N
N O T E
“Open On-Chip Debugger”と表示されたら接続が成功です。
“halt”コマンドを発行し、ターゲットが halt 状態になることを確認します。
続 い て 、 新 し く ”Debug Configuration” を 作 成 し ま す 。 以 下 の と お り 、 ”Debug
Configurations…”をクリックします。
January 31, 2014, AN706-00061-1v1-J
81
A P P L I C A T I O N
N O T E
“GDB Hardware Debugging”を選択し、“New”をクリックしてください。
まずデバッグコンフィグレーションをリネームします。ほかのデバッグコンフィグレー
ションとの混同を避けるため、プロジェクト名(io-port)に外部ツール名(OpenOCD)をつけた
名前を指定することが推奨されています。
“Project”には、”Browse”ボタンを使って” mb9bfxxx_ioport_counter”を探し、入力します。
“C/C++ Application”には、”Search Project…”ボタンを使いアプリケーションデバッガファイ
ルである”io-port-rom.elf”を指定します。
“Build configuration”には”Use Active”を設定してください。
82
AN706-00061-1v1-J, January 31, 2014
A P P L I C A T I O N
N O T E
“Select other…”をクリックし、”GDB(DSF) Hardware Debugging launcher”から”Standard
GDB Hardware Debugging launcher”に切り替えます。切替え後、”OK”をクリックしてくだ
さい。
次に、”Debugger”タブを選択します。”GDB Command”には、”Browse”ボタンを使って GDB
デバッガである”arm-none-eabi-gdb.exe”ファイルを、yagarto のインストールフォルダから
探し指定します。
“Use remote target”のチェックを外します。
January 31, 2014, AN706-00061-1v1-J
83
A P P L I C A T I O N
N O T E
次に”Startup”タブを選択します。
“Initialization Commands”に下記をコピーします。
# connect to the OpenOCD gdb server
target remote localhost:3333
monitor reset init
monitor soft_reset_halt
load
“Run Commands”に下記をコピーします。
monitor gdb_breakpoint_override soft
break main
Continue
ほかはデフォルトのまま設定してください。”Debug”をクリックし、デバッグを開始します。
84
AN706-00061-1v1-J, January 31, 2014
A P P L I C A T I O N
N O T E
デバッグが成功すると、以下の図のとおりになります。再開には、”Resume”ボタンを
クリックしてください。
デバッグ開始後、”Suspend”ボタンをクリックすることでいつでも終了できます。
January 31, 2014, AN706-00061-1v1-J
85
A P P L I C A T I O N
N O T E
12.2 RAM でのデバッグ
Flash でのデバッグ方法を 12.1 章で説明しました。ほかにも、デバイスの RAM へリンク・
ダウンロードしてデバッグすることも可能です。これには初めに RAM アプリケーションを
生成する必要があります。”C/C++ Perspective”に戻ってください。
“C/C++”をクリックすると、IDE は C/C++開発パースペクティブに移ります。”Make(RAM)”
をクリックすることで、RAM メイクターゲットをビルドし RAM アプリケーションが生成
されます(コードとデータが RAM のメモリサイズを超えないよう注意してください)。
86
AN706-00061-1v1-J, January 31, 2014
A P P L I C A T I O N
N O T E
“Debug perspective”に戻り、RAM デバッグを開始します。
PC と SK-FM3-176PMC-ETHERNET ボードを再接続します。
再接続後、OpenOCD を起動します。以下のとおり、”OpenOCD”をクリックして外部ツー
ルを起動します。
下のコンソールから、サーバが開始されたことを確認してください。
January 31, 2014, AN706-00061-1v1-J
87
A P P L I C A T I O N
N O T E
新しく”Debug Configuration”を作成します。以下のとおり、”Debug Configurations…”をク
リックします。
88
AN706-00061-1v1-J, January 31, 2014
A P P L I C A T I O N
N O T E
“GDB Hardware Debugging”を選択し、“New”をクリックします。
デバッグコンフィグレーションをリネームします。RAM デバッグと Flash デバッグを分け
るため、サフィックスに”_RAM”をつけて既に保存されているほかのデバッグコンフィグ
レーションとの混同を避けます。
“Project”には、”Browse”ボタンを使って”mb9bfxxx_ioport_counter”を探します。
“C/C++ Application”には、”Search Project…”ボタンを使ってアプリケーションデバッガファ
イルである”io-port-ram.elf”を指定します。
“Build configuration”には”Use Active”と、”Disable auto build”を設定してください。
January 31, 2014, AN706-00061-1v1-J
89
A P P L I C A T I O N
N O T E
“Select other…”をクリックし、”GDB(DSF) Hardware Debugging launcher”から”Standard
GDB Hardware Debugging launcher”に切り替えます。切替え後、”OK”をクリックしてくだ
さい。
次に、”Debugger”タブを選択します。”GDB Command”には、”Browse”ボタンを使って GDB
デバッガである”arm-none-eabi-gdb.exe”ファイルを、yagarto のインストールフォルダから
探し指定します。
“Use remote target”のチェックを外します。
90
AN706-00061-1v1-J, January 31, 2014
A P P L I C A T I O N
N O T E
次に”Startup”タブを選択します。
“Initialization Commands”に下記をコピーします。
# connect to the OpenOCD gdb server
target remote localhost:3333
monitor reset init
monitor reset halt
monitor soft_reset_halt
# Vector table placed in RAM
monitor mww 0xE000ED08 0x1fff0000
load
RAM のスタートアドレス
を設定
“Run Commands”に下記をコピーします。
break main
set $r13 = *(int*)0x1fffE000
set $pc = *(int*)0x1fff0004
continue
スタックポインタ
のアドレス
RAM のスタートアドレス
+4 を設定
ほかはデフォルトのまま設定してください。”Debug”をクリックし、デバッグを開始します。
January 31, 2014, AN706-00061-1v1-J
91
A P P L I C A T I O N
N O T E
RAM デバッグが成功すると、以下の図のとおりになります。再開には、”Resume”ボタンを
クリックしてください。
“Disassembly”から、現在のインストラクションを確認できます。”Window”メニューか
ら”Show View”を選択してください。
92
AN706-00061-1v1-J, January 31, 2014
A P P L I C A T I O N
N O T E
13 Eclipse Embedded Systems Register View プラグイン
Eclipse の”EmbSysRegView”プラグインは FM3 のすべての資源のペリフェラルレジスタを
表示し編集できます。
13.1 プラグインのインストール
”EmbSysRegView”プラグインを Eclipse にインストールするために、メニューの”Help”か
ら”Install New Software…”を選択します。
“Add”ボタンをクリックし、”Name”にはプラグインの名前を入力(例えば EmbSysRegView)
し、”Location”には下記の URL を指定してください。
http://embsysregview.sourceforge.net/update
確認後、”OK”をクリックします。
January 31, 2014, AN706-00061-1v1-J
93
A P P L I C A T I O N
N O T E
すべてのプラグインを選択して”Next”をクリックします。
“Next”をクリックしてインストールの詳細を確認します。
94
AN706-00061-1v1-J, January 31, 2014
A P P L I C A T I O N
N O T E
ライセンスを確認し、”I accept the term of the license agreement”にチェックを入れ”Finish”
でウィンドウを閉じます。
Eclipse を再起動します。”Restart Now”をクリックしてください。
これで、”EmbSysRegView”のインストールが完了です。
January 31, 2014, AN706-00061-1v1-J
95
A P P L I C A T I O N
N O T E
13.2 Register View の使用
FM3 のペリフェラルレジスタのビューをサポートするためには、FM3 用の xml ファイルを
2 つ使用する必要があります。本 xml ファイルは本書で使用するソフトウェアパッケージに
含まれているので、Eclipse プラグインフォルダにコピーしてください。
Eclipse のインストールフォルダは以下のような構造になっています。
plugins フォルダを開き、インストールした“EmbSysRegView”プラグインのインストール
ファイルを探します。
96
AN706-00061-1v1-J, January 31, 2014
A P P L I C A T I O N
N O T E
フォルダを開き、¥data¥cortex-m3 のフォルダ内に新しいフォルダ(例えば Fujitsu)を作成し
ます。
Fujitsu フォルダを作成後、”embsysregview.dtd”と”MB9BF506N.xml”の両方のファイルを置
きます。
Eclipse IDE に戻り、インストールしたレジスタビューを使用します。
メニューの“Window”から”Preferences”を開きます。
January 31, 2014, AN706-00061-1v1-J
97
A P P L I C A T I O N
N O T E
以下の図のように使用するデバイスを選択します。
レジスタビューのコンフィグレーション確認後、ツールを使用します。CDT のデバッグ
パ ー ス ペ ク テ ィ ブ ( 詳 細 は 12 章 を 参 照 く だ さ い ) か ら レ ジ ス タ ビ ュ ー を 開 く に
は、”Window”->”Show View”->”Other…”を選択します。
98
AN706-00061-1v1-J, January 31, 2014
A P P L I C A T I O N
N O T E
“Debug”から” EmbSys Registers”を選択し、”OK”をクリックしてください。
デバッグ中、ブレークポイントで実行をストップし選択したレジスタの値を確認できます。
レジスタをダブルクリックすることで値のビューを開始できます。選択したレジスタは大
文字になります。レジスタの値を変えると赤字になります。マウスポインタをレジスタに
合わせると、レジスタの短い説明を見ることができます。
January 31, 2014, AN706-00061-1v1-J
99
A P P L I C A T I O N
100
N O T E
AN706-00061-1v1-J, January 31, 2014
A P P L I C A T I O N
N O T E
14 Eclipse の特徴
14.1 概要
Eclipse CDT は、ユーザが FM3 の組込みシステム開発をするにあたり多くのツールや特徴
を持っています。
本章では、デバッグパースペクティブで使用できるツールを紹介します。
14.2 Disassembly ビュー
CDT デバッグパースペクティブ(詳細は 12 章を参照ください)の”Disassembly”ビューを表
示するためには、メニューの”Window”->”Show View”->”Disassembly”を選択します。
January 31, 2014, AN706-00061-1v1-J
101
A P P L I C A T I O N
N O T E
ビューは、以下の図のとおり表示されます。
ユーザはいつでも”Suspend”ボタンをクリックすることでブレークさせることができ、
ブレーク時のインストラクションにポイントを当てます。プログラムを終了させ
る”Terminate”ボタンと間違えないでください。
102
AN706-00061-1v1-J, January 31, 2014
A P P L I C A T I O N
N O T E
14.3 CPU Register ビュー
Eclipse CDT は、コアのレジスタにリードもしくはライトのアクセスができます。
“Window”->”Show View”->”Register”を選択してください。
すべてのコアのレジスタとその値を表示します。コアのレジスタを見るには”Main”ツリーを
開いてください。
January 31, 2014, AN706-00061-1v1-J
103
A P P L I C A T I O N
N O T E
14.4 Memory ビュー
Eclupse のメモリモニタビューはデフォルトで設定されています。
“Winow”->”Show View”->”Memory”を選択してください。
新しいメモリモニタを加えるには、モニタパネルの緑色のプラスボタンをクリックします。
以下の図では 0x2000000 番地のメモリをモニタしています。
メモリアドレス(RAM や I/O 資源)は編集する場合、目的のアドレスをダブルクリックしてく
ださい。
104
AN706-00061-1v1-J, January 31, 2014
A P P L I C A T I O N
N O T E
14.5 ブレークポイントの使用
デバッグを開始後、デバッガはメイン関数にブレークポイントを設定します。
ほかのブレークポイントを設定するためには、左側のソースコードタブから行数をダブル
クリックします。
January 31, 2014, AN706-00061-1v1-J
105
A P P L I C A T I O N
N O T E
デバッグを再開します。
ブレークポイントにヒットすると、以下の図のようになります。
106
AN706-00061-1v1-J, January 31, 2014
A P P L I C A T I O N
N O T E
15 付録
15.1 用語集
本書で使用する略語を下記にまとめます。
略語
意味
*.bin
Binary Format File
(拡張子)
*.elf
Executable and Linkable
(拡張子)
Format
*.hex
Hexadecimal format file
(拡張子)
(Intel)
*.mhx
Motorola Hexadecimal
(拡張子)
Format File
CDT
C/C++ Development Tooling
EABI
JTAG
Embedded-Application
Binary Interface
Future Technology Devices
International Ltd.
Joint Test Action Group
JRE
Java Runtime Environment
GDB
GNU
GNU Debugger
“GNU’s not Unix”
LibUSB
Library for USB
None-EABI
None-Embedded-Application
Binary Interface
On-Chip
Debugger/Debugging
Open Source On-Chip
Debugger
“Yet another GNU ARM tool
chain”
FTDI
OCD
OpenOCD
YAGARTO
January 31, 2014, AN706-00061-1v1-J
説明
プログラムデータのみが含まれている
フォーマット
デバッグ情報(シンボル、アドレス、
モジュールなど)を含んだフォーマット
プログラムデータとアドレス情報を含ん
だフォーマット(Intel フォーマット)
プログラムデータとアドレス情報を含ん
だフォーマット(Motorola S-Records
フォーマット)
Eclipse のコンフィグレーションで使用
されるツールチェーン
Linux 向けの、組込みソフトウェア向け
インタフェースの標準フォーマット
社名、もしくは JTAG と USB の変換チッ
プなどを意味する
ハードウェア(本書では MCU)のテスト、
デバッグで使用する規格であり、
IEEE1149.1 として定められている
PC 上で Java アプレット(例えば Eclipse)
を動作させるための仮想マシン
GNU ツールチェーンのデバッガ
GNU ツールチェーン、もしくはオープン
ソフトウェアを開発するプロジェクト名
オープンソースライブラリの USB ドラ
イバであり、本書では Windows 向けに
コンパイルしたものを使用している
Linux 向けでない、組込みソフトウェア
向けインタフェースの標準フォーマット
オンチップデバッグ向けのデバッガ。本
書では JTAG プロトコルを使用
オープンソースコードのデバッガ
Windows 向けに移植とコンパイルされ
た GNU ツールチェーン
107
A P P L I C A T I O N
N O T E
15.2 リンク
15.2.1 ソフトウェア
Eclipse IDE:
http://download.eclipse.org/eclipse/downloads/
Yagarto Tool Chain:
www.yagarto.de
OpenOCD:
http://openocd.sourceforge.net/
LibUSB:
http://sourceforge.net/projects/libusb-win32/files/
Embedded System Register View Plug-In for Eclipse:
http://sourceforge.net/projects/embsysregview/
JRE:
http://java.com/
15.2.2 ハードウェア
IAR 社製
J-Link
http://www.iar.com/Global/Products/Hardware-Debug-probes/DS-J-Link-ARM-09.pdf
olimex 社製
ARM-USB-TINY
https://www.olimex.com/Products/ARM/JTAG/ARM-USB-TINY/
Spansion 社製 SK-FM3-176PMC-ETHERNET V1.1
http://www.spansion.com/products/microcontrollers/pages/tool-detail-sk-fm3-176pmc-ethernet.aspx
※URL は予告なく変更される可能性があります。
108
AN706-00061-1v1-J, January 31, 2014
A P P L I C A T I O N
N O T E
16 追加情報
Spansion に関する情報は下記のウェブページから参照できます。
http://www.spansion.com/JP/
- 以上 –
January 31, 2014, AN706-00061-1v1-J
109
A P P L I C A T I O N
N O T E
改版履歴
110
版数
日付
内容
1.0 版
2013/1/7
新規作成
1.1 版
2014/1/31
社名変更および記述フォーマットの変換
AN706-00061-1v1-J, January 31, 2014
A P P L I C A T I O N
N O T E
免責事項
本資料に記載された製品は、通常の産業用, 一般事務用, パーソナル用, 家庭用などの一般的用途 (ただし、用途の限定はあ
りません) に使用されることを意図して設計・製造されています。(1) 極めて高度な安全性が要求され、仮に当該安全性が
確保されない場合、社会的に重大な影響を与えかつ直接生命・身体に対する重大な危険性を伴う用途 (原子力施設における
核反応制御, 航空機自動飛行制御, 航空交通管制, 大量輸送システムにおける運行制御, 生命維持のための医療機器, 兵器シ
ステムにおけるミサイル発射制御等をいう) 、ならびに(2) 極めて高い信頼性が要求される用途 (海底中継器, 宇宙衛星等を
いう) に使用されるよう設計・製造されたものではありません。上記の製品の使用法によって惹起されたいかなる請求また
は損害についても、Spansion は、お客様または第三者、あるいはその両方に対して責任を一切負いません。半導体デバイス
はある確率で故障が発生します。当社半導体デバイスが故障しても、結果的に人身事故, 火災事故, 社会的な損害を生じさ
せないよう、お客様において、装置の冗長設計, 延焼対策設計, 過電流防止対策設計, 誤動作防止設計などの安全設計をお願
いします。本資料に記載された製品が、外国為替及び外国貿易法、米国輸出管理関連法規などの規制に基づき規制されてい
る製品または技術に該当する場合には、本製品の輸出に際して、同法に基づく許可が必要となります。
商標および注記
このドキュメントは、断りなく変更される場合があります。本資料には Spansion が開発中の Spansion 製品に関する情報が
記載されている場合があります。Spansion は、それらの製品に対し、予告なしに仕様を変更したり、開発を中止したりする
権利を有します。このドキュメントに含まれる情報は、現状のまま、保証なしに提供されるものであり、その正確性, 完全
性, 実施可能性および特定の目的に対する適合性やその市場性および他者の権利を侵害しない事を保証するものでなく、ま
た、明示, 黙示または法定されているあらゆる保証をするものでもありません。Spansion は、このドキュメントに含まれる
情報を使用することにより発生したいかなる損害に対しても責任を一切負いません。
Copyright © 2013-2014 Spansion Inc. All rights reserved.
®
®
®
TM
TM
商標:Spansion , Spansion ロゴ (図形マーク), MirrorBit , MirrorBit Eclipse , ORNAND 及びこれらの組合せは、米国・
日本ほか諸外国における Spansion LLC の商標です。第三者の社名・製品名等の記載はここでは情報提供を目的として表記
したものであり、各権利者の商標もしくは登録商標となっている場合があります。
January 31, 2014, AN706-00061-1v1-J
111