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) はファームウェア データ要求を意味します