これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、または MAC OS オンライン エミュレーターなどの複数の無料オンライン ワークステーションの 32 つを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド stmXNUMXflash です。
プログラム:
NAME
stm32flash - UART または I32C を介した STM2 用のフラッシュ ユーティリティ
SYNOPSIS
stm32フラッシュ [-cfhjkouvCR] [-a バスアドレス] [-b ボーレート] [-m シリアルモード] [-r ファイル名]
[-w ファイル名] [-e NUM] [-n カウント] [-g 住所] [-s 開始ページ] [-S 住所[:長さ]][-F
RX_length[:TX_長さ]][-i GPIO_文字列] [tty_device | i2c_デバイス]
DESCRIPTION
stm32フラッシュ STM32のフラッシュメモリを読み書きします。
ST アプリケーション ノート AN32 に準拠したブートローダーを STM3155 に組み込む必要があります。
AN4221。 stm32フラッシュ シリアルポートを使用します tty_device またはi2cポート i2c_デバイス 対話します
STM32のブートローダーを使用します。
OPTIONS
-a バスアドレス
バス上のアドレスを指定してください i2c_デバイス。 このオプションは I2C インターフェイスには必須です。
-b ボーレート
ボーレート速度を指定します tty_device。 ST ブートローダーは次のことができることに注意してください。
AN2 の第 3155 章で説明されているように、ボー レートを自動的に検出します。 これ
オプションはオプションと一緒に必要になる場合があります -c または、次のようなやり取りがあった場合
ブートローダーが期待されています。 デフォルトは 57600.
-m モード
UARTデータのフォーマットを指定します。 モード は XNUMX 文字の長さの文字列です。
文字は、文字サイズ、パリティ、ストップ ビットをこの厳密な順序で指定します。
現在使用されている唯一の値は、 8e1 標準の STM32 ブートローダー用と 8n1 for
標準の STM32W ブートローダー。 デフォルトは 8e1.
-r ファイル名
STM32 フラッシュを読み取り、その内容を書き込むように指定します ファイル名 生のバイナリで
形式 (以下を参照) FORMAT 変換).
-w ファイル名
STM32 フラッシュに次の内容を書き込むように指定します。 ファイル名。 使用できるファイル形式は、
raw バイナリまたは intel hex のいずれか (以下を参照) FORMAT 変換)。 ファイル形式は
自動的に検出されます。 フォーマット検出をバイパスし、バイナリ モードを強制するには (例:
STM32 フラッシュにインテル XNUMX 進内容を書き込みます)、使用します -f オプションを選択します。
-u STM32 フラッシュからの書き込み保護を無効にするように指定します。 STM32 がリセットされます
この操作の後。
-j フラッシュ読み取り保護を有効にします。
-k フラッシュ読み取り保護を無効にします。
-o 消去のみ。
-e NUM 消去のみを指定する NUM フラッシュに書き込む前のページ。 デフォルトでは、
フラッシュ全体。 と -e 0 フラッシュは消去されません。
-v 書き込み操作後にフラッシュの内容を検証するように指定します。
-n カウント
失敗した書き込みを最大で再試行するように指定します カウント 回。 デフォルトは10回です。
-g 住所
実行を開始するアドレスを指定します (0 = フラッシュ開始)。
-s 開始ページ
フラッシュ ページ オフセットを指定します (0 = フラッシュ開始)。
-S 住所[:長さ]
読み取り/書き込み/消去/CRC 操作の開始アドレスとオプションで長さを指定します。
-F RX_length[:TX_長さ]
現在のインターフェイスの最大フレーム サイズを指定します。 STM32 ブートローダーが原因
このプロトコルでは、ホストは RX で 256 バイト、または RX で 258 バイトを超えるフレームを処理しません。
テキサス州現在のコードにより、RX の最小制限は 20 バイトです (完全な応答を読み取るため)。
コマンドGETの)。 TX の最小制限は 5 バイトであり、プロトコルによって要求されます。
-f ファイルの読み取り中にバイナリパーサーを強制する -w.
-h ヘルプを表示します。
-c 既存の UART 接続を再開し、初期 INIT シーケンスを送信しないように指定します
ボーレートを検出します。 ボーレートは既存の接続と同じに保つ必要があります。
これは、リセットが失敗した場合に役立ちます。
-i GPIO_文字列
ホスト上で GPIO シーケンスを指定して、STM32 がブートローダーに出入りするように強制します。
モード。 GPIO は、ホストから UART の横の STM32 に接続された実際の GPIO のいずれかです
接続、または GPIO として使用される UART のモデム信号。 (下記参照 ブートローダー GPIO
シーケンス の形式の場合 GPIO_文字列 そしてさらなる説明)。
-C メモリ内容の CRC を計算するように指定します。 デフォルトでは、CRC は
Flash コンテンツ全体。 使用 -S 異なるメモリアドレス範囲を提供します。
-R 終了時にデバイスをリセットするように指定します。 次のいずれかの場合、このオプションは無視されます。 -g, -j, -k
or -u も指定されています。
ブートローダー GPIO シーケンス
この機能は現在、Linux ホストでのみ使用できます。
ST アプリケーション ノート AN2606 で説明されているように、リセット後、STM32 は次のいずれかを実行します。
適用されるレベルに応じて、ユーザー フラッシュまたはブートローダー内のアプリケーション プログラム
リセット中の STM32 の特定のピン。
STM32 ブートローダーは、ピン BOOT0="high" とピンを設定することによって自動的にアクティブ化されます。
BOOT1="low" にしてからリセットを適用します。 ユーザーフラッシュ内のアプリケーションプログラムが起動される
ピン BOOT0="low" を設定し (BOOT1 のレベルは無視されます)、次に
リセットします。
ホスト コンピュータからの GPIO がコンフィギュレーション ピンとリセット ピンのいずれかに接続されている場合、
STM32、 stm32フラッシュ ホスト GPIO を制御して STM32 をリセットし、強制的に実行できます。
ブートローダーまたはアプリケーションプログラムの実行。
ブートローダー モードに入るときとブートローダー モードから出るときの GPIO 値のシーケンスは、次のように提供されます。
コマンドラインオプション -i GPIO_文字列.
の形式 GPIO_文字列 次のとおりです。
GPIO_string = [エントリシーケンス][:[終了シーケンス]]
シーケンス = [-]n[,シーケンス]
上記のシーケンスでは、負の数は「低」レベルの GPIO に対応します。 数字
符号のないものは、「高」レベルの GPIO に対応します。 値「n」は GPIO のいずれかになります。
ホスト システム上の番号、または文字列「rts」、「dtr」、または「brk」。 文字列「rts」と「dtr」
対応する UART のモデム ライン RTS および DTR を GPIO として駆動します。 文字列「brk」は強制的に
UART は TX ラインで BREAK シーケンスを送信します。 BREAK後、UARTは通常に戻ります
「ノンブレイク」モード。 注: 文字列「-brk」は効果がなく、無視されます。
終了シーケンスは、-R が指定された場合にのみ実行されることに注意してください。 -Rを指定した場合でも、
終了シーケンスがない場合は、ソフトウェア トリガーのリセットが実行されます。
例として、ホストと STM32 の間に次の接続があると仮定します。
· ホスト GPIO_3 は STM32 のリセット ピンに接続されています。
· ホスト GPIO_4 は STM32 ピン BOOT0 に接続されています。
· ホスト GPIO_5 は STM32 ピン BOOT1 に接続されています。
この場合、ブートローダー モードに入るシーケンスは次のとおりです。最初に GPIO_4="high" を設定し、
GPIO_5="低"; 次に、GPIO_3="low" に続いて GPIO_3="high" によってリセット パルスを送信します。 の
に対応する文字列 GPIO_文字列 は「4、-5、-3,3、XNUMX」です。
ブートローダーを終了してアプリケーション プログラムを実行する手順は次のとおりです。
GPIO_4="低"; 次にリセットパルスを送信します。 対応する文字列 GPIO_文字列 is
「-4、-3,3、XNUMX」。
完全なコマンド ライン フラグは「-R -i 4,-5,-3,3:-4,-3,3」です。
STM32W はパッド PA5 を使用してブート モードを選択します。 リセット中に PA5 が「ロー」の場合、STM32W は
ブートローダーモードに入ります。 PA5 が「High」の場合、フラッシュ内のプログラムが実行されます。
例として、GPIO_3 が PA5 に接続され、GPIO_2 が STM32W のリセットに接続されているとします。 コマンド:
stm32flash -R -i -3,-2,2:3,-2,2 /dev/ttyS0
提供:
· エントリ シーケンス: GPIO_3=低、GPIO_2=低、GPIO_2=高
· 終了シーケンス: GPIO_3=high、GPIO_2=low、GPIO_2=high
例
デバイス情報を取得します。
stm32flash /dev/ttyS0
verify を指定して書き込み、実行を開始します。
stm32flash -w ファイル名 -v -g 0x0 /dev/ttyS0
フラッシュをファイルに読み取ります:
stm32flash -r ファイル名 /dev/ttyS0
実行を開始します:
stm32flash -g 0x0 /dev/ttyS0
指定:
· エントリシーケンス: RTS=低、DTR=低、DTR=高
· 終了シーケンス: RTS=高、DTR=低、DTR=高
stm32flash -R -i -rts,-dtr,dtr:rts,-dtr,dtr /dev/ttyS0
FORMAT 変換
ST によって提供される、または ST ツールで作成された Flash イメージは、多くの場合 Motorola のファイル形式です
Sレコード。 rawバイナリ、intel hex、Motorola S-Record間の変換が可能
ソフトウェアパッケージSRecordを通じて。
作者
オリジナルのソフトウェアパッケージ stm32フラッシュ によって書かれています ジェフリー マクレー <[メール保護]>
2012 年以来、によって維持されています。 トーモッド ヴォルデン <[メール保護]>.
マニュアル ページと STM32W および I2C の拡張機能は、次のように作成されています。 アンソニー ボルネオ島
<[メール保護]>.
バグがある場合はプロジェクトのホームページで報告してください http://stm32flash.sourceforge.net .
onworks.net サービスを使用してオンラインで stm32flash を使用する