leaps_fw_update_start

ファームウェアの更新プロセスを開始します。 leaps_fw_update_xfer の前に最初に呼び出す必要があり、数秒かかることがあります。受け入れられた場合、要求はコマンド ステータス ok を返し、その後に最初のデータ要求が続きます。データ要求は leaps_fw_update_xfer によって処理される必要があります。FW 更新のターゲットは、FW ID が 1 の ELDR (拡張ローダー) または FW ID が 2 のメイン FW のいずれかです。ELDR はすべての HW プラットフォームでサポートされているわけではありません。デバイス情報を読み取る方法については、leaps_dev_info_get コマンドを参照してください。ファームウェアは自身を更新できないため、FW 更新プロセス中はブートローダーまたは ELDR に再起動する必要があります。

拒否された場合、アップデートは開始されません。ファームウェアのアップデートが拒否される理由は次のとおりです:

  • 許可されていません - FW アップデート ターゲットとして指定された FW ID は、ブートローダー モードに入る必要があります (ブートローダー モードはリセット後の短時間だけ常に開始されます。モジュールがブートローダー モードに留まる時間は leaps_boot_cfg_set で設定できます)。

  • 繰り返しになるが - ELDR/FWに切り替えるにはリセットが必要であり、デバイスのリセット後に更新開始要求を再度送信する必要がある。デバイスは leaps_reset でリセットできる。

  • 内部エラー

  • 引数が無効です - ハードウェア バージョンまたは FW ID が無効です。

進行中のファームウェアのアップデートは、このコマンドによって再開されます。


入力
  • hw_version: 32ビット整数 (ハードウェアバージョン)

  • fw_id: '1' | ‘2’ (1 ELDR - 拡張ローダーの場合、または 2 メインファームウェアの場合)

  • fw_checksum: 32ビット整数 (アップロードするファームウェアのcrc32)

  • fw_size: 32ビット整数 (ファームウェアのサイズ)

出力
  • ステータスコード

  • offset: 32ビット整数 (leaps_fw_update_xfer が次に書き込む必要があるデータのオフセット)

  • サイズ: 32 ビット整数 (leaps_fw_update_xfer によって書き込まれる必要があるデータのサイズ)


例

TLV リクエスト

タイプ

長さ

値

ハードウェアのバージョン

ファームウェアID

予約済み

ファームウェアチェックサム

サイズ

0x3E

0x10

0x2A 0x00 0xCA 0xDE

0x02

0x00 0x00 0x00

0xea 0xF5 0x67 0x6D

0xC4 0x26 0x00 0x00

タイプ 0x3E (62 dec) はコマンド leaps_fw_update_start を意味します

TLV 応答

タイプ

長さ

値

タイプ

長さ

値

オフセット

サイズ

0x40

0x01

0x00

0x7e

0x08

0x00 0x00 0x00 0x00

0x00 0x10 0x00 0x00

タイプ 0x40 はステータスコード

タイプ 0x7E (126) はファームウェア データ要求を意味します