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