esp32シリアル、Bluetoothおよび他の方法OTA

序文

無線LANネットワーク接続を介してOTAで提供esp32公式ルーチンのルーチン。便利なルーチンは、すべての状況では適用されないかもしれないが、時には我々は、Bluetoothを経由して、シリアル、またはその他の操作太田したいです。開発者が解析するには、次のOTAに関連する機能を持つことになります、はいOTAは、さまざまな方法で続けることができます。

 

OTA原理

簡単に言えば:OTA基本的なプロセスを次のとおりです。

図1に示すように、受信プログラム

Flashで書かれた2、

次回起動時には新しいプログラムを書き始めるためになるように3、、ブーツを変更します。

二つの領域のesp32具体的な実装は、一般的にプログラムを書き込むために使用されます。図は、フラッシュで火傷、OTA機能プログラムの場合です。詳細については、以下を参照してください。https://blog.csdn.net/qq_24550925/article/details/85857351

図1

要約すると、限り、データが受信されると、それはOTAは、ビューの主点からアップグレードすることができます。特定のデータソースを変更することができます。

必要な設定

1は、OTAは、あなたはまた、典型的な部門の職員は良い方法を提供している使用することができます自分自身を分割することができ、正常に機能パーティションテーブルを分割する必要があります。次のように公式のパーティションテーブルの設定を使用すると、次のとおりです。

输入menuconfigの中にする:パーティションテーブル - >パーティションテーブル选择工場アプリ、2つのOTA定義を。

 

2は、十分なフラッシュスペースを確保する必要性とが適切に構成され、自分の都合のチップに応じて選択します。公式の一般的なチップ4M、以下は典型的な構成です。

>フラッシュサイズの選択4メガバイト - シリアルフラッシャー設定:中メークmenuconfigのを入力します。

 

OTA相関関数とプログラムの流れ

OTAでの相関関数の解析に使用WIFI機能をアップグレードするには、特に、それが使用されるESP-IDF /コンポーネント/ esp_https_ota / SRC / esp_https_ota.cファイル、OTA機能esp_https_ota(CONST esp_http_client_config_t *設定)機能です。次のように具体的な手順があります。仕事を終えた後、機能2の戻り値を受信することによって行うことができますここでアップグレードが成功したかどうかを判断することができます。

#include " esp_ota_ops.h " 

// 準備 
esp_err_t ERR = ESP_OK; 
esp_ota_handle_t update_handle = 0 ;
 CONST esp_partition_t * update_partition = NULL; 
update_partition = esp_ota_get_next_update_partition(NULL); 
ERR = esp_ota_begin(update_partition、OTA_SIZE_UNKNOWN、&update_handle); 


// データ受信
一方(受信データ)
{ 
    ERR   = esp_ota_write(update_handle、(CONST  ボイド * )データ、LEN); 
} 


// 仕上げを受信した後は、タッチ 
ERR =esp_ota_end(update_handle)。
ERR = esp_ota_set_boot_partition(update_partition)。

// 软件复位 
esp_restart();

 

 

おすすめ

転載: www.cnblogs.com/zornlink/p/11412232.html