更新日:2021-05-26
J-Flashツールを起動してほぼデフォルトのプロジェクト設定のままマイコン内蔵フラッシュへの書き込みが可能です。多くのマイコン内蔵フラッシュに対応しましたJ-Flashツールは無償で提供しております。
J-FlashツールはFlasher ソフトウェアパッケージに含まれています。事前にFlasher ソフトウェアをインストールしてください。
J-Flashツールの起動:
パソコンのスタートメニューからSEGGERソフトウエアパッケージの「J-Flash」プログラムを実行します。実行後に「Welcome to J-Flash」ダイアログが表示されます。
以下、「ST STM32H753XIxx」マイコンデバイス設定事例のキャプチャです。
STM32H753XIデバイスの書き込み可能なフラッシュ空間:内蔵フラッシュ(2MB、Bank1/Bank2)、外部QSPIフラッシュ(最大256MB)
書込みを行うフラッシュ空間(Flash Bank)を有効に設定します。アプリケーションイメージデータに指定されていないアドレス空間対象のフラッシュバンクを無効に設定します。QSPIなど外部フラッシュデバイス用のフラッシュローダは複数用意されている場合は、ボード環境の仕様に合わせてLoaderからフラッシュローダを選択します。
※プロジェクト保存後もプロジェクト設定ダイアログからフラッシュバンク・Loaderの選択は可能です。
J-Link/Flasher本体との接続、ターゲットボードのデバッグポートインターフェースの設定を行います。
J-Flashプロジェクト設定:パソコン接続モード
J-Flashプロジェクト設定:ユーザーインターフェース
Engineeringモード(操作コマンド制限なし)はJ-Flashプロジェクトのデフォルト設定です。「Engineering」モードのJ-Flashプロジェクトは、使用可能なコマンドに制限設定がなく、データウインドウから直接データ編集、データファイルの追加・マージなど操作可能です。
J-Flashプロジェクトを「Simplified Mode」に設定して、J-Flashのデータウインドウの内容の書き換え・編集操作を無効にすることが可能です。「Simplified」モード設定のプロジェクトは、データウインドウにRead-Onlyモードで表示されますので、誤ってキー入力しても影響ありません。
FAQ参考情報:量産ラインでJ-Flashのデータウインドウの誤ったデータ操作を防ぐことは可能でしょうか?
J-Flashプロジェクト設定:ターゲットインターフェース
ターゲットマイコンとのインターフェースモード(JTAG/SWD/FINE/cJTAG)を設定します。ボード側のデバッグポートインターフェース仕様を確認してモードを設定してください。
※ ターゲットボード側のコネクタ仕様が異なる場合は変換アダプタを使ってください。
SWDモードの設定
「Target Interface」タブの接続モード項目を「SWD」に指定して、ターゲットCPUとのインターフェースをSWDモードに設定可能です。
画面左の“SWD speed before init”項目でCPUの初期化前のSWDクロック値(初期化を行う時のSWDクロック)を設定します。画面右の“SWD speed after init”項目でCPUの初期化後のSWDクロック値(フラッシュ読み書き、ベリファイ等を行う時のSWDクロック)を設定します。自動設定、又はマニュアルクロック(1kHz~12MHz)設定が可能です。
J-Flashプログラムからパソコン経由でフラッシュ書き込みを行う場合は「Auto selection」設定で使用可能です。しかし、スタンドアロン・モードの場合はマニュアル設定が必要となります。
JTAG/cJTAGモードの設定
JTAG/cJTAGインターフェースモードのJTAGチェーン及び速度設定を行います。必ず、ターゲットボードのCPUの仕様に合わせて設定値を指定してください。
画面左の“JTAG speed before init”項目でCPUの初期化前のJTAGクロック値(初期化を行う時のJTAGクロック)を設定します。画面右の“JTAG speed after init”項目でCPUの初期化後のJTAGクロック値(フラッシュ読み書き、ベリファイ等を行う時のJTAGクロック)を設定します。自動設定、アダプティヴクロック設定又はマニュアルクロック(1kHz~12MHz)設定が可能です。
J-Flashプログラムからパソコン経由でフラッシュ書き込みを行う場合は「Auto selection」設定で使用可能です。しかし、スタンドアロン・モードの場合はマニュアル設定が必要となります。
画面下の“JTAG scan chain information”項目でJTAGポートの詳しい設定を行います。
・Auto detection
“Auto detection”項目をチェックし、「Detect」ボタンをクリックしてJTAGスキャンでインターフェースID情報を読み出します。JTAGスキャン情報はLogウインドウに表示されます。“Detailed configuration”項目をチェックして、読み出しましたスキャン情報は確認出来ます。
・Simple configuration
“Simple configuration”項目をチェックして、マイコンデバイスのJTAGスキャンチェーン設定を行います。
・Detailed configuration
J-Link/Flasher 本体のUSBポートをパソコンに接続しターゲットボードに電源を入れて、“Detailed configuration”項目をチェックして、「Detect」ボタンをクリックしてJTAGスキャンで情報を読み出して表示します。“Detailed configuration”項目ウインドウにマニュアル設定の追加又は編集が可能です。「Verify」ボタンをクリックしてマニュアル設定の確認が可能です。
FINEモードの設定
Renesas RXマイコン環境の場合は、「Target Interface」タブの接続モード項目を「FINE」に指定して、ターゲットCPUとのインターフェースをFINEモードに設定可能です。
画面左の“FINE speed before init”項目でCPUの初期化前のFINEクロック値(初期化を行う時のFINEクロック)を設定します。画面右の“FINE speed after init”項目でCPUの初期化後のFINEクロック値(フラッシュ読み書き、ベリファイ等を行う時のFINEクロック)を設定します。自動設定、又はマニュアルクロック(1kHz~2MHz)設定が可能です。
J-Flashプログラムからパソコン経由でフラッシュ書き込みを行う場合は「Auto selection」設定で使用可能です。しかし、スタンドアロン・モードの場合はマニュアル設定が必要となります。
J-Flashプロジェクトの設定:MCU
MCU設定ページでマイコン及びターゲット初期化の設定を行います。
「Device」項目の「…」オプションをクリックして、ナイコンデバイスの変更は可能です。
ターゲットボード接続時、コアの確認を行う際に、「Check core ID」オプション項目にチェックを入れて「ID」項目に正しいコアID番号を設定してください。
チェックを行うID番号のビットマスクの設定は「Mask」項目に設定します。
J-Flashが使用するフラッシュローダアルゴリズムがSRAM上実行されます。「Target RAM settings」項目のRAMアドレス及びサイズを確認してください。
J-Flashプログラムは一部のデバイスの場合はMCUタブ下に「Clock speed」設定項目が表示されます。J-Flashプログラムからパソコン経由でフラッシュ書き込みを行う場合はCPUクロック設定に「Auto detection」設定値が使用可能です。しかし、スタンドアロン・モードの場合はマニュアル設定が必要となります。
※J-Link本体の場合、スタンドアロン・モードは使用出来ません。
ターゲットボード環境でのCPUのクロック設定値が不明の場合は以下の手順を参考にしてください。
- Target interface speed: 4000 kHz (Fixed)
- CPU clock frequency: 64563 kHz (Auto detected)
- Found 2 JTAG devices. Core ID: 0x6BA00477 (None)
- Connected successfully
MCU設定:Init. steps設定
ターゲットボードのハードウエア設計によっては、フラッシュメモリアクセスの前に、フラッシュメモリのバスモード設定、クロック設定又はフラッシュ書き込みを有効に設定するためのレジスタ設定等のボード依存分の初期化設定を行う必要があります。
内蔵フラッシュ、(Q)SPIフラッシュ書き込みの場合は、内部初期化処理はフラッシュローダプログラムに含まれていますので、ユーザ指定初期化設定は不要です(デフォルトプロジェクト設定のままで十分です)。
パラレルバス接続のNORフラッシュへの書き込み用プロジェクトの場合は、MCU設定ダイログの画面下の初期化設定項目に「Init steps」を選択して、コマンド設定ボックスにターゲット側のフラッシュメモリの書き込みアクセスのために必要な初期化コマンドを順番に指定します。
コマンド設定ボックスの「+」ボタンで「Add action」ダイログを開き、「Action Type」項目から必要なコマンドをコマンドボックスに追加してください。
Initコマンド一覧:
コマンド | 説明 |
---|---|
Delay | 指定時間のディレイを設定します。 |
DisableMMU | MMUを無効に設定します。 |
Disable Checks | JTAGチェックを無効に設定します。 |
Enable Checks | JTAGチェックを有効に設定します。 |
Go | CPUを起動します。 |
Halt | CPUを停止します。 |
Reset | CPUをリセットします。Reset-TypeについてはJ-Linkマニュアルをご参照ください。 |
Read 8bit | 指定アドレスから8bitデータを読み出します。結果値を内部変数に保存します。 |
Read 16bit | 指定アドレスから16bitデータを読み出します。結果値を内部変数に保存します。 |
Read 32bit | 指定アドレスから32bitデータを読み出します。結果値を内部変数に保存します。 |
SetAllowRemoteRead | ターゲットのリモートICEからの読み出しアクセスを有効に設定します。(デフォルト:On) |
SetAllowRemoteWrite | ターゲットのリモートICEからの書き込みアクセスを有効に設定します。(デフォルト:On) |
Verify 8bit | 指定アドレスの8bitデータをベリファイします。 |
Verify 16bit | 指定アドレスの16bitデータをベリファイします。 |
Verify 32bit | 指定アドレスの32bitデータをベリファイします。 |
Write 8bit | 指定アドレスに指定8bitデータを書き込みます。 |
Write 16bit | 指定アドレスに指定16bitデータを書き込みます。 |
Write 32bit | 指定アドレスに指定32bitデータを書き込みます。 |
Write&Verify 8bit | 指定アドレスに指定8bitデータを書き込みます。書き込み後にデータをベリファイします。 |
Write&Verify 16bit | 指定アドレスに指定16bitデータを書き込みます。書き込み後にデータをベリファイします。 |
Write&Verify 32bit | 指定アドレスに指定32bitデータを書き込みます。書き込み後にデータをベリファイします。 |
Write Register | 指定レジスタに指定データを書き込みます。 |
Write JTAG IR | JTAG命令レジスタに書き込みを行います。 |
Write JTAG DR | JTAGデータレジスタに書き込みを行います。 |
Var AND | 内部変数と指定データのロジカルANDを行います。 |
Var OR | 内部変数と指定データのロジカルORを行います。 |
VAR XOR | 内部変数と指定データのロジカルXORを行います。 |
VAR BEQ | 「内部変数 == 0」の場合は指定Indexから実行します。 |
VAR BNE | 「内部変数 != 0」の場合は指定Indexから実行します。 |
Var Write 8bit | 内部変数(8bit)の値を指定アドレスに書き込みます。 |
Var Write 16bit | 内部変数(16bit)の値を指定アドレスに書き込みます。 |
Var Write 32bit | 内部変数(32bit)の値を指定アドレスに書き込みます。 |
SetModeBigEndian | CP15レジスタのビット7を「1」に設定します。 |
SetModeLittleEndian | CP15レジスタのビット7を「0」に設定します。 |
Var Write File 8bit | 内部変数(8bit)の値をデータファイルの指定アドレスに書き込みます。 |
Var Write File 16bit | 内部変数(16bit)の値をデータファイルの指定アドレスに書き込みます。 |
Var Write File 32bit | 内部変数(32bit)の値をデータファイルの指定アドレスに書き込みます。 |
Comment | コメントを書きます。 |
Write File 8bit | データファイルの指定アドレスに指定8bitデータを書き込みます。 |
Write File 16bit | データファイルの指定アドレスに指定16bitデータを書き込みます。 |
Write File 32bit | データファイルの指定アドレスに指定32bitデータを書き込みます。 |
Report Error | 指定エラーコード表示でメッセージボックスを起動します。 |
MCU設定:Exit steps設定
フラッシュ書き込み後のボード設定が必要な場合は、MCU設定ダイログの画面下の初期化設定項目に「Exit steps」を選択して、コマンド設定ボックスに必要なコマンドを指定してください。
「Exit steps」で指定されたコマンドは、Production Programmingコマンドの実行時に処理されます。
フラッシュメモリ関連のプロジェクト設定:
プロジェクト設定ダイログの「Flash」ページに、フラッシュメモリデバイス関連の設定を行います。フラッシュ空間(内蔵フラッシュ・外部フラッシュ)毎に設定可能です。
「Disable flash bank」項目にチェック入れて対象フラッシュバンクへの書き込みアクセスは無効に設定出来ます。無効に設定しましたフラッシュバンクメモリ空間に対して書き込みを行いません。
指定されているマイコンデバイスによりまして「Base Address」項目に内蔵フラッシュメモリのスタートアドレスは設定されます。
「Rename」ボタンをクリックしてフラッシュバンクの説明文字列は変更可能です。
例:STM32H753XIデバイスの場合は以下の3つのフラッシュ空間をサポートします。
デバイス内蔵フラッシュ関連の設定
MCU設定ページに内蔵フラッシュのマイコンデバイスが指定された場合は、「Flash」ページにそのフラッシュデバイス用の設定値が自動的に読まれます。
「Sector selection」グループウインドウからフラッシュ読み書き・ベリファイを行う各セクターの個別選択(アクセスを行うフラッシュメモリ空間の指定)が可能です。選択されていないセクターに対してERASE、PROGRAMとVERIFY処理を行いません。アプリケーションデータの書き込み対象メモリ空間に合わせて書き込みを行わないセクターを無効に設定して書き込みパフォーマンスのチューニングが可能です。
外部QSPI関連の設定
指定マイコンデバイスにサポートされている場合は、QSPIフラッシュバンクへの書き込みは有効になります。指定されているマイコンデバイスによりまして「Base Address」項目にSPI/QSPIフラッシュメモリ空間のスタートアドレスは設定されます。ボード環境のQSPIピン仕様に合わせてLoaderからフラッシュローダを選択します。
QSPIフラッシュの型番入力設定ダイアログはありません。QSPIフラッシュバンクの場合は、QSPIフラッシュのサイズ、フラッシュアルゴリズムは自動認識モードで設定されます。
ラッシュ書き込み可能な(Q)SPIフラッシュ(自動認識モード対応フラッシュ)一覧は以下のURLから確認ください。
※J-Flashツールからデバッグポート経由で(Q)SPIフラッシュへの書き込みに関しましては(Q)SPIメモリデバイスの型番・パラメータ設定は不要ですが、マイコンベンダ様の評価ボードの(Q)SPIピン仕様に合わせてフラッシュ書き込みアルゴリズムが作られています。評価ボード環境と異なるピン仕様の(Q)SPIフラッシュへの書き込みは出来ません。
※マイコンデバイスの個別フラッシュローダプログラムによりまして、QSPIフラッシュバンクは、「Sector selection」グループウインドウの表示がなく、セクターの個別選択は出来場合がございます。
その他参考情報:
https://wiki.segger.com/SPI_Flash
外部NORフラッシュ関連の設定
「Automatically detect flash memory」項目にチェック入れて自動認識設定が有効にされている場合は、「Base Addr」項目に指定されているベースアドレスから外部CFI式NORフラッシュのCFIテーブル情報(セクタ構成、サイズ等)を読み出してフラッシュアルゴリズムを設定します。
ハードウエア仕様の通りに「Organization 8/16/32 Bits x 1/2/4 Chips」項目にフラッシュデバイスの構成(データバスサイズ8/16/32 Bits)を正しく設定してください。
CPUバスからNORフラッシュへの読み書きアクセスを有効にするために必要なバス・クロック・GPIOポートの初期化コマンドを「Init Steps」に設定してください。
Flasherソフトウエアのインストールフォルダに各ベンダー様の評価ボード環境でのNORフラッシュ用J-Flashプロジェクトサンプルが含まれています。サンプルプロジェクトの設定手順を参考にお客様のボード環境の仕様に合わせて「Init Steps」の項目を設定してください。
「Automatically detect flash memory」項目からチェックを外して、マニュアルモードでNORフラッシュの設定は可能です。マニュアルモードは、「Select flash device」ボタンで開くダイログからフラッシュデバイス名を選択してください。
ボード上のフラッシュメモリデバイス名が「Select flash device」ダイログに記載されていない場合は、「Automatically detect flash memory」オプションを有効に設定して自動認識モードを試してください。
「Check manufacturer flash Id」と「Check product flash Id」オプションにチェックを入れて、ボード上のフラッシュのメーカーIDとプロダクトIDの確認が出来ます。チェックオプションを無効に設定した場合はIDの確認を行いません。
Productionモードの設定:
ターゲットボードへの電力共有、書き込みタイムアウト時間、S/N番号、スタンドアロン・モード等の設定を行います。
Target Power Supply
ターゲットボードへの電源出力を設定します。選択可能な電源出力モード:None / VCC5V / VTGT
J-Link/Flasher本体からターゲットボードへの電源供給が不要の場合は、デフォルト設定の「None」を選択してください。
VCC5V:
J-Link/Flasher本体の19番ピン経由でターゲットボードに5V電源を出力します。ターゲットボードに電源を入れてからJTAG/SWD通信をスタートするまでの待ち時間(単位:ms)を「Delay before start」項目に設定します。
※「Discharge target on disconnect」オプションはFlasher ATEモデルのみ有効です。
VTGT:
VTGTはFlasher ATEモデル用電源出力オプションです。他のFlasherモデル又はJ-Linkモデルの場合は、VTGTオプションを選択しても「VCC5V」は設定されます。
Reference voltage settings
スタンドアロンモード操作の時にターゲット側の電源(JTAGコネクタのPIN1:VTref信号)のレベルモニターの設定を行います。VTref信号の値が「VTref min.」項目の設定値より下がった又は「max」設定値より上がった場合はエラーを表示します。
Program serial number
生産ラインでのターゲット基板ごとのシリアルID番号の設定が出来ます。
「Program serial number」オプションにチェックを入れて以下の項目を設定します。
項目名 | 説明 |
---|---|
Address | シリアル番号を保存する先のアドレス値を指定します。 |
Len | シリアル番号のデータサイズ(バイト数)を設定します。 |
Next SN | 次のシリアル番号の値を示します。S/Nリストファイルが作成されている場合は、「Next SN」項目はS/Nリストファイル内の行番号を示します。 |
Increment | シリアル番号のインクリメント数を設定します。 |
Actions performed by "Production Programming"
「Target → Production Programming」コマンドの詳しい内容を設定します。Production Programmingコマンドは以下の順で処理されます。
Erase(Sector又はChipErase) → Program → Verify → Start application → Disconnect
デフォルト設定では、Erase、Program及びVerifyコマンドは実行され、Start application、Disconnectコマンドは無効に設定されています。必要により、Productionモードの設定をカスタマイズしてください。
項目名 | 説明 |
---|---|
Erase | モード設定により、フラッシュERASEコマンドを実行します。
|
Program | アプリケーションプログラムのデータをフラッシュに書き込みます。 |
Verify | フラッシュデータの比較(ベリファイ)を行います。 |
Start application | ベリファイ後に書き込んだプログラムを起動します。
|
Disconnect afterwards | 書き込み後にデバッグポートインターフェースを切断します。 |
Override timeouts
Erase、Program、Verifyコマンドのデバイスレスポンスの待ち時間(単位:ミリ秒)を設定します。
Performance設定:
「Perform blank check」を有効に設定した場合は、セクター・Chip ERASEコマンドの前に既にデータが消されているセクターを除く残りのセクターだけを消します。本ページの設定は「Target → Production Programming」と「Target → Manual Programming」コマンドの時に有効です。
Verifyモード設定
グローバル設定:
J-Flashメニューバーの「Options→Global settings..」で開く「Global setting」ダイログにてその他のグローバル設定を行います。
Save Project files on close
有効に設定した場合はJ-Flashプログラムをクローズする時に操作中のJ-Flashプロジェクトを保存します。
Logging
ログファイルのデフォルトパスは「C:\Program Files\SEGGER\Flasher_Vxxx」となりますので、パスをローカルフォルダに変更又は J-Flashプログラムをマウス右クリックメニューから「管理者として実行」オプションで起動してログ作成をお試しください。
J-Flashプロジェクトを保存:
プロジェクト設定ダイアログが開いている場合は、「OK」ボタンをクリックしてプロジェクト設定を保存してダイアログを閉じます。
「File」→「Save project」又は「Save project as..」メニューコマンドでプロジェクトを保存します。
J-Flashプロジェクトは(*.jflash)ファイルとして保存されます。
J-Flashツールからプロジェクトを開くときには、「File」→「Open project」メニューコマンドで「.jflash」プロジェクトファイルを開きます。
ちなみに、「.jflash」プロジェクトファイルをテキストエディタから開いて設定内容の確認は可能です。
書き込むイメージデータのアップロード:
J-Link/Flasher本体をパソコンに接続してパソコンのスタートメニューから「J-Flash」プログラムを起動します。
「File → Open data file」コマンドでアプリケーション・データファイル(*.mot、*.srec、*.hex、*.bin、*.raw、*.elf)を開きます。
バイナリデータファイルの場合は、ダイアログボックスからベースアドレスを設定します。
例えば、内蔵フラッシュのベースアドレスが「0x08000000」の場合は、ダイアログボックスに「08000000」を入力します。
MOT/HEX/SREC/ELF式データファイルの場合はアドレス情報はイメージファイルに含まれていますのでロードアドレス設定は不要です。
「Edit → Relocate」コマンドでオフセットアドレスを指定してMOT/HEX/SREC/ELF式データイメージを別アドレスに移動可能です。
複数イメージデータのマージ:
J-Flashツールから以下の手順で複数イメージデータ(例えば、ブートローダとアプリケーションデータ)を一つのデータファイルにマージして1回の書き込みで済ませることも可能です。
HowTo参考情報:複数イメージを一つのデータファイルとして保存する方法
Production/Autoモード書き込み操作:
ターゲットボードに電源を入れて、J-Flashプロジェクトの「Target → Connect」コマンドでボード側のデバッグポート経由でマイコンデバイスに接続します。ログウインドウから接続結果内容を確認します。
Note:
JTAG/SWD接続が正しく出来ない場合の原因:
ターゲットメニューから「Target → Production Programming」コマンドで、Erase → Program → Verifyを実行します。書き込み処理の結果はメッセージダイアログで表示されます。また、詳細はログウインドウに表示されます。
マニュアルモード個別コマンド操作:
ターゲットメニューの「Target → Manual Programming」下のコマンドで、Erase(Sector Erase又はChip Erase)、Program、Verify、データ読み取りは実行できます。コマンド処理の結果はメッセージダイアログで表示されます。また、詳細はログウインドウに表示されます。
J-Flashツールメニューコマンド一覧:
Fileメニュー
Editメニュー
Targetメニュー
Targetメニュー → Manual Programming
Optionsメニュー
Viewメニュー
J-Flash ツールのコマンドライン操作方法