OpenOCDコマンドを直接実行する時は、
- Device
- Interface
- Target
などを指定し、ボードと通信します
openocd --command "set DEVICE M2S150" --file interface/microsemi-flashpro.cfg --file target/microsemi-cortex-m3.cfg
--command
と -c
、 --file
と -f
は同じです。
指定されたファイルは、 OpenOCD Search path から探します。オプションは -s
。
Device
set DEVICE
を使って、ターゲットとなるデバイスの指定をする。上記例では M2S150
Microsemi SmartFusion 2 FPGA 150K logic 品です。間違ったデバイスを指定すると
Info : JTAG tap: M2S010.tap tap/device found: 0x1f8061cf (mfg: 0x0e7 (GateField), part: 0xf806, ver: 0x1)
Warn : JTAG tap: M2S010.tap UNEXPECTED: 0x1f8061cf (mfg: 0x0e7 (GateField), part: 0xf806, ver: 0x1)
Error: JTAG tap: M2S010.tap expected 1 of 1: 0x0f8031cf (mfg: 0x0e7 (GateField), part: 0xf803, ver: 0x0)
Error: Trying to use configured scan chain anyway...
Warn : Bypassing JTAG setup events due to errors
と言われます。
表示されている HEX番号は JTAG ID。 0x1f8061cf
が M2S150、 x0f8031cf
はエラー出すためにいれた M2S010。
Configuration files
.cfg
ファイルは OpenOCD の配下にあります
- Linux で OpenOCD パッケージをインストールした場合:
/usr/share/openocd/scripts
- 自分でソースからビルドした場合:
tcl/
- SoftwareConsole version 6.2 の場合:
C:\Microsemi\SoftConsole_v6.2\openocd\share\openocd\scripts\
Microsemi
Upstream の OpenOCD には microsemi 系の config ファイルは入っていない場合があります。 Upstream の OpenOCD を使っていて Microsemi 系のデバイスを使いたい場合は、 Microsemi の OpenOCD の scripts/
以下をサーチパスに指定すると良いです。
ファイルの指定順番は大事です。たとえば microsemi-flashpro.cfg
で宣言されている FPGA_TAP
という変数が target/microsemi-cortex-m3.cfg
で使われたりします。先に target/microsemi-cortex-m3.cfg
を指定すると Unknown FPGA_TAP
と言われてエラーになります。